wai-middleware-verbs 0.0.1 → 0.0.2
raw patch · 2 files changed
+43/−14 lines, 2 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Network.Wai.Middleware.Verbs: instance GHC.Base.Applicative m => GHC.Base.Applicative (Network.Wai.Middleware.Verbs.VerbListenerT r u m)
- Network.Wai.Middleware.Verbs: instance GHC.Base.Monad m => Control.Monad.Writer.Class.MonadWriter (Network.Wai.Middleware.Verbs.Verbs u m r) (Network.Wai.Middleware.Verbs.VerbListenerT r u m)
+ Network.Wai.Middleware.Verbs: instance GHC.Base.Monad m => Control.Monad.State.Class.MonadState (Network.Wai.Middleware.Verbs.Verbs u m r) (Network.Wai.Middleware.Verbs.VerbListenerT r u m)
+ Network.Wai.Middleware.Verbs: instance GHC.Base.Monad m => GHC.Base.Applicative (Network.Wai.Middleware.Verbs.VerbListenerT r u m)
- Network.Wai.Middleware.Verbs: VerbListenerT :: WriterT (Verbs u m r) m a -> VerbListenerT r u m a
+ Network.Wai.Middleware.Verbs: VerbListenerT :: StateT (Verbs u m r) m a -> VerbListenerT r u m a
- Network.Wai.Middleware.Verbs: [runVerbListenerT] :: VerbListenerT r u m a -> WriterT (Verbs u m r) m a
+ Network.Wai.Middleware.Verbs: [runVerbListenerT] :: VerbListenerT r u m a -> StateT (Verbs u m r) m a
Files
src/Network/Wai/Middleware/Verbs.hs view
@@ -5,7 +5,28 @@ , TupleSections #-} -module Network.Wai.Middleware.Verbs where+module Network.Wai.Middleware.Verbs+ ( Verbs (..)+ , Verb+ , getVerb+ , HandleUpload+ , Respond+ , ResponseSpec+ , supplyReq+ , lookupVerb+ , lookupVerbM+ , VerbListenerT (..)+ , execVerbListenerT+ , verbsToMiddleware+ , get+ , getReq+ , post+ , postReq+ , put+ , putReq+ , delete+ , deleteReq+ ) where import Network.Wai.Trans@@ -16,9 +37,11 @@ import Data.Map (Map) import qualified Data.Map as Map import Data.Maybe (fromMaybe)+import Data.Monoid import Control.Monad.Trans import Control.Monad.Trans.Maybe-import Control.Monad.Writer+import Control.Monad.State hiding (get, put)+import qualified Control.Monad.State as S import Control.Error.Util @@ -70,16 +93,16 @@ -- * Verb Writer newtype VerbListenerT r u m a =- VerbListenerT { runVerbListenerT :: WriterT (Verbs u m r) m a }+ VerbListenerT { runVerbListenerT :: StateT (Verbs u m r) m a } deriving ( Functor , Applicative , Monad- , MonadWriter (Verbs u m r)+ , MonadState (Verbs u m r) , MonadIO ) execVerbListenerT :: Monad m => VerbListenerT r u m a -> m (Verbs u m r)-execVerbListenerT = execWriterT . runVerbListenerT+execVerbListenerT xs = execStateT (runVerbListenerT xs) mempty instance MonadTrans (VerbListenerT r u) where@@ -104,14 +127,14 @@ -- | For simple @GET@ responses get :: ( Monad m ) => r -> VerbListenerT r u m ()-get r = tell $ Verbs $ Map.singleton GET ( const $ return Nothing+get r = tell' $ Verbs $ Map.singleton GET ( const $ return Nothing , const $ const r ) -- | Inspect the @Request@ object supplied by WAI getReq :: ( Monad m ) => (Request -> r) -> VerbListenerT r u m ()-getReq r = tell $ Verbs $ Map.singleton GET ( const $ return Nothing+getReq r = tell' $ Verbs $ Map.singleton GET ( const $ return Nothing , const . r) @@ -119,7 +142,7 @@ post :: ( Monad m , MonadIO m ) => HandleUpload m u -> (Maybe u -> r) -> VerbListenerT r u m ()-post handle r = tell $ Verbs $ Map.singleton POST ( handle+post handle r = tell' $ Verbs $ Map.singleton POST ( handle , const r ) @@ -127,7 +150,7 @@ postReq :: ( Monad m , MonadIO m ) => HandleUpload m u -> (Request -> Maybe u -> r) -> VerbListenerT r u m ()-postReq handle r = tell $ Verbs $ Map.singleton POST ( handle+postReq handle r = tell' $ Verbs $ Map.singleton POST ( handle , r ) @@ -136,7 +159,7 @@ put :: ( Monad m , MonadIO m ) => HandleUpload m u -> (Maybe u -> r) -> VerbListenerT r u m ()-put handle r = tell $ Verbs $ Map.singleton PUT ( handle+put handle r = tell' $ Verbs $ Map.singleton PUT ( handle , const r ) @@ -144,7 +167,7 @@ putReq :: ( Monad m , MonadIO m ) => HandleUpload m u -> (Request -> Maybe u -> r) -> VerbListenerT r u m ()-putReq handle r = tell $ Verbs $ Map.singleton PUT ( handle+putReq handle r = tell' $ Verbs $ Map.singleton PUT ( handle , r ) @@ -152,13 +175,19 @@ -- | For simple @DELETE@ responses delete :: ( Monad m ) => r -> VerbListenerT r u m ()-delete r = tell $ Verbs $ Map.singleton DELETE ( const $ return Nothing+delete r = tell' $ Verbs $ Map.singleton DELETE ( const $ return Nothing , const $ const r ) -- | Inspect the @Request@ object supplied by WAI deleteReq :: ( Monad m ) => (Request -> r) -> VerbListenerT r u m ()-deleteReq r = tell $ Verbs $ Map.singleton DELETE ( const $ return Nothing+deleteReq r = tell' $ Verbs $ Map.singleton DELETE ( const $ return Nothing , const . r )+++tell' :: (Monoid w, MonadState w m) => w -> m ()+tell' x = do+ xs <- S.get+ S.put $ xs <> x
wai-middleware-verbs.cabal view
@@ -1,5 +1,5 @@ Name: wai-middleware-verbs-Version: 0.0.1+Version: 0.0.2 Author: Athan Clark <athan.clark@gmail.com> Maintainer: Athan Clark <athan.clark@gmail.com> License: BSD3