module SimpleAction::DelegatesToParams

Public Instance Methods

method_missing(sym, *args, &block) click to toggle source
Calls superclass method
# File lib/simple_action/concerns/delegates_to_params.rb, line 34
def method_missing(sym, *args, &block)
  if pass_sym_to_params?(sym)
    params.send(sym, *args, &block) 
  else
    super(sym, *args, &block)
  end
end
respond_to?(sym, include_private = false) click to toggle source
Calls superclass method
# File lib/simple_action/concerns/delegates_to_params.rb, line 30
def respond_to?(sym, include_private = false)
  pass_sym_to_params?(sym) || super(sym, include_private)
end

Private Instance Methods

attributes_method?(sym) click to toggle source
# File lib/simple_action/concerns/delegates_to_params.rb, line 62
def attributes_method?(sym)
  sym.to_s.gsub('=', '').end_with?('_attributes')
end
build_method?(sym) click to toggle source
# File lib/simple_action/concerns/delegates_to_params.rb, line 66
def build_method?(sym)
  sym.to_s.gsub('=', '').start_with?('build_')
end
client_side_validation_method?(sym) click to toggle source
# File lib/simple_action/concerns/delegates_to_params.rb, line 74
def client_side_validation_method?(sym)
  sym.to_s.start_with?('client_side_validation')
end
delegatable_params_method?(sym) click to toggle source
# File lib/simple_action/concerns/delegates_to_params.rb, line 49
def delegatable_params_method?(sym)
  params_accessor?(sym) ||
  attributes_method?(sym) ||
  build_method?(sym) ||
  validators_method?(sym) ||
  client_side_validation_method?(sym)
end
params_accessor?(sym) click to toggle source
# File lib/simple_action/concerns/delegates_to_params.rb, line 57
def params_accessor?(sym)
  stripped = sym.to_s.gsub('=', '').to_sym
  params.attributes.include?(stripped)
end
pass_sym_to_params?(sym) click to toggle source
# File lib/simple_action/concerns/delegates_to_params.rb, line 43
def pass_sym_to_params?(sym)
  params.present? &&
  delegatable_params_method?(sym) &&
  params.respond_to?(sym)
end
validators_method?(sym) click to toggle source
# File lib/simple_action/concerns/delegates_to_params.rb, line 70
def validators_method?(sym)
  sym.to_s.sub('?', '').end_with?('_validators')
end