packages feed

yesod-dsl 0.1.1.2 → 0.1.1.3

raw patch · 8 files changed

+21/−3 lines, 8 files

Files

Generator/Models.hs view
@@ -29,8 +29,13 @@ enum e = T.unpack $(codegenFile "codegen/enum.cg")     where fromPathPieces = concatMap fromPathPiece (enumValues e)            toPathPieces = concatMap toPathPiece (enumValues e)+          parseJSONs = concatMap parseJSON (enumValues e)+          toJSONs = concatMap toJSON (enumValues e)           fromPathPiece v = T.unpack $(codegenFile "codegen/enum-frompathpiece.cg")           toPathPiece v = T.unpack $(codegenFile "codegen/enum-topathpiece.cg")+          parseJSON v = T.unpack $(codegenFile "codegen/enum-parsejson.cg")+          toJSON v = T.unpack $(codegenFile "codegen/enum-tojson.cg")+ modelField :: Field -> String modelField f = T.unpack $(codegenFile "codegen/model-field.cg") 
codegen/dispatch.cg view
@@ -22,5 +22,6 @@   instance (YesodAuthPersist master,           ~{moduleName m}Validation master,+          KeyEntity (AuthId master) ~ User,           YesodPersistBackend master ~ SqlPersistT) => YesodSubDispatch ~{moduleName m} (HandlerT master IO) where     yesodSubDispatch = $(mkYesodSubDispatch resources~{moduleName m})
+ codegen/enum-parsejson.cg view
@@ -0,0 +1,1 @@+        "~{v}" -> return ~{v}
+ codegen/enum-tojson.cg view
@@ -0,0 +1,1 @@+    toJSON ~{v} = A.String "~{v}"
codegen/enum.cg view
@@ -1,8 +1,16 @@ data ~{enumName e} = ~{intercalate " | " (enumValues e)} deriving (Show, Read, Eq) derivePersistField "~{enumName e}"-deriveJSON id ''~{enumName e} +instance A.FromJSON ~{enumName e} where+    parseJSON = A.withText "~{enumName e}" (\v -> case v of+~{parseJSONs}        _ -> mzero)++instance A.ToJSON ~{enumName e} where+~{toJSONs}+ instance PathPiece ~{enumName e} where ~{fromPathPieces}     fromPathPiece _ = Nothing ~{toPathPieces}++
codegen/enums-header.cg view
@@ -1,6 +1,7 @@ {-# LANGUAGE TemplateHaskell #-} module Handler.~{moduleName m}.Enums where import Database.Persist.TH-import Data.Aeson.TH+import qualified Data.Aeson as A import Prelude import Web.PathPieces+import Control.Monad (mzero)
codegen/handler-header.cg view
@@ -1,5 +1,6 @@ ~{hsHandlerMethod ht}~{hsRouteName (routePath r)} :: forall master. (~{moduleName m}Validation master,      YesodAuthPersist master,+    KeyEntity (AuthId master) ~ User,     YesodPersistBackend master ~ SqlPersistT)     => ~{hsRouteType (routePath r)}HandlerT ~{moduleName m} (HandlerT master IO) A.Value ~{hsHandlerMethod ht}~{hsRouteName (routePath r)} ~{hsRouteParams (routePath r)} = do
yesod-dsl.cabal view
@@ -1,5 +1,5 @@ name:           yesod-dsl-version:        0.1.1.2+version:        0.1.1.3 license:        BSD3 license-file:   LICENSE author:         Tero Laitinen