Class: Sumaki::Model::Associations::Association::Singular

Inherits:
Object
  • Object
show all
Defined in:
lib/sumaki/model/associations/association.rb

Overview

:nodoc:

Instance Method Summary collapse

Constructor Details

#initialize(owner, reflection) ⇒ Singular

Returns a new instance of Singular.



8
9
10
11
# File 'lib/sumaki/model/associations/association.rb', line 8

def initialize(owner, reflection)
  @owner = owner
  @reflection = reflection
end

Instance Method Details

#build_model(attrs = {}) ⇒ Object



20
21
22
23
24
25
26
27
# File 'lib/sumaki/model/associations/association.rb', line 20

def build_model(attrs = {})
  assoc = @owner.object_accessor.build_singular(@reflection.name)

  model = @reflection.model_class.new(assoc, parent: @owner)
  model.assign(attrs)

  @model = model
end

#modelObject



13
14
15
16
17
18
# File 'lib/sumaki/model/associations/association.rb', line 13

def model
  @model ||= begin
    object = @owner.get(@reflection.name)
    object.nil? ? nil : @reflection.model_class.new(object, parent: @owner)
  end
end