class AASM::Core::Invokers::BaseInvoker
Base
concrete invoker class which contain basic invoking and logging definitions
Attributes
args[R]
failures[R]
record[R]
result[R]
subject[R]
Public Class Methods
new(subject, record, args)
click to toggle source
Initialize a new concrete invoker instance. NOTE that concrete invoker must be used per-subject/record
(one instance per subject/record)
Options:¶ ↑
subject
- invoking subject comparable with this invoker record
- invoking record args
- arguments which will be passed to the callback
# File lib/aasm/core/invokers/base_invoker.rb, line 23 def initialize(subject, record, args) @subject = subject @record = record @args = args @result = false @failures = [] end
Public Instance Methods
invoke()
click to toggle source
Execute concrete invoker, log the error and return result
# File lib/aasm/core/invokers/base_invoker.rb, line 46 def invoke return unless may_invoke? log_failure unless invoke_subject result end
invoke_subject()
click to toggle source
Execute concrete invoker
# File lib/aasm/core/invokers/base_invoker.rb, line 69 def invoke_subject raise NoMethodError, '"#invoke_subject" is not implemented' end
log_failure()
click to toggle source
Log failed invoking
# File lib/aasm/core/invokers/base_invoker.rb, line 62 def log_failure raise NoMethodError, '"#log_failure" is not implemented' end
may_invoke?()
click to toggle source
Check if concrete invoker may be invoked for a specified subject
# File lib/aasm/core/invokers/base_invoker.rb, line 55 def may_invoke? raise NoMethodError, '"#may_invoke?" is not implemented' end