]> gitweb.michael.orlitzky.com - dead/htsn-import.git/blob - src/TSN/Codegen.hs
Add the TSN.Codegen module to help Groundhog out.
[dead/htsn-import.git] / src / TSN / Codegen.hs
1 module TSN.Codegen (
2 tsn_codegen_config )
3 where
4
5 import Data.List.Utils ( join, split )
6 import Database.Groundhog.TH (
7 CodegenConfig ( namingStyle ),
8 NamingStyle ( mkDbFieldName ),
9 defaultCodegenConfig )
10
11 default_ns :: NamingStyle
12 default_ns = namingStyle defaultCodegenConfig
13
14 -- | A database field name creator. It takes the field name (from a
15 -- record type) and drops the first component determined by
16 -- underscores. So, foo_bar_baz would get mapped to bar_baz in the
17 -- database.
18 tsn_db_field_namer :: String -> String -> Int -> String -> Int -> String
19 tsn_db_field_namer _ _ _ fieldname _ =
20 (join "_") . tail . (split "_") $ fieldname
21
22 tsn_naming_style :: NamingStyle
23 tsn_naming_style = default_ns { mkDbFieldName = tsn_db_field_namer }
24
25 tsn_codegen_config :: CodegenConfig
26 tsn_codegen_config =
27 defaultCodegenConfig { namingStyle = tsn_naming_style }