packages feed

bird 0.0.7 → 0.0.8

raw patch · 3 files changed

+16/−6 lines, 3 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

+ Bird.BirdRouter: param :: (MonadReader Request m) => String -> m (Maybe String)
- Bird.BirdRouter: type BirdRouter = StateT Reply IO
+ Bird.BirdRouter: type BirdRouter = StateT Reply (ReaderT Request IO)

Files

bin/bird.hs view
@@ -20,9 +20,13 @@  routeFile a =    "module " ++ a ++ " where\n" +++  "import Data.Maybe\n" ++   "import Bird\n\n" ++    "get, post, put, delete :: Path -> BirdRouter ()\n" ++-  "get [] = body \"Hello, Bird!\"\n" +++  "get [] = do\n" +++  "  name <- param $ \"name\"\n" +++  "  body $ \"Hello, \" ++ (maybe \"Bird!\" id name)\n\n" +++   "get _ = status 404\n" ++   "post _ = status 404\n" ++   "put _ = status 404\n" ++@@ -33,6 +37,7 @@   "import Hack.Handler.Happstack\n" ++   "import Bird\n" ++   "import qualified Control.Monad.State as S\n" +++  "import qualified Control.Monad.Reader as R\n" ++   "import " ++ a ++ "\n" ++ "\n" ++    "app :: Application\n" ++@@ -41,9 +46,9 @@   "route :: Env -> IO Response\n" ++   "route e = response\n" ++   "  where \n" ++-  "    r = envToRequest e\n" +++  "    req = envToRequest e\n" ++   "    response = do \n" ++-  "      reply <- S.execStateT (matchRequest r) def\n" +++  "      reply <- R.runReaderT (S.execStateT (matchRequest req) def) req\n" ++   "      return $ replyToResponse reply\n" ++ "\n" ++    "matchRequest r = \n" ++
bird.cabal view
@@ -1,5 +1,5 @@ Name:                 bird-Version:              0.0.7+Version:              0.0.8 Build-type:           Simple Synopsis:             A simple, sinatra-inspired web framework. Description:          Bird is a hack-compatible framework for simple websites.
src/Bird/BirdRouter.hs view
@@ -2,13 +2,16 @@   BirdRouter , body , status+, param ) where  import Control.Monad.State+import Control.Monad.Reader+import Data.Maybe import Bird.Reply import Bird.Request -type BirdRouter = StateT Reply IO+type BirdRouter = StateT Reply (ReaderT Request IO)  body b = do   reply <- get@@ -18,4 +21,6 @@   reply <- get   put $ reply { replyStatus = code } ---param paramName request = lookup paramName $ params request+param paramName = do+  request <- ask+  return $ maybe Nothing id (lookup paramName $ params request)