packages feed

wai-middleware-content-type 0.0.0 → 0.0.1

raw patch · 14 files changed

+34/−21 lines, 14 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Network.Wai.Middleware.ContentType.Types: instance GHC.Base.Applicative m => GHC.Base.Applicative (Network.Wai.Middleware.ContentType.Types.FileExtListenerT r m)
- Network.Wai.Middleware.ContentType.Types: instance GHC.Base.Monad m => Control.Monad.Writer.Class.MonadWriter (Network.Wai.Middleware.ContentType.Types.FileExts r) (Network.Wai.Middleware.ContentType.Types.FileExtListenerT r m)
+ Network.Wai.Middleware.ContentType.Types: instance GHC.Base.Monad m => Control.Monad.State.Class.MonadState (Network.Wai.Middleware.ContentType.Types.FileExts r) (Network.Wai.Middleware.ContentType.Types.FileExtListenerT r m)
+ Network.Wai.Middleware.ContentType.Types: instance GHC.Base.Monad m => GHC.Base.Applicative (Network.Wai.Middleware.ContentType.Types.FileExtListenerT r m)
+ Network.Wai.Middleware.ContentType.Types: tell :: (Monoid w, MonadState w m) => w -> m ()
- Network.Wai.Middleware.ContentType.Types: FileExtListenerT :: WriterT (FileExts r) m a -> FileExtListenerT r m a
+ Network.Wai.Middleware.ContentType.Types: FileExtListenerT :: StateT (FileExts r) m a -> FileExtListenerT r m a
- Network.Wai.Middleware.ContentType.Types: [runFileExtListenerT] :: FileExtListenerT r m a -> WriterT (FileExts r) m a
+ Network.Wai.Middleware.ContentType.Types: [runFileExtListenerT] :: FileExtListenerT r m a -> StateT (FileExts r) m a

Files

src/Network/Wai/Middleware/ContentType.hs view
@@ -9,7 +9,7 @@   , possibleFileExts   ) where -import Network.Wai.Middleware.ContentType.Types      as X+import Network.Wai.Middleware.ContentType.Types      as X hiding (tell) import Network.Wai.Middleware.ContentType.Blaze      as X import Network.Wai.Middleware.ContentType.Builder    as X import Network.Wai.Middleware.ContentType.ByteString as X
src/Network/Wai/Middleware/ContentType/Blaze.hs view
@@ -11,8 +11,8 @@ import           Network.Wai.Trans import qualified Text.Blaze.Html                         as H import qualified Text.Blaze.Html.Renderer.Text           as H+import           Control.Monad.IO.Class                  (MonadIO) -import           Control.Monad.Writer   -- | Uses @Html@ as the key in the map, and @"text/html"@ as the content type.
src/Network/Wai/Middleware/ContentType/Builder.hs view
@@ -8,8 +8,8 @@  import qualified Data.ByteString.Builder                 as BU import qualified Data.Map                                as Map+import           Control.Monad.IO.Class -import           Control.Monad.Writer   -- | A builder is ambiguous, therefore we require @RequestHeaders@ and a @FileExt@ to be explicitly
src/Network/Wai/Middleware/ContentType/ByteString.hs view
@@ -10,9 +10,8 @@  import qualified Data.ByteString.Lazy                    as B import           Data.Map--import           Control.Monad.IO.Class (liftIO)-import           Control.Monad.Writer+import           Control.Monad.Trans (lift)+import           Control.Monad.IO.Class   -- * Lifted @MiddlewareT@
src/Network/Wai/Middleware/ContentType/Cassius.hs view
@@ -9,8 +9,8 @@  import           Text.Cassius import qualified Data.Text.Lazy.Encoding                 as LT+import           Control.Monad.IO.Class                  (MonadIO) -import           Control.Monad.Writer   -- | Uses @cassius@ as the key in the map, and @"cassius/plain"@ as the content type.
src/Network/Wai/Middleware/ContentType/Clay.hs view
@@ -10,8 +10,8 @@ import           Clay.Render import           Clay.Stylesheet import qualified Data.Text.Lazy.Encoding                 as LT+import           Control.Monad.IO.Class                  (MonadIO) -import           Control.Monad.Writer   -- | Uses @Text@ as the key in the map, and @"text/css"@ as the content type.
src/Network/Wai/Middleware/ContentType/Json.hs view
@@ -8,8 +8,8 @@ import           Network.Wai.Trans  import qualified Data.Aeson                              as A+import           Control.Monad.IO.Class                  (MonadIO) -import           Control.Monad.Writer   
src/Network/Wai/Middleware/ContentType/Julius.hs view
@@ -9,8 +9,8 @@  import           Text.Julius import qualified Data.Text.Lazy.Encoding                 as LT+import           Control.Monad.IO.Class                  (MonadIO) -import           Control.Monad.Writer   -- | Uses @julius@ as the key in the map, and @"application/javascript"@ as the content type.
src/Network/Wai/Middleware/ContentType/Lucid.hs view
@@ -8,8 +8,9 @@ import           Network.Wai.Trans  import qualified Lucid.Base                              as L+import           Control.Monad.Trans+import           Control.Monad.IO.Class                  (MonadIO) -import           Control.Monad.Writer   -- | Uses the @Html@ key in the map, and @"text/html"@ as the content type.@@ -70,4 +71,4 @@  lucidOnlyStatusHeaders :: Monad m =>              Status -> RequestHeaders -> L.HtmlT m () -> m Response-lucidOnlyStatusHeaders s hs i = liftM (bytestringOnlyStatus s hs) $ L.renderBST i+lucidOnlyStatusHeaders s hs i = bytestringOnlyStatus s hs <$> L.renderBST i
src/Network/Wai/Middleware/ContentType/Lucius.hs view
@@ -9,8 +9,8 @@  import           Text.Lucius import qualified Data.Text.Lazy.Encoding                 as LT+import           Control.Monad.IO.Class                  (MonadIO) -import           Control.Monad.Writer   -- | Uses @lucius@ as the key in the map, and @"lucius/css"@ as the content type.
src/Network/Wai/Middleware/ContentType/Middleware.hs view
@@ -3,7 +3,6 @@ import Network.Wai.Middleware.ContentType.Types import Network.Wai.Trans import qualified Data.Map as Map-import Control.Monad.Writer   -- | Lifts a @MiddlewareT@ directly as a response to a file extension.
src/Network/Wai/Middleware/ContentType/Text.hs view
@@ -9,8 +9,8 @@  import qualified Data.Text.Lazy                          as LT import qualified Data.Text.Lazy.Encoding                 as LT+import           Control.Monad.IO.Class                  (MonadIO) -import           Control.Monad.Writer   -- | Uses @Text@ as the key in the map, and @"text/plain"@ as the content type.
src/Network/Wai/Middleware/ContentType/Types.hs view
@@ -8,16 +8,30 @@   , MultiParamTypeClasses   #-} -module Network.Wai.Middleware.ContentType.Types where+module Network.Wai.Middleware.ContentType.Types+  ( FileExt (..)+  , getFileExt+  , toExt+  , FileExts (..)+  , FileExtListenerT (..)+  , execFileExtListenerT+  , tell+  ) where  import           Network.Wai import qualified Data.Text              as T import           Data.Map import           Data.Maybe (fromMaybe)+import           Data.Monoid import           Control.Monad.Trans-import           Control.Monad.Writer+import           Control.Monad.State  +tell :: (Monoid w, MonadState w m) => w -> m ()+tell x = do+  xs <- get+  put $ xs <> x+ -- | Supported file extensions data FileExt = Html              | Css@@ -50,8 +64,8 @@   deriving (Show, Eq, Monoid, Functor, Foldable, Traversable)  newtype FileExtListenerT r m a =-  FileExtListenerT { runFileExtListenerT :: WriterT (FileExts r) m a }-    deriving (Functor, Applicative, Monad, MonadIO, MonadTrans, MonadWriter (FileExts r))+  FileExtListenerT { runFileExtListenerT :: StateT (FileExts r) m a }+    deriving (Functor, Applicative, Monad, MonadIO, MonadTrans, MonadState (FileExts r))  execFileExtListenerT :: Monad m => FileExtListenerT r m a -> m (FileExts r)-execFileExtListenerT = execWriterT . runFileExtListenerT+execFileExtListenerT xs = execStateT (runFileExtListenerT xs) mempty
wai-middleware-content-type.cabal view
@@ -1,5 +1,5 @@ Name:                   wai-middleware-content-type-Version:                0.0.0+Version:                0.0.1 Author:                 Athan Clark <athan.clark@gmail.com> Maintainer:             Athan Clark <athan.clark@gmail.com> License:                BSD3