module Utilities

Public Instance Methods

build_handler(name, options, type:) click to toggle source
# File lib/strong_arms/utilities.rb, line 2
def build_handler(name, options, type:)
  {
    name: name,
    options: options,
    type: type,
  }
end
expose_data_key_if_present(args) click to toggle source
# File lib/strong_arms/utilities.rb, line 10
def expose_data_key_if_present(args)
  if args[:data].present?
    args[:data]
  else
    args
  end
end
find_strong_arm(attributes_key, options) click to toggle source
# File lib/strong_arms/utilities.rb, line 29
def find_strong_arm(attributes_key, options)
  model_alias = options[:model]
  model_name =
    model_name_from_attributes_key(attributes_key, model_alias: model_alias)
  strong_arm = "#{model_name}StrongArm"
  strong_arm.constantize
end
handlers_values() click to toggle source
# File lib/strong_arms/utilities.rb, line 37
def handlers_values
  handlers.values
end
value_is_absent?(value, allow_nil: false) click to toggle source
# File lib/strong_arms/utilities.rb, line 18
def value_is_absent?(value, allow_nil: false)
  return false if allow_nil
  return true if value.nil?

  if value.is_a? Hash
    value.blank?
  else
    [value].flatten.blank?
  end
end

Private Instance Methods

accessible_hash(args) click to toggle source
# File lib/strong_arms/utilities.rb, line 68
def accessible_hash(args)
  args.to_unsafe_h.with_indifferent_access
end
action_controller_args?(args) click to toggle source
# File lib/strong_arms/utilities.rb, line 72
def action_controller_args?(args)
  args.class.name == 'ActionController::Parameters'
end
handlers_keys() click to toggle source
# File lib/strong_arms/utilities.rb, line 59
def handlers_keys
  handlers.keys.flatten.uniq
end
length_is_equal_to?(array, value) click to toggle source
# File lib/strong_arms/utilities.rb, line 80
def length_is_equal_to?(array, value)
  array.length == value
end
length_is_greater_than?(array, value) click to toggle source
# File lib/strong_arms/utilities.rb, line 76
def length_is_greater_than?(array, value)
  array.length > value
end
model_name_from_attributes_key(name, model_alias: nil) click to toggle source
# File lib/strong_arms/utilities.rb, line 43
def model_name_from_attributes_key(name, model_alias: nil)
  if model_alias
    model_alias.to_s.camelize
  else
    name.to_s.
      gsub('s_attributes', '').
      gsub('_attributes', '').
      camelize
  end
end
symbolized_keys_array(args) click to toggle source
# File lib/strong_arms/utilities.rb, line 64
def symbolized_keys_array(args)
  args.keys.map(&:to_sym)
end
to_class_name(object) click to toggle source
# File lib/strong_arms/utilities.rb, line 84
def to_class_name(object)
  to_name(object.class)
end
to_name(klass) click to toggle source
# File lib/strong_arms/utilities.rb, line 88
def to_name(klass)
  klass.name
end
unhandled_keys(args) click to toggle source
# File lib/strong_arms/utilities.rb, line 54
def unhandled_keys(args)
  keys = symbolized_keys_array(args)
  keys - handlers_keys - keys_to_ignore
end