digestive-functors 0.6.2.0 → 0.7.0.0
raw patch · 6 files changed
+23/−29 lines, 6 filesdep ~text
Dependency ranges changed: text
Files
- digestive-functors.cabal +2/−2
- src/Text/Digestive/Form/Encoding.hs +0/−9
- src/Text/Digestive/View.hs +6/−4
- tests/Text/Digestive/Form/Encoding/QTests.hs +9/−10
- tests/Text/Digestive/Form/Encoding/Tests.hs +3/−2
- tests/Text/Digestive/View/Tests.hs +3/−2
digestive-functors.cabal view
@@ -1,5 +1,5 @@ Name: digestive-functors-Version: 0.6.2.0+Version: 0.7.0.0 Synopsis: A practical formlet library Description:@@ -95,7 +95,7 @@ containers >= 0.3 && < 0.6, mtl >= 1.1.0.0 && < 3, old-locale >= 1.0 && < 1.1,- text >= 0.10 && < 1.1,+ text >= 0.10 && < 1.2, time >= 1.4 && < 1.5 Source-repository head
src/Text/Digestive/Form/Encoding.hs view
@@ -5,13 +5,11 @@ -- the content types of forms. module Text.Digestive.Form.Encoding ( FormEncType (..)- , formEncType , formTreeEncType ) where ---------------------------------------------------------------------------------import Control.Monad (liftM) import Control.Monad.Identity (Identity) import Data.Maybe (mapMaybe) import Data.Monoid (Monoid (..), mconcat)@@ -61,13 +59,6 @@ where fieldList' (SomeForm f) = SomeForm f : concatMap fieldList' (children f) toField' (SomeForm f) = toField f-------------------------------------------------------------------------------------- | Determines the encoding type of a "Form" ---- returns result in evaluating context-formEncType :: Monad m => Form v m a -> m FormEncType-formEncType form = liftM formTreeEncType $ toFormTree form --------------------------------------------------------------------------------
src/Text/Digestive/View.hs view
@@ -106,14 +106,16 @@ -------------------------------------------------------------------------------- -- | Handle a form for a POST request - evaluate with the given environment -- and return the result.-postForm :: Monad m => Text -> Form v m a -> Env m -> m (View v, Maybe a)-postForm name form env = do+postForm :: Monad m+ => Text -> Form v m a -> (FormEncType -> m (Env m))+ -> m (View v, Maybe a)+postForm name form makeEnv = do form' <- toFormTree form+ env <- makeEnv $ formTreeEncType form'+ let env' = env . (name :) eval Post env' form' >>= \(r, inp) -> return $ case r of Error errs -> (View name [] form' inp errs Post, Nothing) Success x -> (View name [] form' inp [] Post, Just x)- where- env' = env . (name :) --------------------------------------------------------------------------------
tests/Text/Digestive/Form/Encoding/QTests.hs view
@@ -1,19 +1,19 @@-module Text.Digestive.Form.Encoding.QTests- ( tests- ) where- ---------------------------------------------------------------------------------import Test.Framework-import Test.Framework.Providers.QuickCheck2-import Test.QuickCheck+{-# OPTIONS_GHC -fno-warn-orphans #-}+module Text.Digestive.Form.Encoding.QTests+ ( tests+ ) where ---------------------------------------------------------------------------------import Text.Digestive.Form.Encoding+import Data.Monoid+import Test.Framework+import Test.Framework.Providers.QuickCheck2+import Test.QuickCheck ---------------------------------------------------------------------------------import Data.Monoid+import Text.Digestive.Form.Encoding --------------------------------------------------------------------------------@@ -25,7 +25,6 @@ , testProperty "enctype monoid - Right identity" prop_idr , testProperty "enctype monoid - Associativity" prop_assoc ]- --------------------------------------------------------------------------------
tests/Text/Digestive/Form/Encoding/Tests.hs view
@@ -7,7 +7,7 @@ -------------------------------------------------------------------------------- import Control.Applicative ((<$>), (<*>))-import Control.Monad.Identity (Identity(..))+import Control.Monad.Identity (Identity (..)) import Data.Text (Text) import Test.Framework (Test, testGroup) import Test.Framework.Providers.HUnit (testCase)@@ -17,6 +17,7 @@ -------------------------------------------------------------------------------- import Text.Digestive.Form import Text.Digestive.Form.Encoding+import Text.Digestive.Form.Internal --------------------------------------------------------------------------------@@ -31,4 +32,4 @@ ] where formEncType' :: Form Text Identity a -> FormEncType- formEncType' = runIdentity . formEncType+ formEncType' = formTreeEncType . runIdentity . toFormTree
tests/Text/Digestive/View/Tests.hs view
@@ -17,6 +17,7 @@ --------------------------------------------------------------------------------+import Text.Digestive.Form.Encoding import Text.Digestive.Tests.Fixtures import Text.Digestive.Types import Text.Digestive.View@@ -171,8 +172,8 @@ ---------------------------------------------------------------------------------testEnv :: Monad m => [(Text, Text)] -> Env m-testEnv input key = return $ map (TextInput . snd) $+testEnv :: Monad m => [(Text, Text)] -> FormEncType -> m (Env m)+testEnv input _formEncType = return $ \key -> return $ map (TextInput . snd) $ filter ((== fromPath key) . fst) input