class WeakParameters::Validator

Attributes

block[R]
controller[R]

Public Class Methods

new(controller, &block) click to toggle source
# File lib/weak_parameters/validator.rb, line 5
def initialize(controller, &block)
  @controller = controller
  instance_eval(&block)
end

Public Instance Methods

strong_params() click to toggle source
# File lib/weak_parameters/validator.rb, line 18
def strong_params
  validators.map(&:strong_params).inject(ActionController::Parameters.new, &:merge)
end
validate() click to toggle source
# File lib/weak_parameters/validator.rb, line 10
def validate
  validators.each(&:validate)
end
validators() click to toggle source
# File lib/weak_parameters/validator.rb, line 14
def validators
  @validators ||= []
end

Private Instance Methods

any(key, options = {}, &block) click to toggle source
# File lib/weak_parameters/validator.rb, line 40
def any(key, options = {}, &block)
  validators << WeakParameters::AnyValidator.new(controller, key, options, &block)
end
array(key, options = {}, &block) click to toggle source
# File lib/weak_parameters/validator.rb, line 60
def array(key, options = {}, &block)
  validators << WeakParameters::ArrayValidator.new(controller, key, options, &block)
end
boolean(key, options = {}, &block) click to toggle source
# File lib/weak_parameters/validator.rb, line 52
def boolean(key, options = {}, &block)
  validators << WeakParameters::BooleanValidator.new(controller, key, options, &block)
end
date(key, options = {}, &block) click to toggle source
# File lib/weak_parameters/validator.rb, line 68
def date(key, options = {}, &block)
  validators << WeakParameters::DateValidator.new(controller, key, options, &block)
end
file(key, options = {}, &block) click to toggle source
# File lib/weak_parameters/validator.rb, line 76
def file(key, options = {}, &block)
  validators << WeakParameters::FileValidator.new(controller, key, options, &block)
end
float(key, options = {}, &block) click to toggle source
# File lib/weak_parameters/validator.rb, line 64
def float(key, options = {}, &block)
  validators << WeakParameters::FloatValidator.new(controller, key, options, &block)
end
hash(key, options = {}, &block) click to toggle source
# File lib/weak_parameters/validator.rb, line 56
def hash(key, options = {}, &block)
  validators << WeakParameters::HashValidator.new(controller, key, options, &block)
end
integer(key, options = {}, &block) click to toggle source
# File lib/weak_parameters/validator.rb, line 48
def integer(key, options = {}, &block)
  validators << WeakParameters::IntegerValidator.new(controller, key, options, &block)
end
list(key, type, options = {}, &block) click to toggle source
# File lib/weak_parameters/validator.rb, line 85
def list(key, type, options = {}, &block)
  children = with_validators { send type, nil, options, &block }
  validators << WeakParameters::ListValidator.new(controller, key, children.first, options)
end
object(key, options = {}, &block) click to toggle source
# File lib/weak_parameters/validator.rb, line 80
def object(key, options = {}, &block)
  children = with_validators { instance_eval(&block) }
  validators << WeakParameters::ObjectValidator.new(controller, key, children, options)
end
params() click to toggle source
# File lib/weak_parameters/validator.rb, line 36
def params
  controller.params
end
string(key, options = {}, &block) click to toggle source
# File lib/weak_parameters/validator.rb, line 44
def string(key, options = {}, &block)
  validators << WeakParameters::StringValidator.new(controller, key, options, &block)
end
time(key, options = {}, &block) click to toggle source
# File lib/weak_parameters/validator.rb, line 72
def time(key, options = {}, &block)
  validators << WeakParameters::TimeValidator.new(controller, key, options, &block)
end
with_validators(&block) click to toggle source
# File lib/weak_parameters/validator.rb, line 24
def with_validators(&block)
  old_validators = @validators

  begin
    @validators = []
    block.call
    @validators
  ensure
    @validators = old_validators
  end
end