Class: JFlow::Activity::Definition
- Inherits:
-
Object
- Object
- JFlow::Activity::Definition
- Defined in:
- lib/jflow/activity/definition.rb
Constant Summary collapse
- DEFAULT_OPTIONS =
{}
- OPTIONS_VALIDATOR =
{ :version => "string", :domain => "string", :name => "string", :default_task_list => { :name => "string" } }
Instance Attribute Summary collapse
-
#klass ⇒ Object
readonly
Returns the value of attribute klass.
-
#options ⇒ Object
readonly
Returns the value of attribute options.
Instance Method Summary collapse
- #add_to_activity_mapping ⇒ Object
-
#initialize(klass, options = {}) ⇒ Definition
constructor
Possible options are : domain: “DomainName”, # required name: “Name”, # required version: “Version”, # required description: “Description”, default_task_start_to_close_timeout: “DurationInSecondsOptional”, default_task_heartbeat_timeout: “DurationInSecondsOptional”, default_task_list: { name: “Name”, # required }, default_task_priority: “TaskPriority”, default_task_schedule_to_start_timeout: “DurationInSecondsOptional”, default_task_schedule_to_close_timeout: “DurationInSecondsOptional”,.
- #name ⇒ Object
- #register_activity ⇒ Object
- #registered? ⇒ Boolean
- #version ⇒ Object
Constructor Details
#initialize(klass, options = {}) ⇒ Definition
Possible options are : domain: “DomainName”, # required name: “Name”, # required version: “Version”, # required description: “Description”, default_task_start_to_close_timeout: “DurationInSecondsOptional”, default_task_heartbeat_timeout: “DurationInSecondsOptional”, default_task_list:
name: "Name", # required
, default_task_priority: “TaskPriority”, default_task_schedule_to_start_timeout: “DurationInSecondsOptional”, default_task_schedule_to_close_timeout: “DurationInSecondsOptional”,
31 32 33 34 35 36 37 38 |
# File 'lib/jflow/activity/definition.rb', line 31 def initialize(klass, = {}) @klass = klass @options = DEFAULT_OPTIONS.merge() @options[:name] = name validate_activity! register_activity unless registered? add_to_activity_mapping end |
Instance Attribute Details
#klass ⇒ Object (readonly)
Returns the value of attribute klass.
16 17 18 |
# File 'lib/jflow/activity/definition.rb', line 16 def klass @klass end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
16 17 18 |
# File 'lib/jflow/activity/definition.rb', line 16 def @options end |
Instance Method Details
#add_to_activity_mapping ⇒ Object
45 46 47 |
# File 'lib/jflow/activity/definition.rb', line 45 def add_to_activity_mapping JFlow.configuration.activity_map.add_activity(name, [:version], klass, ) end |
#name ⇒ Object
49 50 51 |
# File 'lib/jflow/activity/definition.rb', line 49 def name @options[:name] || klass.name.to_s.split('::').last.scan(/[A-Z][a-z]*/).join("_").downcase end |
#register_activity ⇒ Object
40 41 42 43 |
# File 'lib/jflow/activity/definition.rb', line 40 def register_activity JFlow.configuration.swf_client.register_activity_type() JFlow.configuration.logger.info "Activity #{name} was registered successfuly" end |
#registered? ⇒ Boolean
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/jflow/activity/definition.rb', line 57 def registered? response = JFlow.configuration.swf_client.list_activity_types({ domain: [:domain], name: name, registration_status: "REGISTERED" }) response.type_infos.each do |type_info| if type_info.activity_type.name == name && type_info.activity_type.version == version JFlow.configuration.logger.info "Activity #{name} #{version} is already registered" return true end end return false end |
#version ⇒ Object
53 54 55 |
# File 'lib/jflow/activity/definition.rb', line 53 def version @options[:version] end |