Method: Eye::Dsl::Validation::ClassMethods#param

Defined in:
lib/eye/dsl/validation.rb

#param(param, types = [], should_be = false, default = nil, variants = nil) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/eye/dsl/validation.rb', line 36

def param(param, types = [], should_be = false, default = nil, variants = nil)
  param = param.to_sym

  validates[param] = types
  should_bes << param if should_be
  param_default(param, default)
  self.variants[param] = variants

  return if param == :do

  define_method param do
    value = @options[param]
    value.nil? ? self.class.defaults[param] : value
  end

  define_method "#{param}=" do |value|
    @options[param] = value
  end
end