hack-contrib 2009.8.16 → 2009.8.18
raw patch · 4 files changed
+38/−2 lines, 4 filesdep ~hackdep ~mpsPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: hack, mps
API changes (from Hackage documentation)
+ Hack.Contrib.Middleware.IOConfig: ioconfig :: (Env -> IO Env) -> Middleware
+ Hack.Contrib.Middleware.UserMime: user_mime :: [(String, String)] -> Middleware
Files
- changelog.md +11/−0
- hack-contrib.cabal +4/−2
- src/Hack/Contrib/Middleware/IOConfig.hs +6/−0
- src/Hack/Contrib/Middleware/UserMime.hs +17/−0
changelog.md view
@@ -1,3 +1,14 @@+2009.8.18+---------++### Feature++* new middleware++### Fix++* mps dep+ 2009.8.16 ---------
hack-contrib.cabal view
@@ -1,5 +1,5 @@ Name: hack-contrib-Version: 2009.8.16+Version: 2009.8.18 Build-type: Simple Synopsis: Hack contrib Description: Common middlewares and utilities that helps working with Hack@@ -15,7 +15,7 @@ library ghc-options: -Wall- build-depends: base >=4 && < 5, cgi, network, haskell98, old-locale, old-time, directory, filepath, containers, bytestring, ansi-wl-pprint, data-default >= 0.2, ansi-wl-pprint, time, pureMD5, mps >= 2009.6.25, hack >= 2009.5.19+ build-depends: base >=4 && < 5, cgi, network, haskell98, old-locale, old-time, directory, filepath, containers, bytestring, ansi-wl-pprint, data-default >= 0.2, ansi-wl-pprint, time, pureMD5, mps >= 2009.8.18.1, hack >= 2009.7.15 hs-source-dirs: src/ exposed-modules: @@ -39,6 +39,8 @@ Hack.Contrib.Middleware.SimpleAccessLogger Hack.Contrib.Middleware.Static Hack.Contrib.Middleware.URLMap+ Hack.Contrib.Middleware.IOConfig+ Hack.Contrib.Middleware.UserMime Hack.Contrib.Mime Hack.Contrib.Request Hack.Contrib.Response
+ src/Hack/Contrib/Middleware/IOConfig.hs view
@@ -0,0 +1,6 @@+module Hack.Contrib.Middleware.IOConfig (ioconfig) where++import Hack++ioconfig :: (Env -> IO Env) -> Middleware+ioconfig before app = \env -> before env >>= app
+ src/Hack/Contrib/Middleware/UserMime.hs view
@@ -0,0 +1,17 @@+module Hack.Contrib.Middleware.UserMime (user_mime) where++import Data.List (find)+import Hack+import Hack.Contrib.Response+import Hack.Contrib.Utils+import MPS.Light+import Prelude hiding ((.), (-))+++user_mime :: [(String, String)] -> Middleware+user_mime h app env = do+ r <- app env+ case h.only_fst.find mime >>= flip lookup h of+ Nothing -> return r+ Just v -> return - r.set_content_type v+ where mime x = env.path_info.ends_with ('.' : x)