Skip to content

Commit

Permalink
Remove table_name from Avram::Model setup macro (#538)
Browse files Browse the repository at this point in the history
  • Loading branch information
matthewmcgarvey authored Nov 18, 2020
1 parent 6b23276 commit c5443e3
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 17 deletions.
2 changes: 1 addition & 1 deletion src/avram/base_query_template.cr
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
class Avram::BaseQueryTemplate
macro setup(type, columns, associations, table_name, primary_key_name, *args, **named_args)
macro setup(type, columns, associations, primary_key_name, *args, **named_args)
class ::{{ type }}::BaseQuery
private class Nothing
end
Expand Down
25 changes: 10 additions & 15 deletions src/avram/model.cr
Original file line number Diff line number Diff line change
Expand Up @@ -97,14 +97,15 @@ abstract class Avram::Model

validate_primary_key

setup(Avram::Model.setup_table_name, {{ table_name }})
setup(Avram::Model.setup_initialize, {{ table_name }})
setup(Avram::Model.setup_db_mapping, {{ table_name }})
setup(Avram::Model.setup_getters, {{ table_name }})
setup(Avram::Model.setup_column_info_methods, {{ table_name }})
setup(Avram::BaseQueryTemplate.setup, {{ table_name }})
setup(Avram::SaveOperationTemplate.setup, {{ table_name }})
setup(Avram::SchemaEnforcer.setup, {{ table_name }})
class_getter table_name = {{ table_name.id.symbolize }}
TABLE_NAME = {{ table_name.id.symbolize }}
setup(Avram::Model.setup_initialize)
setup(Avram::Model.setup_db_mapping)
setup(Avram::Model.setup_getters)
setup(Avram::Model.setup_column_info_methods)
setup(Avram::BaseQueryTemplate.setup)
setup(Avram::SaveOperationTemplate.setup)
setup(Avram::SchemaEnforcer.setup)
end

macro primary_key(type_declaration)
Expand Down Expand Up @@ -161,10 +162,9 @@ abstract class Avram::Model
column updated_at : Time, autogenerated: true
end

macro setup(step, table_name)
macro setup(step)
{{ step.id }}(
type: {{ @type }},
table_name: {{ table_name.id }},
primary_key_type: {{ PRIMARY_KEY_TYPE }},
primary_key_name: {{ PRIMARY_KEY_NAME }},
columns: {{ COLUMNS }},
Expand All @@ -184,11 +184,6 @@ abstract class Avram::Model
PG::EscapeHelper.escape_literal(id.to_s)
end

macro setup_table_name(table_name, *args, **named_args)
class_getter table_name = {{ table_name.id.symbolize }}
TABLE_NAME = {{ table_name.id.symbolize }}
end

macro setup_initialize(columns, *args, **named_args)
def initialize(
{% for column in columns %}
Expand Down
2 changes: 1 addition & 1 deletion src/avram/save_operation_template.cr
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
class Avram::SaveOperationTemplate
macro setup(type, columns, table_name, primary_key_type, primary_key_name, *args, **named_args)
macro setup(type, columns, primary_key_type, primary_key_name, *args, **named_args)

# This makes it easy for plugins and extensions to use the base SaveOperation
def base_query_class : ::{{ type }}::BaseQuery.class
Expand Down

0 comments on commit c5443e3

Please sign in to comment.