packages feed

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 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)