name:                wai-routing
version:             0.2
synopsis:            Declarative routing for WAI.
license:             OtherLicense
license-file:        LICENSE
author:              Toralf Wittner
maintainer:          Toralf Wittner <tw@dtex.org>
copyright:           (c) 2014 Toralf Wittner
stability:           experimental
category:            Web
build-type:          Simple
cabal-version:       >= 1.10

extra-source-files:
    README.md
    examples/*.hs

description:
    Enables the declaration of \"routes\" which handle requests to a
    specific URL.
    .
    The set of possible handlers can be restricted by \"predicates\",
    which operate on WAI requests and have to be true or else the
    handler will not be called.
    .
    For details have a look at the haddock documentation of
    @Network.Wai.Routing.Tutorial@ or the @examples@ folder in the
    source distribution.
    .
    This library is a port of @snap-predicates@ which provides
    similar functionality for the snap-framework.
    .
    The routing tree construction is implemented using @wai-route@.

source-repository head
    type:             git
    location:         git://github.com/twittner/wai-routing.git

library
    default-language: Haskell2010
    hs-source-dirs:   src
    ghc-options:      -Wall -O2 -fwarn-tabs -funbox-strict-fields
    ghc-prof-options: -prof -auto-all

    exposed-modules:
        Network.Wai.Routing
        Network.Wai.Routing.Error
        Network.Wai.Routing.MediaType
        Network.Wai.Routing.Request
        Network.Wai.Routing.Route
        Network.Wai.Routing.Tutorial
        Network.Wai.Routing.Predicate
        Network.Wai.Routing.Predicate.Predicate
        Network.Wai.Routing.Predicate.Accept
        Network.Wai.Routing.Predicate.Capture
        Network.Wai.Routing.Predicate.Content
        Network.Wai.Routing.Predicate.Cookie
        Network.Wai.Routing.Predicate.Header
        Network.Wai.Routing.Predicate.Param
        Network.Wai.Routing.Predicate.Query

    other-modules:
        Network.Wai.Routing.Internal
        Network.Wai.Routing.Parser.MediaType
        Network.Wai.Routing.Parser.Shared

    build-depends:
        attoparsec       >= 0.10  && < 0.12
      , base             == 4.*
      , bytestring       >= 0.9   && < 0.11
      , bytestring-from  == 0.1.*
      , cookie           == 0.4.*
      , case-insensitive == 1.1.*
      , http-types       == 0.8.*
      , transformers     == 0.3.*
      , wai              == 2.0.*
      , wai-route        == 0.1.*

test-suite wai-routing-tests
    type:             exitcode-stdio-1.0
    default-language: Haskell2010
    hs-source-dirs:   test
    main-is:          TestSuite.hs
    ghc-options:      -Wall -O2 -fwarn-tabs
    ghc-prof-options: -prof -auto-all

    other-modules:
        Tests.Data.Predicate
        Tests.Wai.Predicate
        Tests.Wai.Route
        Tests.Wai.Util

    build-depends:
        base                 == 4.*
      , blaze-builder        == 0.3.*
      , bytestring
      , case-insensitive
      , http-types
      , HUnit                >= 1.2
      , QuickCheck           >= 2.3
      , tasty                >= 0.3
      , tasty-hunit          >= 0.2
      , tasty-quickcheck     >= 0.3
      , wai
      , wai-routing