Class: Dry::RulesFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/dry/rules_factory.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(value, errors = Dry::Errors.new, **args) ⇒ RulesFactory

Returns a new instance of RulesFactory.



22
23
24
25
26
# File 'lib/dry/rules_factory.rb', line 22

def initialize(value, errors = Dry::Errors.new, **args)
  @value  = value
  @errors = errors
  @args   = args.symbolize_keys
end

Instance Attribute Details

#argsObject (readonly)

Returns the value of attribute args.



20
21
22
# File 'lib/dry/rules_factory.rb', line 20

def args
  @args
end

#errorsObject (readonly)

Returns the value of attribute errors.



20
21
22
# File 'lib/dry/rules_factory.rb', line 20

def errors
  @errors
end

#valueObject (readonly)

Returns the value of attribute value.



20
21
22
# File 'lib/dry/rules_factory.rb', line 20

def value
  @value
end

Instance Method Details

#between?(right) ⇒ Boolean

Returns:

  • (Boolean)


90
91
92
# File 'lib/dry/rules_factory.rb', line 90

def between?(right)
  Dry::Rules::Between.new(value, errors, build_args(right))
end

#each(&block) ⇒ Object



105
106
107
108
109
110
111
112
# File 'lib/dry/rules_factory.rb', line 105

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) ⇒ Object



115
116
117
118
119
120
121
122
# File 'lib/dry/rules_factory.rb', line 115

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

#equal?(right) ⇒ Boolean Also known as: eq?

Returns:

  • (Boolean)


34
35
36
# File 'lib/dry/rules_factory.rb', line 34

def equal?(right)
  Dry::Rules::Equal.new(value, errors, build_args(right))
end

#format?(right) ⇒ Boolean

Returns:

  • (Boolean)


100
101
102
# File 'lib/dry/rules_factory.rb', line 100

def format?(right)
  Dry::Rules::Format.new(value, errors, build_args(right))
end

#greater_than?(right) ⇒ Boolean Also known as: gt?

Returns:

  • (Boolean)


46
47
48
# File 'lib/dry/rules_factory.rb', line 46

def greater_than?(right)
  Dry::Rules::GreaterThan.new(value, errors, build_args(right))
end

#greater_than_or_equal?(right) ⇒ Boolean Also known as: gt_eq?

Returns:

  • (Boolean)


52
53
54
# File 'lib/dry/rules_factory.rb', line 52

def greater_than_or_equal?(right)
  Dry::Rules::GreaterThanOrEqual.new(value, errors, build_args(right))
end

#included?(right) ⇒ Boolean

Returns:

  • (Boolean)


70
71
72
# File 'lib/dry/rules_factory.rb', line 70

def included?(right)
  Dry::Rules::Included.new(value, errors, build_args(right))
end

#length_between?(right) ⇒ Boolean

Returns:

  • (Boolean)


95
96
97
# File 'lib/dry/rules_factory.rb', line 95

def length_between?(right)
  Dry::Rules::LengthBetween.new(value, errors, build_args(right))
end

#length_equal?(right) ⇒ Boolean

Returns:

  • (Boolean)


75
76
77
# File 'lib/dry/rules_factory.rb', line 75

def length_equal?(right)
  Dry::Rules::LengthEqual.new(value, errors, build_args(right))
end

#less_than?(right) ⇒ Boolean Also known as: lt?

Returns:

  • (Boolean)


58
59
60
# File 'lib/dry/rules_factory.rb', line 58

def less_than?(right)
  Dry::Rules::LessThan.new(value, errors, build_args(right))
end

#less_than_or_equal?(right) ⇒ Boolean Also known as: lt_eq?

Returns:

  • (Boolean)


64
65
66
# File 'lib/dry/rules_factory.rb', line 64

def less_than_or_equal?(right)
  Dry::Rules::LessThanOrEqual.new(value, errors, build_args(right))
end

#max_length?(right) ⇒ Boolean

Returns:

  • (Boolean)


85
86
87
# File 'lib/dry/rules_factory.rb', line 85

def max_length?(right)
  Dry::Rules::MaxLength.new(value, errors, build_args(right))
end

#min_length?(right) ⇒ Boolean

Returns:

  • (Boolean)


80
81
82
# File 'lib/dry/rules_factory.rb', line 80

def min_length?(right)
  Dry::Rules::MinLength.new(value, errors, build_args(right))
end

#not_equal?(right) ⇒ Boolean Also known as: not_eq?

Returns:

  • (Boolean)


40
41
42
# File 'lib/dry/rules_factory.rb', line 40

def not_equal?(right)
  Dry::Rules::NotEqual.new(value, errors, build_args(right))
end

#present?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/dry/rules_factory.rb', line 29

def present?
  Dry::Rules::Present.new(value, errors, args)
end