Class: Temporalio::Activity::Definition::Info
- Inherits:
-
Object
- Object
- Temporalio::Activity::Definition::Info
- Defined in:
- lib/temporalio/activity/definition.rb
Overview
Definition info of an activity. Activities are usually classes/instances that extend Temporalio::Activity::Definition, but definitions can also be manually created with a block via #initialize here.
Instance Attribute Summary collapse
-
#cancel_raise ⇒ Boolean
readonly
Whether to raise in thread/fiber on cancellation.
-
#executor ⇒ Symbol
readonly
Name of the executor.
-
#name ⇒ String, ...
readonly
Name of the activity, or nil if the activity is dynamic.
-
#proc ⇒ Proc
readonly
Proc for the activity.
-
#raw_args ⇒ Boolean
readonly
Whether to use Converters::RawValues as arguments.
Class Method Summary collapse
-
.from_activity(activity) ⇒ Object
Obtain definition info representing the given activity, which can be a class, instance, or definition info.
Instance Method Summary collapse
-
#initialize(name:, executor: :default, cancel_raise: true, raw_args: false) { ... } ⇒ Info
constructor
Manually create activity definition info.
Constructor Details
#initialize(name:, executor: :default, cancel_raise: true, raw_args: false) { ... } ⇒ Info
Manually create activity definition info. Most users will use an instance/class of Temporalio::Activity::Definition.
163 164 165 166 167 168 169 170 171 |
# File 'lib/temporalio/activity/definition.rb', line 163 def initialize(name:, executor: :default, cancel_raise: true, raw_args: false, &block) @name = name raise ArgumentError, 'Must give block' unless block_given? @proc = block @executor = executor @cancel_raise = cancel_raise @raw_args = raw_args end |
Instance Attribute Details
#cancel_raise ⇒ Boolean (readonly)
Returns Whether to raise in thread/fiber on cancellation. Default is ‘true`.
115 116 117 |
# File 'lib/temporalio/activity/definition.rb', line 115 def cancel_raise @cancel_raise end |
#executor ⇒ Symbol (readonly)
Returns Name of the executor. Default is ‘:default`.
112 113 114 |
# File 'lib/temporalio/activity/definition.rb', line 112 def executor @executor end |
#name ⇒ String, ... (readonly)
Returns Name of the activity, or nil if the activity is dynamic.
106 107 108 |
# File 'lib/temporalio/activity/definition.rb', line 106 def name @name end |
#proc ⇒ Proc (readonly)
Returns Proc for the activity.
109 110 111 |
# File 'lib/temporalio/activity/definition.rb', line 109 def proc @proc end |
#raw_args ⇒ Boolean (readonly)
Returns Whether to use Converters::RawValues as arguments.
118 119 120 |
# File 'lib/temporalio/activity/definition.rb', line 118 def raw_args @raw_args end |
Class Method Details
.from_activity(activity) ⇒ Object
Obtain definition info representing the given activity, which can be a class, instance, or definition info.
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 |
# File 'lib/temporalio/activity/definition.rb', line 124 def self.from_activity(activity) # Class means create each time, instance means just call, definition # does nothing special case activity when Class unless activity < Definition raise ArgumentError, "Class '#{activity}' does not extend Temporalio::Activity::Definition" end details = activity._activity_definition_details new( name: details[:activity_name], executor: details[:activity_executor], cancel_raise: details[:activity_cancel_raise], raw_args: details[:activity_raw_args] ) { |*args| activity.new.execute(*args) } # Instantiate and call when Definition details = activity.class._activity_definition_details new( name: details[:activity_name], executor: details[:activity_executor], cancel_raise: details[:activity_cancel_raise], raw_args: details[:activity_raw_args] ) { |*args| activity.execute(*args) } # Just and call when Info activity else raise ArgumentError, "#{activity} is not an activity class, instance, or definition info" end end |