Class: Terrestrial::Configurations::MappingConfigOptionsProxy

Inherits:
Object
  • Object
show all
Defined in:
lib/terrestrial/configurations/mapping_config_options_proxy.rb

Instance Method Summary collapse

Constructor Details

#initialize(configuration, mapping_name) ⇒ MappingConfigOptionsProxy

Returns a new instance of MappingConfigOptionsProxy.



4
5
6
7
# File 'lib/terrestrial/configurations/mapping_config_options_proxy.rb', line 4

def initialize(configuration, mapping_name)
  @configuration = configuration
  @mapping_name = mapping_name
end

Instance Method Details

#belongs_to(*args) ⇒ Object



29
30
31
# File 'lib/terrestrial/configurations/mapping_config_options_proxy.rb', line 29

def belongs_to(*args)
  add_association(:belongs_to, args)
end

#class(entity_class) ⇒ Object



74
75
76
# File 'lib/terrestrial/configurations/mapping_config_options_proxy.rb', line 74

def class(entity_class)
  add_override('class': entity_class)
end

#class_name(class_name) ⇒ Object



78
79
80
# File 'lib/terrestrial/configurations/mapping_config_options_proxy.rb', line 78

def class_name(class_name)
  add_override(class_name: class_name)
end

#created_at_timestamp(field_name = Default, &block) ⇒ Object



60
61
62
63
# File 'lib/terrestrial/configurations/mapping_config_options_proxy.rb', line 60

def created_at_timestamp(field_name = Default, &block)
  add_override(created_at_field: field_name)
  block && add_override(created_at_setter: block)
end

#database_default_field(field_name, &object_setter) ⇒ Object



53
54
55
56
57
58
# File 'lib/terrestrial/configurations/mapping_config_options_proxy.rb', line 53

def database_default_field(field_name, &object_setter)
  configuration.overrides.fetch(mapping_name)[:database_default_fields_setter_map] ||= {}
  db_default_fields = configuration.overrides.fetch(mapping_name).fetch(:database_default_fields_setter_map)

  db_default_fields.merge!({field_name => object_setter})
end

#database_owned_field(field_name, &object_setter) ⇒ Object



46
47
48
49
50
51
# File 'lib/terrestrial/configurations/mapping_config_options_proxy.rb', line 46

def database_owned_field(field_name, &object_setter)
  configuration.overrides.fetch(mapping_name)[:database_owned_fields_setter_map] ||= {}
  db_owned_fields = configuration.overrides.fetch(mapping_name).fetch(:database_owned_fields_setter_map)

  db_owned_fields.merge!({field_name => object_setter})
end

#factory(callable) ⇒ Object



70
71
72
# File 'lib/terrestrial/configurations/mapping_config_options_proxy.rb', line 70

def factory(callable)
  add_override(factory: callable)
end

#fields(field_names) ⇒ Object



33
34
35
# File 'lib/terrestrial/configurations/mapping_config_options_proxy.rb', line 33

def fields(field_names)
  add_override(fields: field_names)
end

#has_many(*args) ⇒ Object



21
22
23
# File 'lib/terrestrial/configurations/mapping_config_options_proxy.rb', line 21

def has_many(*args)
  add_association(:has_many, args)
end

#has_many_through(*args) ⇒ Object



25
26
27
# File 'lib/terrestrial/configurations/mapping_config_options_proxy.rb', line 25

def has_many_through(*args)
  add_association(:has_many_through, args)
end

#primary_key(field_names) ⇒ Object



37
38
39
# File 'lib/terrestrial/configurations/mapping_config_options_proxy.rb', line 37

def primary_key(field_names)
  add_override(primary_key: field_names)
end

#relation_name(name) ⇒ Object Also known as: table_name



12
13
14
# File 'lib/terrestrial/configurations/mapping_config_options_proxy.rb', line 12

def relation_name(name)
  add_override(relation_name: name)
end

#serializer(serializer_func) ⇒ Object



82
83
84
# File 'lib/terrestrial/configurations/mapping_config_options_proxy.rb', line 82

def serializer(serializer_func)
  add_override(serializer: serializer_func)
end

#subset(subset_name, &block) ⇒ Object



17
18
19
# File 'lib/terrestrial/configurations/mapping_config_options_proxy.rb', line 17

def subset(subset_name, &block)
  configuration.add_subset(mapping_name, subset_name, block)
end

#updated_at_timestamp(field_name = Default, &block) ⇒ Object



65
66
67
68
# File 'lib/terrestrial/configurations/mapping_config_options_proxy.rb', line 65

def updated_at_timestamp(field_name = Default, &block)
  add_override(updated_at_field: field_name)
  block && add_override(updated_at_setter: block)
end

#use_database_id(&block) ⇒ Object



41
42
43
44
# File 'lib/terrestrial/configurations/mapping_config_options_proxy.rb', line 41

def use_database_id(&block)
  add_override(use_database_id: true)
  block && add_override(database_id_setter: block)
end