Module: Granite::Action::Preconditions
- Extended by:
- ActiveSupport::Concern
- Included in:
- Granite::Action
- Defined in:
- lib/granite/action/preconditions.rb,
lib/granite/action/preconditions/base_precondition.rb,
lib/granite/action/preconditions/embedded_precondition.rb
Overview
Conditions module is used to define preconditions for actions. Each precondition is also defined as validation, so it always run before action execution. Precondition name is by default I18n key for :base
error, if precondition fails. Along with preconditions question methods with the same names are created.
Defined Under Namespace
Modules: ClassMethods Classes: BasePrecondition, EmbeddedPrecondition, PreconditionsCollection
Instance Attribute Summary collapse
-
#failed_preconditions ⇒ Object
readonly
Returns the value of attribute failed_preconditions.
Instance Method Summary collapse
-
#decline_with(*args) ⇒ Object
Adds passed error message and options to ‘errors` object.
- #initialize ⇒ Object
-
#satisfy_preconditions? ⇒ Boolean
Check if all preconditions are satisfied.
Instance Attribute Details
#failed_preconditions ⇒ Object (readonly)
Returns the value of attribute failed_preconditions.
73 74 75 |
# File 'lib/granite/action/preconditions.rb', line 73 def failed_preconditions @failed_preconditions end |
Instance Method Details
#decline_with(*args) ⇒ Object
Adds passed error message and options to ‘errors` object
90 91 92 93 |
# File 'lib/granite/action/preconditions.rb', line 90 def decline_with(*args) errors.add(:base, *args) failed_preconditions << args.first end |
#initialize ⇒ Object
75 76 77 78 |
# File 'lib/granite/action/preconditions.rb', line 75 def initialize(*) @failed_preconditions = [] super end |
#satisfy_preconditions? ⇒ Boolean
Check if all preconditions are satisfied
83 84 85 86 87 |
# File 'lib/granite/action/preconditions.rb', line 83 def satisfy_preconditions? errors.clear failed_preconditions.clear run_preconditions! end |