Class: Temporalio::Workflow::Definition::Info

Inherits:
Object
  • Object
show all
Defined in:
lib/temporalio/workflow/definition.rb

Overview

Information about the workflow definition. This is usually not used directly.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(workflow_class:, override_name: nil, dynamic: false, init: false, raw_args: false, failure_exception_types: [], signals: {}, queries: {}, updates: {}, versioning_behavior: VersioningBehavior::UNSPECIFIED, dynamic_options_method: nil, arg_hints: nil, result_hint: nil) ⇒ Info

Create a definition info. This should usually not be used directly, but instead a class that extends Temporalio::Workflow::Definition should be used.



519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
# File 'lib/temporalio/workflow/definition.rb', line 519

def initialize(
  workflow_class:,
  override_name: nil,
  dynamic: false,
  init: false,
  raw_args: false,
  failure_exception_types: [],
  signals: {},
  queries: {},
  updates: {},
  versioning_behavior: VersioningBehavior::UNSPECIFIED,
  dynamic_options_method: nil,
  arg_hints: nil,
  result_hint: nil
)
  @workflow_class = workflow_class
  @override_name = override_name
  @dynamic = dynamic
  @init = init
  @raw_args = raw_args
  @failure_exception_types = failure_exception_types.dup.freeze
  @signals = signals.dup.freeze
  @queries = queries.dup.freeze
  @updates = updates.dup.freeze
  @versioning_behavior = versioning_behavior
  @dynamic_options_method = dynamic_options_method
  @arg_hints = arg_hints
  @result_hint = result_hint
  Internal::ProtoUtils.assert_non_reserved_name(name)
end

Instance Attribute Details

#arg_hintsObject (readonly)

Returns the value of attribute arg_hints.



501
502
503
# File 'lib/temporalio/workflow/definition.rb', line 501

def arg_hints
  @arg_hints
end

#dynamicObject (readonly)

Returns the value of attribute dynamic.



501
502
503
# File 'lib/temporalio/workflow/definition.rb', line 501

def dynamic
  @dynamic
end

#dynamic_options_methodObject (readonly)

Returns the value of attribute dynamic_options_method.



501
502
503
# File 'lib/temporalio/workflow/definition.rb', line 501

def dynamic_options_method
  @dynamic_options_method
end

#failure_exception_typesObject (readonly)

Returns the value of attribute failure_exception_types.



501
502
503
# File 'lib/temporalio/workflow/definition.rb', line 501

def failure_exception_types
  @failure_exception_types
end

#initObject (readonly)

Returns the value of attribute init.



501
502
503
# File 'lib/temporalio/workflow/definition.rb', line 501

def init
  @init
end

#override_nameObject (readonly)

Returns the value of attribute override_name.



501
502
503
# File 'lib/temporalio/workflow/definition.rb', line 501

def override_name
  @override_name
end

#queriesObject (readonly)

Returns the value of attribute queries.



501
502
503
# File 'lib/temporalio/workflow/definition.rb', line 501

def queries
  @queries
end

#raw_argsObject (readonly)

Returns the value of attribute raw_args.



501
502
503
# File 'lib/temporalio/workflow/definition.rb', line 501

def raw_args
  @raw_args
end

#result_hintObject (readonly)

Returns the value of attribute result_hint.



501
502
503
# File 'lib/temporalio/workflow/definition.rb', line 501

def result_hint
  @result_hint
end

#signalsObject (readonly)

Returns the value of attribute signals.



501
502
503
# File 'lib/temporalio/workflow/definition.rb', line 501

def signals
  @signals
end

#updatesObject (readonly)

Returns the value of attribute updates.



501
502
503
# File 'lib/temporalio/workflow/definition.rb', line 501

def updates
  @updates
end

#versioning_behaviorObject (readonly)

Returns the value of attribute versioning_behavior.



501
502
503
# File 'lib/temporalio/workflow/definition.rb', line 501

def versioning_behavior
  @versioning_behavior
end

#workflow_classObject (readonly)

Returns the value of attribute workflow_class.



501
502
503
# File 'lib/temporalio/workflow/definition.rb', line 501

def workflow_class
  @workflow_class
end

Class Method Details

.from_class(workflow_class) ⇒ Info

Derive the workflow definition info from the class.

Parameters:

  • workflow_class (Class<Definition>)

    Workflow class.

Returns:

  • (Info)

    Built info.



509
510
511
512
513
514
515
# File 'lib/temporalio/workflow/definition.rb', line 509

def self.from_class(workflow_class)
  unless workflow_class.is_a?(Class) && workflow_class < Definition
    raise "Workflow '#{workflow_class}' must be a class and must extend Temporalio::Workflow::Definition"
  end

  workflow_class._workflow_definition
end

Instance Method Details

#nameString

Returns Workflow name.

Returns:

  • (String)

    Workflow name.



551
552
553
# File 'lib/temporalio/workflow/definition.rb', line 551

def name
  dynamic ? nil : (override_name || workflow_class.name.to_s.split('::').last)
end