Packages

A delightful ORM (?) for Gleam! 🍳

Current section

Files

Jump to
ormlette src ormlette@templates@tables.erl
Raw

src/ormlette@templates@tables.erl

-module(ormlette@templates@tables).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([render_builder/1, render/1]).
-file("/Users/ashercohen/Desktop/gleam/ormlette/src/ormlette/templates/tables.gleam", 13).
-spec render_builder(list(ormlette@schema@create:table())) -> gleam@string_builder:string_builder().
render_builder(Tables) ->
Builder = gleam@string_builder:from_string(<<""/utf8>>),
Builder@1 = gleam@string_builder:append(Builder, <<"
"/utf8>>),
Builder@64 = gleam@list:fold(
Tables,
Builder@1,
fun(Builder@2, Table) ->
Builder@3 = gleam@string_builder:append(
Builder@2,
<<"
pub type "/utf8>>
),
Builder@4 = gleam@string_builder:append(
Builder@3,
gleam@string:capitalise(erlang:element(2, Table))
),
Builder@5 = gleam@string_builder:append(Builder@4, <<" {
"/utf8>>),
Builder@6 = gleam@string_builder:append(
Builder@5,
gleam@string:capitalise(erlang:element(2, Table))
),
Builder@7 = gleam@string_builder:append(Builder@6, <<"(
"/utf8>>),
Builder@12 = gleam@list:fold(
erlang:element(3, Table),
Builder@7,
fun(Builder@8, Col) ->
Builder@9 = gleam@string_builder:append(
Builder@8,
<<"
"/utf8>>
),
Builder@10 = gleam@string_builder:append(
Builder@9,
erlang:element(2, Col)
),
Builder@11 = gleam@string_builder:append(
Builder@10,
<<": String,
"/utf8>>
),
Builder@11
end
),
Builder@13 = gleam@string_builder:append(
Builder@12,
<<"
)
}
pub fn "/utf8>>
),
Builder@14 = gleam@string_builder:append(
Builder@13,
gleam@string:lowercase(erlang:element(2, Table))
),
Builder@15 = gleam@string_builder:append(
Builder@14,
<<"() -> "/utf8>>
),
Builder@16 = gleam@string_builder:append(
Builder@15,
gleam@string:replace(
gleam@string:capitalise(erlang:element(2, Table)),
<<"_"/utf8>>,
<<""/utf8>>
)
),
Builder@17 = gleam@string_builder:append(
Builder@16,
<<"{
"/utf8>>
),
Builder@18 = gleam@string_builder:append(
Builder@17,
gleam@string:capitalise(erlang:element(2, Table))
),
Builder@19 = gleam@string_builder:append(Builder@18, <<"("/utf8>>),
Builder@28 = gleam@list:fold(
erlang:element(3, Table),
Builder@19,
fun(Builder@20, Col@1) ->
Builder@21 = gleam@string_builder:append(
Builder@20,
<<" "/utf8>>
),
Builder@22 = gleam@string_builder:append(
Builder@21,
erlang:element(2, Col@1)
),
Builder@23 = gleam@string_builder:append(
Builder@22,
<<": \""/utf8>>
),
Builder@24 = gleam@string_builder:append(
Builder@23,
gleam@string:lowercase(erlang:element(2, Table))
),
Builder@25 = gleam@string_builder:append(
Builder@24,
<<"."/utf8>>
),
Builder@26 = gleam@string_builder:append(
Builder@25,
erlang:element(2, Col@1)
),
Builder@27 = gleam@string_builder:append(
Builder@26,
<<"\", "/utf8>>
),
Builder@27
end
),
Builder@29 = gleam@string_builder:append(
Builder@28,
<<" )
}
"/utf8>>
),
Builder@62 = gleam@list:fold(
ormlette@templates@utils@combine:combine(Table),
Builder@29,
fun(Builder@30, Combined_table) ->
Builder@31 = gleam@string_builder:append(
Builder@30,
<<"
pub type "/utf8>>
),
Builder@32 = gleam@string_builder:append(
Builder@31,
gleam@string:replace(
gleam@string:capitalise(
erlang:element(2, Combined_table)
),
<<"_"/utf8>>,
<<""/utf8>>
)
),
Builder@33 = gleam@string_builder:append(
Builder@32,
<<" {
"/utf8>>
),
Builder@34 = gleam@string_builder:append(
Builder@33,
gleam@string:replace(
gleam@string:capitalise(
erlang:element(2, Combined_table)
),
<<"_"/utf8>>,
<<""/utf8>>
)
),
Builder@35 = gleam@string_builder:append(
Builder@34,
<<"(
"/utf8>>
),
Builder@42 = gleam@list:fold(
ormlette@templates@utils@combine:get_column_info(
Combined_table
),
Builder@35,
fun(Builder@36, Col_info) ->
Builder@37 = gleam@string_builder:append(
Builder@36,
<<"
"/utf8>>
),
Builder@38 = gleam@string_builder:append(
Builder@37,
erlang:element(2, Col_info)
),
Builder@39 = gleam@string_builder:append(
Builder@38,
<<"_"/utf8>>
),
Builder@40 = gleam@string_builder:append(
Builder@39,
erlang:element(3, Col_info)
),
Builder@41 = gleam@string_builder:append(
Builder@40,
<<": String, // Use underscore for field names
"/utf8>>
),
Builder@41
end
),
Builder@43 = gleam@string_builder:append(
Builder@42,
<<"
)
}
pub fn "/utf8>>
),
Builder@44 = gleam@string_builder:append(
Builder@43,
gleam@string:lowercase(
erlang:element(2, Combined_table)
)
),
Builder@45 = gleam@string_builder:append(
Builder@44,
<<"() -> "/utf8>>
),
Builder@46 = gleam@string_builder:append(
Builder@45,
gleam@string:replace(
gleam@string:capitalise(
erlang:element(2, Combined_table)
),
<<"_"/utf8>>,
<<""/utf8>>
)
),
Builder@47 = gleam@string_builder:append(
Builder@46,
<<"{
"/utf8>>
),
Builder@48 = gleam@string_builder:append(
Builder@47,
gleam@string:replace(
gleam@string:capitalise(
erlang:element(2, Combined_table)
),
<<"_"/utf8>>,
<<""/utf8>>
)
),
Builder@49 = gleam@string_builder:append(
Builder@48,
<<"("/utf8>>
),
Builder@60 = gleam@list:fold(
ormlette@templates@utils@combine:get_column_info(
Combined_table
),
Builder@49,
fun(Builder@50, Col_info@1) ->
Builder@51 = gleam@string_builder:append(
Builder@50,
<<"
"/utf8>>
),
Builder@52 = gleam@string_builder:append(
Builder@51,
erlang:element(2, Col_info@1)
),
Builder@53 = gleam@string_builder:append(
Builder@52,
<<"_"/utf8>>
),
Builder@54 = gleam@string_builder:append(
Builder@53,
erlang:element(3, Col_info@1)
),
Builder@55 = gleam@string_builder:append(
Builder@54,
<<": \""/utf8>>
),
Builder@56 = gleam@string_builder:append(
Builder@55,
gleam@string:lowercase(
erlang:element(2, Col_info@1)
)
),
Builder@57 = gleam@string_builder:append(
Builder@56,
<<"."/utf8>>
),
Builder@58 = gleam@string_builder:append(
Builder@57,
erlang:element(3, Col_info@1)
),
Builder@59 = gleam@string_builder:append(
Builder@58,
<<"\", "/utf8>>
),
Builder@59
end
),
Builder@61 = gleam@string_builder:append(
Builder@60,
<<" )
}
"/utf8>>
),
Builder@61
end
),
Builder@63 = gleam@string_builder:append(Builder@62, <<"
"/utf8>>),
Builder@63
end
),
Builder@64.
-file("/Users/ashercohen/Desktop/gleam/ormlette/src/ormlette/templates/tables.gleam", 124).
-spec render(list(ormlette@schema@create:table())) -> binary().
render(Tables) ->
gleam@string_builder:to_string(render_builder(Tables)).