Module: ActionFigure::Core::CrossParamRuleHelpers
- Defined in:
- lib/action_figure/core.rb,
sig/action_figure.rbs
Overview
Cross-parameter rule helpers for dry-validation contracts
Instance Method Summary collapse
- #all_rule(*fields, message) ⇒ void
- #any_rule(*fields, message) ⇒ void
- #exclusive_rule(*fields, message) ⇒ void
- #one_rule(*fields, message) ⇒ void
Instance Method Details
#all_rule(*fields, message) ⇒ void
This method returns an undefined value.
31 32 33 34 35 36 |
# File 'lib/action_figure/core.rb', line 31 def all_rule(*fields, ) rule(*fields) do present = fields.select { |f| values.key?(f) && !values[f].nil? } fields.each { |f| key(f).failure() } unless present.empty? || present.size == fields.size end end |
#any_rule(*fields, message) ⇒ void
This method returns an undefined value.
17 18 19 20 21 22 |
# File 'lib/action_figure/core.rb', line 17 def any_rule(*fields, ) rule(*fields) do present = fields.select { |f| values.key?(f) && !values[f].nil? } fields.each { |f| key(f).failure() } if present.empty? end end |
#exclusive_rule(*fields, message) ⇒ void
This method returns an undefined value.
10 11 12 13 14 15 |
# File 'lib/action_figure/core.rb', line 10 def exclusive_rule(*fields, ) rule(*fields) do present = fields.select { |f| values.key?(f) && !values[f].nil? } present.each { |f| key(f).failure() } if present.size > 1 end end |
#one_rule(*fields, message) ⇒ void
This method returns an undefined value.
24 25 26 27 28 29 |
# File 'lib/action_figure/core.rb', line 24 def one_rule(*fields, ) rule(*fields) do present = fields.select { |f| values.key?(f) && !values[f].nil? } fields.each { |f| key(f).failure() } unless present.size == 1 end end |