Module: Legion::Extensions::Actors::Base
Constant Summary
Helpers::Base::NAMESPACE_BOUNDARIES
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Dsl
define_dsl_accessor
#default_settings, #runner_desc
#actor_class, #actor_const, #actor_name, #amqp_prefix, #calling_class, #calling_class_array, #from_json, #full_path, #lex_class, #lex_const, #lex_name, #lex_slug, #log_tag, #normalize, #runner_class, #runner_const, #runner_name, #segments, #settings_path, #table_prefix, #to_dotted_hash
#generate_task_id, #generate_task_log, #task_update
#handle_runner_exception
reset_identity!, resolve_identity!, #secret
#find_setting
Class Method Details
.included(base) ⇒ Object
44
45
46
47
48
49
50
51
|
# File 'lib/legion/extensions/actors/base.rb', line 44
def self.included(base)
base.extend(Legion::Extensions::Actors::Dsl) unless base.singleton_class.include?(Legion::Extensions::Actors::Dsl)
base.define_dsl_accessor(:use_runner, default: true) unless base.respond_to?(:use_runner)
base.define_dsl_accessor(:check_subtask, default: true) unless base.respond_to?(:check_subtask)
base.define_dsl_accessor(:generate_task, default: false) unless base.respond_to?(:generate_task)
base.define_dsl_accessor(:enabled, default: true) unless base.respond_to?(:enabled)
base.define_dsl_accessor(:remote_invocable, default: true) unless base.respond_to?(:remote_invocable)
end
|
Instance Method Details
#args ⇒ Object
57
58
59
|
# File 'lib/legion/extensions/actors/base.rb', line 57
def args
{}
end
|
#check_subtask? ⇒ Boolean
61
62
63
|
# File 'lib/legion/extensions/actors/base.rb', line 61
def check_subtask?
self.class.respond_to?(:check_subtask) ? self.class.check_subtask : true
end
|
#enabled? ⇒ Boolean
69
70
71
|
# File 'lib/legion/extensions/actors/base.rb', line 69
def enabled?
self.class.respond_to?(:enabled) ? self.class.enabled : true
end
|
#function ⇒ Object
40
41
42
|
# File 'lib/legion/extensions/actors/base.rb', line 40
def function
nil
end
|
#generate_task? ⇒ Boolean
65
66
67
|
# File 'lib/legion/extensions/actors/base.rb', line 65
def generate_task?
self.class.respond_to?(:generate_task) ? self.class.generate_task : false
end
|
#manual ⇒ Object
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/legion/extensions/actors/base.rb', line 27
def manual
klass = runner_class
klass = Kernel.const_get(klass) if klass.is_a?(String)
func = respond_to?(:runner_function) ? runner_function : :action
if klass == self.class
send(func, **args)
else
klass.send(func, **args)
end
rescue StandardError => e
handle_exception(e)
end
|
#remote_invocable? ⇒ Boolean
73
74
75
|
# File 'lib/legion/extensions/actors/base.rb', line 73
def remote_invocable?
self.class.respond_to?(:remote_invocable) ? self.class.remote_invocable : true
end
|
#runner ⇒ Object
18
19
20
21
22
23
24
25
|
# File 'lib/legion/extensions/actors/base.rb', line 18
def runner
with_log_context(function) do
Legion::Runner.run(runner_class: runner_class, function: function,
check_subtask: check_subtask?, generate_task: generate_task?)
end
rescue StandardError => e
handle_exception(e)
end
|
#use_runner? ⇒ Boolean
53
54
55
|
# File 'lib/legion/extensions/actors/base.rb', line 53
def use_runner?
self.class.respond_to?(:use_runner) ? self.class.use_runner : true
end
|