class Dry::RulesFactory

Attributes

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

Public Class Methods

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

Public Instance Methods

between?(right) click to toggle source
# File lib/dry/rules_factory.rb, line 74
def between?(right)
  Dry::Rules::Between.new(value, errors, build_args(right))
end
each(&block) click to toggle source
# File lib/dry/rules_factory.rb, line 89
def each(&block)
  return if value.blank?
  value.inject(nil) do |rule, e|
    _rule = self.class.new(e, errors, args).instance_exec(&block)
    rule = rule ? rule & _rule : _rule
    rule
  end
end
each_value(&block) click to toggle source
# File lib/dry/rules_factory.rb, line 99
def each_value(&block)
  return if value.blank?
  value.inject(nil) do |rule, (k, v)|
    _rule = self.class.new(v, errors, args).instance_exec(&block)
    rule = rule ? rule & _rule : _rule
    rule
  end
end
eq?(right)
Alias for: equal?
equal?(right) click to toggle source
# File lib/dry/rules_factory.rb, line 18
def equal?(right)
  Dry::Rules::Equal.new(value, errors, build_args(right))
end
Also aliased as: eq?
format?(right) click to toggle source
# File lib/dry/rules_factory.rb, line 84
def format?(right)
  Dry::Rules::Format.new(value, errors, build_args(right))
end
greater_than?(right) click to toggle source
# File lib/dry/rules_factory.rb, line 30
def greater_than?(right)
  Dry::Rules::GreaterThan.new(value, errors, build_args(right))
end
Also aliased as: gt?
greater_than_or_equal?(right) click to toggle source
# File lib/dry/rules_factory.rb, line 36
def greater_than_or_equal?(right)
  Dry::Rules::GreaterThanOrEqual.new(value, errors, build_args(right))
end
Also aliased as: gt_eq?
gt?(right)
Alias for: greater_than?
gt_eq?(right)
included?(right) click to toggle source
# File lib/dry/rules_factory.rb, line 54
def included?(right)
  Dry::Rules::Included.new(value, errors, build_args(right))
end
length_between?(right) click to toggle source
# File lib/dry/rules_factory.rb, line 79
def length_between?(right)
  Dry::Rules::LengthBetween.new(value, errors, build_args(right))
end
length_equal?(right) click to toggle source
# File lib/dry/rules_factory.rb, line 59
def length_equal?(right)
  Dry::Rules::LengthEqual.new(value, errors, build_args(right))
end
less_than?(right) click to toggle source
# File lib/dry/rules_factory.rb, line 42
def less_than?(right)
  Dry::Rules::LessThan.new(value, errors, build_args(right))
end
Also aliased as: lt?
less_than_or_equal?(right) click to toggle source
# File lib/dry/rules_factory.rb, line 48
def less_than_or_equal?(right)
  Dry::Rules::LessThanOrEqual.new(value, errors, build_args(right))
end
Also aliased as: lt_eq?
lt?(right)
Alias for: less_than?
lt_eq?(right)
Alias for: less_than_or_equal?
max_length?(right) click to toggle source
# File lib/dry/rules_factory.rb, line 69
def max_length?(right)
  Dry::Rules::MaxLength.new(value, errors, build_args(right))
end
min_length?(right) click to toggle source
# File lib/dry/rules_factory.rb, line 64
def min_length?(right)
  Dry::Rules::MinLength.new(value, errors, build_args(right))
end
not_eq?(right)
Alias for: not_equal?
not_equal?(right) click to toggle source
# File lib/dry/rules_factory.rb, line 24
def not_equal?(right)
  Dry::Rules::NotEqual.new(value, errors, build_args(right))
end
Also aliased as: not_eq?
present?() click to toggle source
# File lib/dry/rules_factory.rb, line 13
def present?
  Dry::Rules::Present.new(value, errors, args)
end

Private Instance Methods

build_args(right) click to toggle source
# File lib/dry/rules_factory.rb, line 112
def build_args(right)
  rt = right.is_a?(self.class) ? right.value : right
  args.merge(right: rt)
end