Sha256: af61169276060ed6fb0d160b5e3d279187928d1b644279eb790f0b2c0caaa5bf
Contents?: true
Size: 987 Bytes
Versions: 4
Compression:
Stored size: 987 Bytes
Contents
module Rosebud class ParamsScope def initialize(controller, params, &block) @controller = controller @params = params @declared_params = [] instance_eval(&block) end def requires(name, validations = {}) name = name.to_sym validations.merge!({ presence: true }) validate(name, @params[name], validations) end 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 private 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 end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
rosebud-0.2.0 | lib/rosebud/params_scope.rb |
rosebud-0.1.2 | lib/rosebud/params_scope.rb |
rosebud-0.1.1 | lib/rosebud/params_scope.rb |
rosebud-0.1.0 | lib/rosebud/params_scope.rb |