class Dryv::Rule

Attributes

args[R]
errors[R]
value[R]

Public Class Methods

new(value, errors = Dryv::Errors.new, **args) click to toggle source
# File lib/dryv/rule.rb, line 6
def initialize(value, errors = Dryv::Errors.new, **args)
  @value  = value
  @errors = errors
  @args   = args.symbolize_keys
end

Public Instance Methods

&(right)
Alias for: and
+(right) click to toggle source
# File lib/dryv/rule.rb, line 46
def +(right)
  Dryv::Rules::Collection.new(self, errors, args.merge(right: right))
end
>(right)
Alias for: then
add_error() click to toggle source
# File lib/dryv/rule.rb, line 18
def add_error
  errors.add(key, messages[name.to_s] || 'invalid')
end
and(right) click to toggle source
# File lib/dryv/rule.rb, line 28
def and(right)
  Dryv::Rules::And.new(self, errors, args.merge(right: right))
end
Also aliased as: &
clone() click to toggle source
# File lib/dryv/rule.rb, line 23
def clone
  self.class.new(value, errors.clone, args)
end
name() click to toggle source
# File lib/dryv/rule.rb, line 13
def name
  args[:name]
end
or(right) click to toggle source
# File lib/dryv/rule.rb, line 40
def or(right)
  Dryv::Rules::Or.new(self, errors, args.merge(right: right))
end
Also aliased as: |
then(right) click to toggle source
# File lib/dryv/rule.rb, line 34
def then(right)
  Dryv::Rules::Then.new(self, errors, args.merge(right: right))
end
Also aliased as: >
valid?() click to toggle source
# File lib/dryv/rule.rb, line 51
def valid?
  raise NotImplementedError
end
|(right)
Alias for: or

Private Instance Methods

key() click to toggle source
# File lib/dryv/rule.rb, line 64
def key
  @key ||= args[:key] || (raise 'Missing required param "key"')
end
messages() click to toggle source
# File lib/dryv/rule.rb, line 59
def messages
  @messages ||= (args[:messages] || {}).deep_stringify_keys
end