ntswf 1.0.1 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -8,6 +8,7 @@ AWS Simple Workflow.
8
8
 
9
9
  [![Gem Version](https://badge.fury.io/rb/ntswf.png)](http://badge.fury.io/rb/ntswf)
10
10
  [![Code Climate](https://codeclimate.com/github/infopark/ntswf.png)](https://codeclimate.com/github/infopark/ntswf)
11
+ [![Dependency Status](https://gemnasium.com/infopark/ntswf.png)](https://gemnasium.com/infopark/ntswf)
11
12
 
12
13
  Usage
13
14
  -----
data/lib/ntswf/base.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'aws'
2
+ require 'ostruct'
2
3
 
3
4
  module Ntswf
4
5
  module Base
@@ -11,14 +12,14 @@ module Ntswf
11
12
  # @option config [String] :secret_access_key AWS credential
12
13
  # @option config [String] :unit This worker/client's activity task list key
13
14
  def initialize(config)
14
- @config = config.with_indifferent_access
15
+ @config = OpenStruct.new(config)
15
16
  raise_if_invalid_task_list
16
17
  end
17
18
 
18
19
  # @return [AWS::SimpleWorkflow]
19
20
  def swf
20
- @swf ||= AWS::SimpleWorkflow.new(@config.slice(:access_key_id, :secret_access_key).merge(
21
- use_ssl: true))
21
+ @swf ||= AWS::SimpleWorkflow.new(access_key_id: @config.access_key_id,
22
+ secret_access_key: @config.secret_access_key, use_ssl: true)
22
23
  end
23
24
 
24
25
  def workflow_name
@@ -30,38 +31,38 @@ module Ntswf
30
31
  end
31
32
 
32
33
  def domain
33
- @domain ||= swf.domains[@config[:domain]]
34
+ @domain ||= swf.domains[@config.domain]
34
35
  end
35
36
 
36
37
  def activity_task_lists
37
- @config[:activity_task_lists]
38
+ @config.activity_task_lists
38
39
  end
39
40
 
40
41
  def decision_task_list
41
- @config[:decision_task_list] || "#{default_unit}-decision-task-list"
42
+ @config.decision_task_list or raise "Missing decision task list configuration"
42
43
  end
43
44
 
44
45
  def activity_task_list
45
- activity_task_lists[default_unit] || "#{default_unit}-activity-task-list"
46
+ activity_task_lists[default_unit] or raise "Missing activity task list configuration"
46
47
  end
47
48
 
48
49
  def default_unit
49
- @default_unit ||= @config[:unit].to_s
50
+ @default_unit ||= @config.unit.to_s
50
51
  end
51
52
 
52
53
  def execution_version
53
- @config[:execution_version]
54
+ @config.execution_version
54
55
  end
55
56
 
56
57
  # Parse the options stored in a task's *input* value
57
58
  # @param input [String] A task's input
58
- # @return [Hash] Converted input string
59
+ # @return [Hash] Input, converted back from JSON
59
60
  # @see Ntswf::Client#start_execution Hash keys to be expected
60
61
  def parse_input(input)
61
62
  options, legacy_params = JSON.parse(input)
62
- options = {name: options} unless options.kind_of? Hash
63
- options.merge!(params: legacy_params) if legacy_params
64
- options.with_indifferent_access
63
+ options = {"name" => options} unless options.kind_of? Hash
64
+ options.merge!("params" => legacy_params) if legacy_params
65
+ options
65
66
  end
66
67
 
67
68
  def notify(message, params)
@@ -80,7 +81,7 @@ module Ntswf
80
81
  end
81
82
 
82
83
  def raise_if_invalid_task_list
83
- for task_list in [*activity_task_lists.values, decision_task_list] do
84
+ [*activity_task_lists.values, decision_task_list].each do |task_list|
84
85
  if task_list.include?(separator)
85
86
  raise "Invalid config '#{task_list}': Separator '#{separator}' is reserved for internal use."
86
87
  end
@@ -46,7 +46,7 @@ module Ntswf
46
46
  task.continue_as_new_workflow_execution(attributes)
47
47
  when 'ActivityTaskCompleted'
48
48
  result = parse_result(event.attributes.result)
49
- start_timer(task, result[:seconds_until_retry]) or task.complete_workflow_execution(
49
+ start_timer(task, result["seconds_until_retry"]) or task.complete_workflow_execution(
50
50
  result: event.attributes.result)
51
51
  when 'ActivityTaskFailed'
52
52
  if (event.attributes.reason == RETRY)
@@ -94,7 +94,7 @@ module Ntswf
94
94
  value = JSON.parse(result) rescue nil # expecting JSON::ParserError
95
95
  end
96
96
  value = {} unless value.kind_of? Hash
97
- value.with_indifferent_access
97
+ value
98
98
  end
99
99
 
100
100
  private
data/lib/ntswf/utils.rb CHANGED
@@ -5,7 +5,7 @@ module Ntswf
5
5
  include Ntswf::Base
6
6
 
7
7
  def create_domain(description)
8
- swf.domains.create(@config[:domain], 3, description: description)
8
+ swf.domains.create(@config.domain, 3, description: description)
9
9
  end
10
10
 
11
11
  def activity_name
data/lib/ntswf.rb CHANGED
@@ -9,6 +9,8 @@ module Ntswf
9
9
  AUTOLOAD.each { |c| autoload c.to_sym, "ntswf/#{c.gsub(/.(?=[A-Z])/, '\0_').downcase}.rb" }
10
10
 
11
11
  def self.included(base)
12
- AUTOLOAD.each { |c| include const_get c }
12
+ base.module_exec do
13
+ AUTOLOAD.each { |c| include const_get c }
14
+ end
13
15
  end
14
16
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ntswf
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-01-10 00:00:00.000000000 Z
12
+ date: 2014-01-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aws-sdk
@@ -35,13 +35,13 @@ extra_rdoc_files: []
35
35
  files:
36
36
  - README.md
37
37
  - LICENSE
38
- - lib/ntswf.rb
39
- - lib/ntswf/base.rb
38
+ - lib/ntswf/decision_worker.rb
40
39
  - lib/ntswf/utils.rb
41
- - lib/ntswf/client.rb
42
- - lib/ntswf/worker.rb
43
40
  - lib/ntswf/activity_worker.rb
44
- - lib/ntswf/decision_worker.rb
41
+ - lib/ntswf/worker.rb
42
+ - lib/ntswf/client.rb
43
+ - lib/ntswf/base.rb
44
+ - lib/ntswf.rb
45
45
  homepage: https://github.com/infopark/ntswf
46
46
  licenses:
47
47
  - LGPLv3