Class: ActionLogic::ActionValidation::PresenceValidation
- Inherits:
-
BaseValidation
- Object
- BaseValidation
- ActionLogic::ActionValidation::PresenceValidation
- Defined in:
- lib/action_logic/action_validation/presence_validation.rb
Class Method Summary collapse
- .error_message(expected_attribute, expected_validation, context) ⇒ Object
- .presence_errors(validation_rules, context) ⇒ Object
- .validate!(validation_rules, context) ⇒ Object
Methods inherited from BaseValidation
Class Method Details
.error_message(expected_attribute, expected_validation, context) ⇒ Object
22 23 24 25 26 27 28 29 |
# File 'lib/action_logic/action_validation/presence_validation.rb', line 22 def self.(expected_attribute, expected_validation, context) case expected_validation[:presence] when TrueClass then "Attribute: #{expected_attribute} is missing value in context but presence validation was specified" unless context[expected_attribute] when Proc then "Attribute: #{expected_attribute} is missing value in context but custom presence validation was specified" unless expected_validation[:presence].call(context[expected_attribute]) else raise ActionLogic::UnrecognizablePresenceValidatorError.new(("Presence validator: #{expected_validation[:presence]} is not a supported format")) end end |
.presence_errors(validation_rules, context) ⇒ Object
14 15 16 17 18 19 20 |
# File 'lib/action_logic/action_validation/presence_validation.rb', line 14 def self.presence_errors(validation_rules, context) validation_rules.reduce([]) do |error_collection, (expected_attribute, expected_validation)| next error_collection unless expected_validation[:presence] error_collection << (expected_attribute, expected_validation, context) error_collection end || [] end |
.validate!(validation_rules, context) ⇒ Object
8 9 10 11 12 |
# File 'lib/action_logic/action_validation/presence_validation.rb', line 8 def self.validate!(validation_rules, context) return unless validation_rules.values.find { |expected_validation| expected_validation[:presence] } errors = presence_errors(validation_rules, context) raise ActionLogic::PresenceError.new(errors) if errors.any? end |