Class: ActiveRecord::Bixformer::AssignableAttributesNormalizer

Inherits:
Object
  • Object
show all
Includes:
ImportValueValidatable
Defined in:
lib/activerecord-bixformer/assignable_attributes_normalizer.rb

Instance Method Summary collapse

Methods included from ImportValueValidatable

#presence_value?

Constructor Details

#initialize(plan, model, parent_record_id) ⇒ AssignableAttributesNormalizer

Returns a new instance of AssignableAttributesNormalizer.



6
7
8
9
10
11
# File 'lib/activerecord-bixformer/assignable_attributes_normalizer.rb', line 6

def initialize(plan, model, parent_record_id)
  @plan                   = ActiveRecord::Bixformer::PlanAccessor.new(plan)
  @model                  = model
  @parent_record_id = parent_record_id
  @identified_column_name = @model.activerecord_constant.primary_key
end

Instance Method Details

#normalize(model_attributes) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/activerecord-bixformer/assignable_attributes_normalizer.rb', line 13

def normalize(model_attributes)
  @model_attributes = model_attributes

  return {} unless @model_attributes

  # 必須な属性が渡されていない場合には、取り込みしない
  return {} unless validate_required_attributes

  set_required_condition   if presence_value?(@model_attributes)
  set_parent_foreign_key   if presence_value?(@model_attributes)
  set_identified_attribute if presence_value?(@model_attributes)

  # 空でない要素が無いなら、空ハッシュで返す
  return {} unless presence_value?(@model_attributes)

  @model_attributes
end