module Rails::Surrender::Render::Configuration::InclusionMapperLogic

Public Instance Methods

expanding_elements() click to toggle source
# File lib/rails/surrender/render/configuration/inclusion_mapper_logic.rb, line 9
def expanding_elements
  list = resource_class_surrender_attributes_that_expand +
         resource_class_surrender_expands +
         resource_class_subclass_surrender_attributes_that_expand +
         resource_class_subclass_surrender_expands +
         user_included_joins_required +
         ctrl_included_joins_required
         .flatten.uniq
  list
    .map { |e| element_from(e) }
    .reject do |element|
    element.klass.in?(history) ||
      element.name.in?(local_user_excludes) ||
      (element.name.in?(local_ctrl_excludes) && !element.name.in?(local_user_includes))
  end
end

Private Instance Methods

ctrl_included_joins_required() click to toggle source
# File lib/rails/surrender/render/configuration/inclusion_mapper_logic.rb, line 56
def ctrl_included_joins_required
  top_level_keys_from(ctrl_include).select { |include| attribute_type(include).in? %i[expand associate] }
end
element_from(item) click to toggle source
# File lib/rails/surrender/render/configuration/inclusion_mapper_logic.rb, line 60
def element_from(item)
  item_name = resource_class.reflections.key?(item.to_s) ? item.to_s : item.to_s.sub('_ids', '').pluralize
  item_klass = resource_class.reflections[item_name].klass
  Element.new name: item_name, klass: item_klass, continue: (item.to_s == item_name)
end
resource_class_subclass_surrender_attributes_that_expand() click to toggle source
# File lib/rails/surrender/render/configuration/inclusion_mapper_logic.rb, line 39
def resource_class_subclass_surrender_attributes_that_expand
  resource_class.subclasses.map do |subclass|
    subclass.surrender_attributes
            .select { |attr| attr.match /_ids$/ }
            .map { |attr| attr.to_s.sub('_ids', '').pluralize }
            .select { |include| attribute_type(include, resource_class: sc).in? %i[expand associate] }
  end
end
resource_class_subclass_surrender_expands() click to toggle source
# File lib/rails/surrender/render/configuration/inclusion_mapper_logic.rb, line 48
def resource_class_subclass_surrender_expands
  resource_class.subclasses.map(&:surrender_expands)
end
resource_class_surrender_attributes_that_expand() click to toggle source
# File lib/rails/surrender/render/configuration/inclusion_mapper_logic.rb, line 28
def resource_class_surrender_attributes_that_expand
  resource_class.surrender_attributes
                .select { |attr| attr.match /_ids$/ }
                .map { |attr| attr.to_s.sub('_ids', '').pluralize }
                .select { |include| attribute_type(include).in? %i[expand associate] }
end
resource_class_surrender_expands() click to toggle source
# File lib/rails/surrender/render/configuration/inclusion_mapper_logic.rb, line 35
def resource_class_surrender_expands
  resource_class.surrender_expands
end
user_included_joins_required() click to toggle source
# File lib/rails/surrender/render/configuration/inclusion_mapper_logic.rb, line 52
def user_included_joins_required
  top_level_keys_from(user_include).select { |include| attribute_type(include).in? %i[expand associate] }
end