packages feed

yesod-dsl 0.1.1.14 → 0.1.1.15

raw patch · 2 files changed

+31/−1 lines, 2 files

Files

+ Generator/EntityFactories.hs view
@@ -0,0 +1,29 @@+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE OverloadedStrings #-}+module Generator.EntityFactories where+import AST+import Data.Maybe+import qualified Data.Text as T+import Data.List+import Text.Shakespeare.Text hiding (toText)+import Generator.Common++entityFactory :: Entity -> String+entityFactory e = T.unpack $(codegenFile "codegen/entity-factory.cg")+    where requiredFields = [ f | f <- entityFields e, +                                 fieldOptional f == False, +                                 isNothing $ fieldDefault f ]+          defaultFields = (entityFields e) \\ requiredFields+          fieldParamName f = fieldName f ++ "_"+          fieldSetter f = entityFieldName e f ++ " = " ++ value f+          value f +            | f `elem` requiredFields = fieldParamName f+            | fieldOptional f = "Nothing"+            | otherwise = case fieldDefault f of+                    Just fv -> fieldValueToHs fv+                    Nothing -> error "missing default value in entityFactory"++entityFactories :: Module -> String+entityFactories m = concatMap entityFactory (modEntities m)++
yesod-dsl.cabal view
@@ -1,5 +1,5 @@ name:           yesod-dsl-version:        0.1.1.14+version:        0.1.1.15 license:        BSD3 license-file:   LICENSE author:         Tero Laitinen @@ -44,6 +44,7 @@                    Generator.Cabal                    Generator.EsqueletoInstances                    Generator.Fay+                   Generator.EntityFactories                    Obfuscate                    SyncFile                    ExpandMacros