]> gitweb.michael.orlitzky.com - dead/htsn-import.git/commitdiff
Add some more customization to our codegen config.
authorMichael Orlitzky <michael@orlitzky.com>
Sat, 11 Jan 2014 23:43:50 +0000 (18:43 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Sat, 11 Jan 2014 23:43:50 +0000 (18:43 -0500)
src/TSN/Codegen.hs

index cd5853c9dfccbfa4a0f873e3dd662ab60b8aca65..38aede40cae87a672ff862143ff950a34b899abd 100644 (file)
@@ -4,10 +4,11 @@ module TSN.Codegen (
   )
 where
 
+import Data.Char ( toLower, toUpper )
 import Data.List.Utils ( join, split )
 import Database.Groundhog.TH (
   CodegenConfig ( namingStyle ),
-  NamingStyle ( mkDbFieldName ),
+  NamingStyle ( mkDbConstrName, mkDbFieldName, mkExprFieldName ),
   defaultCodegenConfig )
 
 default_ns :: NamingStyle
@@ -21,8 +22,21 @@ tsn_db_field_namer :: String -> String -> Int -> String -> Int -> String
 tsn_db_field_namer _ _ _ fieldname _ =
   (join "_") . tail . (split "_") $ fieldname
 
+tsn_db_constr_namer :: String -> String -> Int -> String
+tsn_db_constr_namer _ constrname _ =
+  map toLower constrname
+
+tsn_expr_field_namer :: String -> String -> Int -> String -> Int -> String
+tsn_expr_field_namer _ _ _ fieldname _ =
+  (join "_") . (map capitalize) . (split "_") $ fieldname
+  where
+    capitalize [] = []
+    capitalize (c:cs) = (toUpper c : cs)
+
 tsn_naming_style :: NamingStyle
-tsn_naming_style = default_ns { mkDbFieldName = tsn_db_field_namer }
+tsn_naming_style = default_ns { mkDbConstrName = tsn_db_constr_namer,
+                                mkDbFieldName = tsn_db_field_namer,
+                                mkExprFieldName = tsn_expr_field_namer }
 
 tsn_codegen_config :: CodegenConfig
 tsn_codegen_config =