Cabal revisions of urlpath-2.1.0
Hackage metadata revisions edit the .cabal file after upload; each diff below is one revision.
revision 1
-Name: urlpath-Version: 2.1.0-Author: Athan Clark <athan.clark@gmail.com>-Maintainer: Athan Clark <athan.clark@gmail.com>-License: MIT-License-File: LICENSE-Category: Web, Data-Synopsis: Painfully simple URL writing combinators-Description:- Simple URL DSL for Haskell.- .- This library tries to make it easier for people to write Url strings,- structurally. Packages like <https://hackage.haskell.org/package/yesod-routes Yesod Routes>- do a wonderful job at implementing string-free routing and- references, but sometimes we have to compromise. This tries to make that- compromise less painful.- .- Use bare combinators to render your strings (kinda useless):- .- > expandRelative $ "foo.php" <?> ("key1","bar") <&> ("key2","baz")- >- > ↪ "foo.php?key1=bar&key2=baz"- .- ... or use the MonadReader instance for a configurable host:- .- > let path = runAbsoluteUrl $ url $ "foo.php" <?> ("key1","bar") <&> ("key2","baz")- > path "example.com"- >- > ↪ "example.com/foo.php?key1=bar&key2=baz"- .- @url@ puts the @UrlString@ in a MonadReader that we can use for applying our- host. We use different monads for different deployment schemes (currently we- have 3 - @RelativeUrl@, @GroundedUrl@, and @AbsoluteUrl@), which we can- integrate in different libraries, like Lucid:- .- > (runAbsoluteUrl $ renderTextT $ do- > foo <- lift $ url $ "foo" <?> ("bar","baz")- > script_ [src_ foo] "" )- > ) "example.com"- >- > ↪ "<script src=\"example.com/foo?bar=baz\"></script>"- .- ... and in Scotty ...- .- > main :: IO ()- > main = scottyT 3000- > rootConf- > rootConf- > run- >- > where- > rootConf = flip runAbsoluteT "http://example.com"- >- > run :: ( MonadIO m- > , MonadReader T.Text m- > , Url T.Text m ) =>- > ScottyT LT.Text m ()- > run = get "/" $ do- > path <- lift $ url $ "foo" <?> ("bar","baz")- > text $ LT.fromStrict path- >- > λ> curl localhost:3000/- > ↪ "http://example.com/foo?bar=baz"- .- Note that in the scotty example, we don't use one of our deployment schemes -- this is because the @scottyT@ function expects it's underlying monad to be an- instance of @MonadIO@, which we can only instantiate in our monad transformers.- .- Please take mind - the string type underlying the Url rendering is generalized- to @Data.String.IsString@ for convenient use with @-XOverloadedStrings@. However,- due to that generality, we need to specify the monomorphic type (like- @Data.Text.Text@ above).--Cabal-Version: >= 1.10-Build-Type: Simple--Library- Default-Language: Haskell2010- HS-Source-Dirs: src- GHC-Options: -Wall- Exposed-Modules: Data.Url- Data.Url.Types- Build-Depends: base >= 4 && < 5- , mtl- , transformers- , monoid-subclasses--Test-Suite spec- Type: exitcode-stdio-1.0- Default-Language: Haskell2010- Hs-Source-Dirs: src- , test- Ghc-Options: -Wall- Main-Is: Spec.hs- Build-Depends: base- , hspec- , QuickCheck- , quickcheck-instances- , mtl- , text- , transformers- , monoid-subclasses--benchmark bench- type: exitcode-stdio-1.0- hs-source-dirs: benchmarks- main-is: Main.hs- build-depends: base- , deepseq- , criterion- , text- , urlpath >= 0.2- ghc-options: -O2--Source-Repository head- Type: git+Name: urlpath +Version: 2.1.0 +x-revision: 1 +Author: Athan Clark <athan.clark@gmail.com> +Maintainer: Athan Clark <athan.clark@gmail.com> +License: MIT +License-File: LICENSE +Category: Web, Data +Synopsis: Painfully simple URL writing combinators +Description: + Simple URL DSL for Haskell. + . + This library tries to make it easier for people to write Url strings, + structurally. Packages like <https://hackage.haskell.org/package/yesod-routes Yesod Routes> + do a wonderful job at implementing string-free routing and + references, but sometimes we have to compromise. This tries to make that + compromise less painful. + . + Use bare combinators to render your strings (kinda useless): + . + > expandRelative $ "foo.php" <?> ("key1","bar") <&> ("key2","baz") + > + > ↪ "foo.php?key1=bar&key2=baz" + . + ... or use the MonadReader instance for a configurable host: + . + > let path = runAbsoluteUrlT $ queryUrl $ "foo.php" <?> ("key1","bar") <&> ("key2","baz") + > path "example.com" + > + > ↪ "example.com/foo.php?key1=bar&key2=baz" + . + @url@ puts the @UrlString@ in a MonadReader that we can use for applying our + host. We use different monads for different deployment schemes (currently we + have 3 - @RelativeUrl@, @GroundedUrl@, and @AbsoluteUrl@), which we can + integrate in different libraries, like Lucid: + . + > (runAbsoluteUrlT $ renderTextT $ do + > foo <- lift $ queryUrl $ "foo" <?> ("bar","baz") + > script_ [src_ foo] "" ) + > ) "example.com" + > + > ↪ "<script src=\"example.com/foo?bar=baz\"></script>" + . + ... and in Scotty ... + . + > main :: IO () + > main = scottyT 3000 + > rootConf + > rootConf + > run + > + > where + > rootConf = flip runAbsoluteUrlT "http://example.com" + > + > run :: ( MonadIO m + > , MonadReader T.Text m + > , Url T.Text m ) => + > ScottyT LT.Text m () + > run = get "/" $ do + > path <- lift $ queryUrl $ "foo" <?> ("bar","baz") + > text $ LT.fromStrict path + > + > λ> curl localhost:3000/ + > ↪ "http://example.com/foo?bar=baz" + . + Note that in the scotty example, we don't use one of our deployment schemes - + this is because the @scottyT@ function expects it's underlying monad to be an + instance of @MonadIO@, which we can only instantiate in our monad transformers. + . + Please take mind - the string type underlying the Url rendering is generalized + to @Data.String.IsString@ for convenient use with @-XOverloadedStrings@. However, + due to that generality, we need to specify the monomorphic type (like + @Data.Text.Text@ above). + +Cabal-Version: >= 1.10 +Build-Type: Simple + +Library + Default-Language: Haskell2010 + HS-Source-Dirs: src + GHC-Options: -Wall + Exposed-Modules: Data.Url + Data.Url.Types + Build-Depends: base >= 4 && < 5 + , mtl + , transformers + , monoid-subclasses + +Test-Suite spec + Type: exitcode-stdio-1.0 + Default-Language: Haskell2010 + Hs-Source-Dirs: src + , test + Ghc-Options: -Wall + Main-Is: Spec.hs + Build-Depends: base + , hspec + , QuickCheck + , quickcheck-instances + , mtl + , text + , transformers + , monoid-subclasses + +benchmark bench + type: exitcode-stdio-1.0 + hs-source-dirs: benchmarks + main-is: Main.hs + build-depends: base + , deepseq + , criterion + , text + , urlpath >= 0.2 + ghc-options: -O2 + +Source-Repository head + Type: git Location: https://github.com/athanclark/urlpath.git