X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FTSN%2FCodegen.hs;h=38aede40cae87a672ff862143ff950a34b899abd;hb=5124833f973f6c47a4eda3f4e343d3d8631897c6;hp=d5d9bbd31472a316f92f001cf7b415dce47e33f0;hpb=ca451ca0ab76d07d08bbe95a3a08aae683b9f6ea;p=dead%2Fhtsn-import.git diff --git a/src/TSN/Codegen.hs b/src/TSN/Codegen.hs index d5d9bbd..38aede4 100644 --- a/src/TSN/Codegen.hs +++ b/src/TSN/Codegen.hs @@ -1,11 +1,14 @@ module TSN.Codegen ( - tsn_codegen_config ) + tsn_codegen_config, + tsn_db_field_namer -- Used in a TSN.XML.News test. + ) 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 @@ -19,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 =