module Rails::Surrender::Render::Configuration::InstanceLogic

Public Instance Methods

exclude_locally?(key) click to toggle source
# File lib/rails/surrender/render/configuration/instance_logic.rb, line 43
def exclude_locally?(key)
  local_excludes.include?(key) && !local_user_includes.include?(key)
end
locally_included_attributes() click to toggle source
# File lib/rails/surrender/render/configuration/instance_logic.rb, line 25
def locally_included_attributes
  [].push(resource_class.surrender_attributes)
    .push(ctrl_included_attributes)
    .push(user_included_attributes_to_render)
    .flatten.uniq
    .reject { |attr| exclude_locally?(attr) }
end
locally_included_expands() click to toggle source
# File lib/rails/surrender/render/configuration/instance_logic.rb, line 33
def locally_included_expands
  [].push(user_included_local_expansions_to_render)
    .push(ctrl_included_expansions)
    .push(resource_class.surrender_expands)
    .flatten.uniq
    .each_with_object({}) { |key, result| result[key.to_sym] = [] }
    .deep_merge(nested_user_includes)
    .deep_merge(nested_ctrl_includes)
end
nested_ctrl_excludes() click to toggle source
# File lib/rails/surrender/render/configuration/instance_logic.rb, line 21
def nested_ctrl_excludes
  next_level_asks_from(ctrl_exclude)
end
nested_ctrl_includes() click to toggle source
# File lib/rails/surrender/render/configuration/instance_logic.rb, line 13
def nested_ctrl_includes
  next_level_asks_from(ctrl_include)
end
nested_user_excludes() click to toggle source
# File lib/rails/surrender/render/configuration/instance_logic.rb, line 17
def nested_user_excludes
  next_level_asks_from(user_exclude)
end
nested_user_includes() click to toggle source
# File lib/rails/surrender/render/configuration/instance_logic.rb, line 9
def nested_user_includes
  next_level_asks_from(user_include)
end

Private Instance Methods

ctrl_included_attributes() click to toggle source
# File lib/rails/surrender/render/configuration/instance_logic.rb, line 77
def ctrl_included_attributes
  top_level_keys_from(ctrl_include).select { |include| attribute_type(include).in? %i[include associate] }
end
ctrl_included_expansions() click to toggle source
# File lib/rails/surrender/render/configuration/instance_logic.rb, line 81
def ctrl_included_expansions
  local_ctrl_includes.select { |i| attribute_type(i) == :expand }
end
local_excludes() click to toggle source
# File lib/rails/surrender/render/configuration/instance_logic.rb, line 49
def local_excludes
  local_ctrl_excludes.dup.push(local_user_excludes).flatten.uniq
end
user_included_attributes() click to toggle source
# File lib/rails/surrender/render/configuration/instance_logic.rb, line 53
def user_included_attributes
  top_level_keys_from(user_include).select { |include| attribute_type(include).in? %i[include associate] }
end
user_included_attributes_to_render() click to toggle source
# File lib/rails/surrender/render/configuration/instance_logic.rb, line 57
def user_included_attributes_to_render
  attrs = user_included_attributes
  unavailable_attrs = (attrs - resource_class.surrender_callable_attributes)
  return attrs if unavailable_attrs.empty?

  raise Error, I18n.t('surrender.error.query_string.include.not_available', param: unavailable_attrs)
end
user_included_expansions() click to toggle source
# File lib/rails/surrender/render/configuration/instance_logic.rb, line 65
def user_included_expansions
  local_user_includes.select { |i| attribute_type(i) == :expand }
end
user_included_local_expansions_to_render() click to toggle source
# File lib/rails/surrender/render/configuration/instance_logic.rb, line 69
def user_included_local_expansions_to_render
  expansions = user_included_expansions
  unavailable_expansions = (expansions - resource_class.surrender_callable_expands)
  return expansions if unavailable_expansions.empty?

  raise Error, I18n.t('surrender.error.query_string.include.not_available', param: unavailable_expansions)
end