Class: ActionBlocks::LookupFieldBuilder

Inherits:
FieldBlock show all
Defined in:
lib/action_blocks/builders/model_builder.rb

Instance Attribute Summary collapse

Attributes inherited from FieldBlock

#field_type, #parent_model

Attributes inherited from BaseBuilder

#dsl_delegate, #id

Instance Method Summary collapse

Methods inherited from FieldBlock

#key

Methods inherited from BlockType

#is_block?, #type

Methods inherited from BaseBuilder

#after_load, array_fields, block_type, builds, builds_many, delegate_class, #evaluate, #freeze, includes_scheme_helpers, #initialize, #is_block?, #key, references, sets, sets_many, #ui_reference, #valid?

Constructor Details

This class inherits a constructor from ActionBlocks::BaseBuilder

Instance Attribute Details

#parent_referenceObject

Returns the value of attribute parent_reference.



410
411
412
# File 'lib/action_blocks/builders/model_builder.rb', line 410

def parent_reference
  @parent_reference
end

Instance Method Details

#after_build(parent, *args) ⇒ Object



423
424
425
# File 'lib/action_blocks/builders/model_builder.rb', line 423

def after_build(parent, *args)
  @parent_model.fields.append(self)
end

#before_build(parent, *args) ⇒ Object



413
414
415
416
417
418
419
420
421
# File 'lib/action_blocks/builders/model_builder.rb', line 413

def before_build(parent, *args)
  @field_type = 'lookup'
  @parent_reference = parent
  mk = @parent_reference.model_key.clone
  mk['model-'] = ''
  @target_field_key = "field-#{mk}-#{args[0]}"
  @parent_model = @parent_reference.parent_model
  @id = "#{parent_reference.id}_#{args[0]}"
end

#hashify(user) ⇒ Object



442
443
444
445
446
447
# File 'lib/action_blocks/builders/model_builder.rb', line 442

def hashify(user)
  {
    type: :lookup,
    id: @id
  }
end

#match_requirements(select_as_prefix = nil) ⇒ Object



435
436
437
438
439
440
# File 'lib/action_blocks/builders/model_builder.rb', line 435

def match_requirements(select_as_prefix = nil)
  target_data_reqs = target_field.select_requirements([select_as_prefix, parent_reference.association_name].compact.join('_'))
    {
      path: [select_as_prefix, parent_reference.association_name, target_data_reqs[:path]].compact.flatten,
    }
end

#select_requirements(select_as_prefix = nil) ⇒ Object



427
428
429
430
431
432
433
# File 'lib/action_blocks/builders/model_builder.rb', line 427

def select_requirements(select_as_prefix = nil)
  target_data_reqs = target_field.select_requirements([select_as_prefix, parent_reference.association_name].compact.join('_'))
    {
      field_name: target_data_reqs[:field_name],
      path: [parent_reference.association_name, target_data_reqs[:path]].flatten,
    }
end