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

Instance Method Summary collapse

Instance Attribute Details

#failed_preconditionsObject (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

#initializeObject



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

Returns:

  • (Boolean)

    wheter 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