Class: Amoeba::Macros::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/amoeba/macros/base.rb

Direct Known Subclasses

HasAndBelongsToMany, HasMany, HasOne

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(cloner) ⇒ Base

Returns a new instance of Base.



6
7
8
9
10
# File 'lib/amoeba/macros/base.rb', line 6

def initialize(cloner)
  @cloner     = cloner
  @old_object = cloner.old_object
  @new_object = cloner.new_object
end

Class Method Details

.inherited(klass) ⇒ Object



17
18
19
# File 'lib/amoeba/macros/base.rb', line 17

def inherited(klass)
  ::Amoeba::Macros.add(klass)
end

Instance Method Details

#follow(_relation_name, _association) ⇒ Object



12
13
14
# File 'lib/amoeba/macros/base.rb', line 12

def follow(_relation_name, _association)
  raise "#{self.class.name} doesn't implement `follow`!"
end

#remapped_relation_name(name) ⇒ Object



22
23
24
25
26
# File 'lib/amoeba/macros/base.rb', line 22

def remapped_relation_name(name)
  return name unless @cloner.amoeba.remap_method

  @old_object.__send__(@cloner.amoeba.remap_method, name.to_sym) || name
end