class Rosebud::ParamsScope
Public Class Methods
new(controller, params, &block)
click to toggle source
# File lib/rosebud/params_scope.rb, line 3 def initialize(controller, params, &block) @controller = controller @params = params @declared_params = [] instance_eval(&block) end
Public Instance Methods
optional(name, options = {})
click to toggle source
# File lib/rosebud/params_scope.rb, line 18 def optional(name, options = {}) name = name.to_sym if (@params[name].nil? || @params[name] == '') && options.has_key?(:default) @params[name] = options.delete(:default) end validate(name, @params[name], options) end
requires(name, validations = {})
click to toggle source
# File lib/rosebud/params_scope.rb, line 11 def requires(name, validations = {}) name = name.to_sym validations.merge!({ presence: true }) validate(name, @params[name], validations) end
Private Instance Methods
validate(attribute, value, validations)
click to toggle source
# File lib/rosebud/params_scope.rb, line 27 def validate(attribute, value, validations) validations.each do |type, options| validator_class = Validations.validators[type] raise("Validator #{type} is not registered...") unless validator_class validator_class.new.validate_param(attribute, value, options) end end