class Filterameter::ParametersBase
Parameters¶ ↑
Class Parameters is sub-classed to provide controller-specific validations.
Public Class Methods
add_validation(parameter_name, validations)
click to toggle source
# File lib/filterameter/parameters_base.rb, line 25 def self.add_validation(parameter_name, validations) attr_accessor parameter_name default_options = { allow_nil: true } validations.each do |validation| validates parameter_name, default_options.merge(validation) end end
build_sub_class(declarations)
click to toggle source
# File lib/filterameter/parameters_base.rb, line 13 def self.build_sub_class(declarations) Class.new(self).tap do |sub_class| declarations.select(&:validations?).each do |declaration| sub_class.add_validation(declaration.parameter_name, declaration.validations) end end end
name()
click to toggle source
# File lib/filterameter/parameters_base.rb, line 21 def self.name 'ControllerParameters' end
new(attributes)
click to toggle source
# File lib/filterameter/parameters_base.rb, line 34 def initialize(attributes) attributes.each { |k, v| assign_attribute(k, v) } end
Private Instance Methods
assign_attribute(key, value)
click to toggle source
# File lib/filterameter/parameters_base.rb, line 40 def assign_attribute(key, value) setter = :"#{key}=" public_send(setter, value) if respond_to?(setter) end