class ActionBlocks::ModelBuilder

Public Instance Methods

active_model_is_an_active_record_class() click to toggle source
# File lib/action_blocks/builders/model_builder.rb, line 21
def active_model_is_an_active_record_class
  if @active_model.class != Class
    errors.add(:active_model, "Must be an ActiveRecord Class")
  else
    if !@active_model.ancestors.include? ActiveRecord::Base
      errors.add(:active_model, "Must be an ActiveRecord Class")
    end
  end
end
after_build(parent, *args) click to toggle source
# File lib/action_blocks/builders/model_builder.rb, line 31
def after_build(parent, *args)
  # Every model has an identity field
  if !@fields.map(&:id).include?(:id)
    @dsl_delegate.identity
  end
end
filter_reqs(record_id:, user:) click to toggle source
# File lib/action_blocks/builders/model_builder.rb, line 62
def filter_reqs(record_id:, user:)
  [:eq, :id, record_id]
end
hashify(user) click to toggle source
# File lib/action_blocks/builders/model_builder.rb, line 66
def hashify(user)
  {
    key: key,
    type: type,
    name_field: name_field.try(:id),
    singular_name: singular_name,
    plural_name: plural_name
  }
end
name_to_json(record_id:, user:) click to toggle source
# File lib/action_blocks/builders/model_builder.rb, line 45
def name_to_json(record_id:, user:)
  select_reqs = [name_field.select_requirements]
  filter_reqs = [:eq, :id, record_id]
  engine = DataEngine.new(active_model, select_reqs: select_reqs, filter_reqs: filter_reqs)
  engine.first_to_json
end
select_requirements(fields = nil) click to toggle source
# File lib/action_blocks/builders/model_builder.rb, line 38
def select_requirements(fields = nil)
  sel_reqs = @fields.map(&:select_requirements)
  sel_reqs = sel_reqs.select { |r| fields.include? r[:field_name] } unless fields.nil?

  return sel_reqs
end
selection_filter_reqs(record_id:, user:) click to toggle source
# File lib/action_blocks/builders/model_builder.rb, line 52
def selection_filter_reqs(record_id:, user:)
  [
      {
        base_path: [active_model, :id],
        predicate: :eq,
        related_path: [record_id]
      }
  ]
end