Name:                   urlpath
Version:                0.0.4
Author:                 Athan Clark <athan.clark@gmail.com>
Maintainer:             Athan Clark <athan.clark@gmail.com>
License:                MIT
License-File:           LICENSE
Category:               Web
Synopsis:               Painfully simple URL writing combinators
Description:
  Simple URL DSL for Haskell.
  .
  Use raw combinators (kinda useless) ...
  .
  >  render $ "foo.php" <?> ("key1","bar") <&> ("key2","baz")
  >
  >  ↪ "foo.php?key1=bar&key2=baz"
  .
  ... or use the MonadReader instance for a configurable root ...
  .
  >  let url = runReader $ expandAbsolute $ "foo.php" <?> ("key1","bar") <&> ("key2","baz")
  >  url "example.com"
  >
  >  ↪ "example.com/foo.php?key1=bar&key2=baz"
  .
  ... in Lucid ...
  .
  >  (runReader $ renderTextT $
  >    (\a -> do
  >      foo <- lift $ expandAbsolute a
  >      script_ [src_ foo] "" )
  >    ("foo" <?> ("bar","baz"))
  >  ) "example.com"
  >
  >  ↪ "<script src=\"example.com/foo?bar=baz\"></script>"
  .
  ... and in Scotty ...
  .
  >  main :: IO ()
  >  main = scottyT 3000
  >      rootConf
  >      rootConf
  >      run
  >  
  >    where
  >      rootConf = flip runReaderT "http://example.com"
  >  
  >      run :: ( MonadIO m
  >             , MonadReader T.Text m ) =>
  >             ScottyT LT.Text m ()
  >      run = get "/" $ do
  >        path <- lift $ expandAbsolute $ "foo" <?> ("bar","baz")
  >        text $ LT.fromStrict path
  >
  >  λ> curl localhost:3000/
  >  ↪ "http://example.com/foo?bar=baz"
  

Cabal-Version:          >= 1.10
Build-Type:             Simple

Library
  Default-Language:     Haskell2010
  HS-Source-Dirs:       src
  GHC-Options:          -Wall
  Exposed-Modules:      UrlPath
                        UrlPath.Types
  Build-Depends:        base >= 4 && < 5
                      , mtl
                      , text
                      , transformers

Source-Repository head
  Type:                 git
  Location:             https://github.com/athanclark/urlpath.git