class Opera::Operation::Base
Attributes
context[RW]
dependencies[R]
params[R]
result[R]
Public Class Methods
call(args = {})
click to toggle source
# File lib/opera/operation/base.rb, line 32 def call(args = {}) operation = new(params: args.fetch(:params, {}), dependencies: args.fetch(:dependencies, {})) executor = Executor.new(operation) executor.evaluate_instructions(instructions) executor.result end
check_method_availability!(method)
click to toggle source
# File lib/opera/operation/base.rb, line 51 def check_method_availability!(method) return if instance_methods(false).none?(method) raise(ArgumentError, "Method #{method} is already defined") end
config()
click to toggle source
# File lib/opera/operation/base.rb, line 39 def config @config ||= Config.new end
configure() { |config| ... }
click to toggle source
# File lib/opera/operation/base.rb, line 43 def configure yield config end
new(params: {}, dependencies: {})
click to toggle source
# File lib/opera/operation/base.rb, line 11 def initialize(params: {}, dependencies: {}) @context = {} @finished = false @result = Result.new @params = params.freeze @dependencies = dependencies.freeze end
reporter()
click to toggle source
# File lib/opera/operation/base.rb, line 47 def reporter config.reporter end
Public Instance Methods
config()
click to toggle source
# File lib/opera/operation/base.rb, line 19 def config self.class.config end
finish!()
click to toggle source
# File lib/opera/operation/base.rb, line 23 def finish! @finished = true end
finished?()
click to toggle source
# File lib/opera/operation/base.rb, line 27 def finished? @finished end