packages feed

hack2-contrib 2011.10.12 → 2012.1.19

raw patch · 6 files changed

+22/−50 lines, 6 filesdep −enumeratordep ~hack2PVP ok

version bump matches the API change (PVP)

Dependencies removed: enumerator

Dependency ranges changed: hack2

API changes (from Hackage documentation)

- Hack2.Contrib.Utils: fromEnumerator :: Monad m => Enumerator ByteString m ByteString -> m ByteString
- Hack2.Contrib.Utils: toEnumerator :: Monad m => ByteString -> Enumerator ByteString m a
- Hack2.Contrib.Utils: withEnumerator :: Monad m => (ByteString -> ByteString) -> Enumerator ByteString m ByteString -> m (Enumerator ByteString m a)
- Hack2.Contrib.Response: set_body :: HackEnumerator -> Response -> Response
+ Hack2.Contrib.Response: set_body :: ByteString -> Response -> Response
- Hack2.Contrib.Utils: hack_input :: Env -> HackEnumerator
+ Hack2.Contrib.Utils: hack_input :: Env -> ByteString

Files

hack2-contrib.cabal view
@@ -1,5 +1,5 @@ Name:                 hack2-contrib-Version:              2011.10.12+Version:              2012.1.19 Build-type:           Simple Synopsis:             Hack2 contrib Description:          Common middlewares and utilities that helps working with Hack2@@ -28,11 +28,10 @@                   , data-default >= 0.2                   , time                   , air >= 2011.6.19-                  , hack2 >= 2011.6.20+                  , hack2 >= 2012.1.19                   , utf8-string                   -- , ansi-wl-pprint                   , regexpr-                  , enumerator                      hs-source-dirs: src/   
src/Hack2/Contrib/Middleware/File.hs view
@@ -20,9 +20,7 @@ import System.Directory import System.FilePath import qualified Data.ByteString.Char8 as B-import qualified Data.ByteString.Lazy.Char8 as Lazy import Data.ByteString.Char8 (ByteString)-import Data.Enumerator.Binary (enumFile)   file :: Maybe ByteString -> Middleware@@ -63,7 +61,7 @@       serving path = do         -- puts "serving path"         -        let file_enumerator = enumFile - b2u path+        file_data <- B.readFile path                  size <- path.b2u.file_size ^ from_i         -- puts - "size is " + show size@@ -78,7 +76,7 @@                  return -            def -            .set_body (HackEnumerator file_enumerator)+            .set_body_bytestring file_data             .set_content_length size             .set_content_type content_type             .set_last_modified (B.pack mtime_str)@@ -91,27 +89,27 @@     def       .set_status 404       .set_content_type _TextPlain-      .set_content_length (msg.Lazy.length)+      .set_content_length (msg.B.length)       .set_body_bytestring msg -    where msg = "No permission: " + s2l path + "\n"+    where msg = "No permission: " + path + "\n"  not_found :: ByteString -> IO Response not_found path = return $   def     .set_status 404     .set_content_type _TextPlain-    .set_content_length (msg.Lazy.length)+    .set_content_length (msg.B.length)     .set_body_bytestring msg   -  where msg = "File not found: " + s2l path + "\n"+  where msg = "File not found: " + path + "\n"  forbidden :: IO Response forbidden = return -    def     .set_status 403     .set_content_type _TextPlain-    .set_content_length (msg.Lazy.length)+    .set_content_length (msg.B.length)     .set_body_bytestring msg    where msg = "Forbidden\n"
src/Hack2/Contrib/Middleware/Head.hs view
@@ -4,10 +4,9 @@ import Hack2.Contrib.Response import Hack2.Contrib.Utils -import Air.Env hiding (def, head)+import Air.Env hiding (head) import Prelude () import qualified Data.ByteString.Char8 as B-import Data.Default (def)  head :: Middleware head app = \env -> do
src/Hack2/Contrib/Request.hs view
@@ -13,12 +13,11 @@ import Network.CGI.Protocol import Prelude () import qualified Data.ByteString.Char8 as B-import qualified Data.ByteString.Lazy.Char8 as Lazy import Hack2.Contrib.AirBackports  -input_bytestring :: Env -> IO Lazy.ByteString-input_bytestring = hack_input > unHackEnumerator > fromEnumerator+input_bytestring :: Env -> IO ByteString+input_bytestring = hack_input > return  scheme :: Env -> ByteString scheme = hack_url_scheme > show > lower > B.pack@@ -75,7 +74,7 @@       .map_fst (B.unpack > upper > gsub "-" "_") -- cgi env use all cap letters       .map_snd B.unpack       .(("REQUEST_METHOD", env.request_method.show) : ) -- for cgi request-      .flip decodeInput _body+      .flip decodeInput (_body.s2l)       .fst       .concatMap to_headers       
src/Hack2/Contrib/Response.hs view
@@ -8,16 +8,13 @@ import Hack2 import Hack2.Contrib.Constants import Hack2.Contrib.Utils-import Air.Env hiding (def)+import Air.Env import Prelude ()-import qualified Data.ByteString.Lazy.Char8 as Lazy import Hack2.Contrib.AirBackports-import Data.Default (def)-import Data.Enumerator (run_, enumList, Enumerator, ($$)) import qualified Data.ByteString.Char8 as Strict -body_bytestring :: Response -> IO Lazy.ByteString-body_bytestring r = r.body.unHackEnumerator.fromEnumerator+body_bytestring :: Response -> IO ByteString+body_bytestring = body > return  redirect :: ByteString -> Maybe Int -> Response -> Response redirect target code = @@ -50,14 +47,11 @@ set_content_length :: (Integral a) => a -> Response -> Response set_content_length i r = r.set_header _ContentLength (i.show_bytestring) -set_body :: HackEnumerator -> Response -> Response+set_body :: ByteString -> Response -> Response set_body s r = r { body = s } -set_body_bytestring :: Lazy.ByteString -> Response -> Response-set_body_bytestring b r = -  let enum = b.toEnumerator :: (forall a. Enumerator Strict.ByteString IO a)-  in-  set_body (HackEnumerator enum) r+set_body_bytestring :: ByteString -> Response -> Response+set_body_bytestring = set_body  set_status :: Int -> Response -> Response set_status i r = r { status = i }
src/Hack2/Contrib/Utils.hs view
@@ -16,28 +16,11 @@ import Prelude () import System.Locale (defaultTimeLocale) import qualified Data.ByteString.Char8 as B-import qualified Data.ByteString.Lazy.Char8 as Lazy import qualified Data.Map as M import Hack2.Contrib.AirBackports  import qualified Data.ByteString.Char8 as Strict -import qualified Data.Enumerator.Binary as EB-import qualified Data.Enumerator.List as EL--import Data.Enumerator (run_, enumList, Enumerator, ($$))--fromEnumerator :: Monad m => Enumerator Strict.ByteString m Lazy.ByteString -> m Lazy.ByteString-fromEnumerator m = run_ - m $$ EB.consume--toEnumerator :: Monad m => Lazy.ByteString -> Enumerator Strict.ByteString m a-toEnumerator = enumList 1 < Lazy.toChunks--withEnumerator :: Monad m => (Lazy.ByteString -> Lazy.ByteString) -> Enumerator Strict.ByteString m Lazy.ByteString -> m (Enumerator Strict.ByteString m a)-withEnumerator f enum = do-  bytes <- fromEnumerator enum-  return - toEnumerator - f bytes- empty_app :: Application empty_app = return def @@ -53,8 +36,8 @@ get :: (Eq a) => a -> [(a, b)] -> Maybe b get = lookup -bytesize :: Lazy.ByteString -> Int-bytesize = Lazy.length > from_i+bytesize :: ByteString -> Int+bytesize = B.length > from_i  show_bytestring :: (Show a) => a -> ByteString show_bytestring = show > B.pack@@ -102,7 +85,7 @@ server_port       :: Env -> Int hack_version      :: Env -> (Int, Int, Int) hack_url_scheme   :: Env -> HackUrlScheme-hack_input        :: Env -> HackEnumerator+hack_input        :: Env -> ByteString hack_errors       :: Env -> HackErrors hack_headers       :: Env -> [(ByteString, ByteString)]