Class: DynamicActiveModel::ForeignKey

Inherits:
Object
  • Object
show all
Defined in:
lib/dynamic-active-model/foreign_key.rb

Overview

DynamicActiveModel::ForeignKey tracks foreign keys related to the model

Constant Summary collapse

DEFAULT_ID_SUFFIX =
'_id'

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(model) ⇒ ForeignKey

rubocop:enable Style/TrivialAccessors



21
22
23
24
25
# File 'lib/dynamic-active-model/foreign_key.rb', line 21

def initialize(model)
  @model = model
  @keys = {}
  add(generate_foreign_key(model.table_name))
end

Instance Attribute Details

#keysObject (readonly)

Returns the value of attribute keys.



6
7
8
# File 'lib/dynamic-active-model/foreign_key.rb', line 6

def keys
  @keys
end

#modelObject (readonly)

Returns the value of attribute model.



6
7
8
# File 'lib/dynamic-active-model/foreign_key.rb', line 6

def model
  @model
end

Class Method Details

.id_suffixObject



11
12
13
# File 'lib/dynamic-active-model/foreign_key.rb', line 11

def self.id_suffix
  @id_suffix || DEFAULT_ID_SUFFIX
end

.id_suffix=(val) ⇒ Object

rubocop:disable Style/TrivialAccessors



16
17
18
# File 'lib/dynamic-active-model/foreign_key.rb', line 16

def self.id_suffix=(val)
  @id_suffix = val
end

Instance Method Details

#add(key, relationship_name = nil) ⇒ Object



27
28
29
# File 'lib/dynamic-active-model/foreign_key.rb', line 27

def add(key, relationship_name = nil)
  @keys[key] = relationship_name || model.table_name.underscore
end

#generate_foreign_key(table_name) ⇒ Object



31
32
33
# File 'lib/dynamic-active-model/foreign_key.rb', line 31

def generate_foreign_key(table_name)
  table_name.underscore.singularize + self.class.id_suffix
end