factor 0.5.06 → 0.5.07

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- factor (0.5.04)
4
+ factor (0.5.06)
5
5
  colored (~> 1.2)
6
6
  commander (~> 4.2.0)
7
7
  configatron (~> 4.2.0)
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Primary Factor.io module
4
4
  module Factor
5
- VERSION = '0.5.06'
5
+ VERSION = '0.5.07'
6
6
  end
data/lib/runtime.rb CHANGED
@@ -30,8 +30,8 @@ module Factor
30
30
  end
31
31
 
32
32
  @connectors = {}
33
- connectors.each do |connector_id, connector_url|
34
- @connectors[connector_id] = Listener.new(connector_url)
33
+ flat_hash(connectors).each do |key, connector_url|
34
+ @connectors[key] = Listener.new(connector_url)
35
35
  end
36
36
 
37
37
  @credentials = {}
@@ -47,10 +47,14 @@ module Factor
47
47
  end
48
48
 
49
49
  def listen(service_ref, params = {}, &block)
50
- service_id, listener_id = service_ref.split('::')
51
- ws = @connectors[service_id.to_sym].listener(listener_id)
50
+ service_map = service_ref.split('::')
51
+ service_id = service_map.first
52
+ listener_id = service_map.last
53
+ service_key = service_map[0..-2].map{|k| k.to_sym}
52
54
 
53
- handle_on_open(service_id, listener_id, 'Listener', ws, params)
55
+ ws = @connectors[service_key].listener(listener_id)
56
+
57
+ handle_on_open(service_ref, 'Listener', ws, params)
54
58
 
55
59
  ws.on :close do
56
60
  error 'Listener disconnected'
@@ -68,9 +72,9 @@ module Factor
68
72
  success "Workflow '#{service_id}::#{listener_id}' triggered"
69
73
  error_handle_call(listener_response, &block)
70
74
  when 'return'
71
- success "Workflow '#{service_id}::#{listener_id}' started"
75
+ success "Workflow '#{service_ref}' started"
72
76
  when 'fail'
73
- error "Workflow '#{service_id}::#{listener_id}' failed to start"
77
+ error "Workflow '#{service_ref}' failed to start"
74
78
  when 'log'
75
79
  listener_response['message'] = " #{listener_response['message']}"
76
80
  log_message(listener_response)
@@ -100,8 +104,12 @@ module Factor
100
104
  end
101
105
 
102
106
  def run(service_ref, params = {}, &block)
103
- service_id, action_id = service_ref.split('::')
104
- ws = @connectors[service_id.to_sym].action(action_id)
107
+ service_map = service_ref.split('::')
108
+ service_id = service_map.first
109
+ action_id = service_map.last
110
+ service_key = service_map[0..-2].map{|k| k.to_sym}
111
+
112
+ ws = @connectors[service_key].action(action_id)
105
113
 
106
114
  handle_on_open(service_id, action_id, 'Action', ws, params)
107
115
 
@@ -114,12 +122,12 @@ module Factor
114
122
  case action_response['type']
115
123
  when 'return'
116
124
  ws.close
117
- success "Action '#{service_id}::#{action_id}' responded"
125
+ success "Action '#{service_ref}' responded"
118
126
  error_handle_call(action_response, &block)
119
127
  when 'fail'
120
128
  ws.close
121
129
  error " #{action_response['message']}"
122
- error "Action '#{service_id}::#{action_id}' failed"
130
+ error "Action '#{service_ref}' failed"
123
131
  when 'log'
124
132
  action_response['message'] = " #{action_response['message']}"
125
133
  log_message(action_response)
@@ -135,10 +143,19 @@ module Factor
135
143
 
136
144
  private
137
145
 
138
- def handle_on_open(service_id, action_id, dsl_type, ws, params)
146
+ def flat_hash(h,f=[],g={})
147
+ return g.update({ f=>h }) unless h.is_a? Hash
148
+ h.each { |k,r| flat_hash(r,f+[k],g) }
149
+ g
150
+ end
151
+
152
+ def handle_on_open(service_ref, dsl_type, ws, params)
153
+ service_map = service_ref.split('::')
154
+ service_id = service_map.first
155
+
139
156
  ws.on :open do
140
157
  params.merge!(@credentials[service_id.to_sym] || {})
141
- success "#{dsl_type.capitalize} '#{service_id}::#{action_id}' called"
158
+ success "#{dsl_type.capitalize} '#{service_ref}' called"
142
159
  ws.send(params.to_json)
143
160
  end
144
161
  end
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: factor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.06
4
+ version: 0.5.07
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Maciej Skierkowski
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-08-31 00:00:00.000000000 Z
12
+ date: 2014-10-01 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: commander
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ~>
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ~>
25
28
  - !ruby/object:Gem::Version
@@ -27,6 +30,7 @@ dependencies:
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: rest_client
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
35
  - - ~>
32
36
  - !ruby/object:Gem::Version
@@ -34,6 +38,7 @@ dependencies:
34
38
  type: :runtime
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
43
  - - ~>
39
44
  - !ruby/object:Gem::Version
@@ -41,6 +46,7 @@ dependencies:
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: faye-websocket
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
51
  - - ~>
46
52
  - !ruby/object:Gem::Version
@@ -48,6 +54,7 @@ dependencies:
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
59
  - - ~>
53
60
  - !ruby/object:Gem::Version
@@ -55,6 +62,7 @@ dependencies:
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: colored
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
67
  - - ~>
60
68
  - !ruby/object:Gem::Version
@@ -62,6 +70,7 @@ dependencies:
62
70
  type: :runtime
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
75
  - - ~>
67
76
  - !ruby/object:Gem::Version
@@ -69,6 +78,7 @@ dependencies:
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: configatron
71
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
83
  - - ~>
74
84
  - !ruby/object:Gem::Version
@@ -76,6 +86,7 @@ dependencies:
76
86
  type: :runtime
77
87
  prerelease: false
78
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
79
90
  requirements:
80
91
  - - ~>
81
92
  - !ruby/object:Gem::Version
@@ -83,6 +94,7 @@ dependencies:
83
94
  - !ruby/object:Gem::Dependency
84
95
  name: codeclimate-test-reporter
85
96
  requirement: !ruby/object:Gem::Requirement
97
+ none: false
86
98
  requirements:
87
99
  - - ~>
88
100
  - !ruby/object:Gem::Version
@@ -90,6 +102,7 @@ dependencies:
90
102
  type: :development
91
103
  prerelease: false
92
104
  version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
93
106
  requirements:
94
107
  - - ~>
95
108
  - !ruby/object:Gem::Version
@@ -97,6 +110,7 @@ dependencies:
97
110
  - !ruby/object:Gem::Dependency
98
111
  name: rspec
99
112
  requirement: !ruby/object:Gem::Requirement
113
+ none: false
100
114
  requirements:
101
115
  - - ~>
102
116
  - !ruby/object:Gem::Version
@@ -104,6 +118,7 @@ dependencies:
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
107
122
  requirements:
108
123
  - - ~>
109
124
  - !ruby/object:Gem::Version
@@ -111,6 +126,7 @@ dependencies:
111
126
  - !ruby/object:Gem::Dependency
112
127
  name: rake
113
128
  requirement: !ruby/object:Gem::Requirement
129
+ none: false
114
130
  requirements:
115
131
  - - ~>
116
132
  - !ruby/object:Gem::Version
@@ -118,6 +134,7 @@ dependencies:
118
134
  type: :development
119
135
  prerelease: false
120
136
  version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
121
138
  requirements:
122
139
  - - ~>
123
140
  - !ruby/object:Gem::Version
@@ -152,26 +169,27 @@ files:
152
169
  - spec/workflow_spec.rb
153
170
  homepage: https://factor.io
154
171
  licenses: []
155
- metadata: {}
156
172
  post_install_message:
157
173
  rdoc_options: []
158
174
  require_paths:
159
175
  - lib
160
176
  required_ruby_version: !ruby/object:Gem::Requirement
177
+ none: false
161
178
  requirements:
162
- - - '>='
179
+ - - ! '>='
163
180
  - !ruby/object:Gem::Version
164
181
  version: '0'
165
182
  required_rubygems_version: !ruby/object:Gem::Requirement
183
+ none: false
166
184
  requirements:
167
- - - '>='
185
+ - - ! '>='
168
186
  - !ruby/object:Gem::Version
169
187
  version: '0'
170
188
  requirements: []
171
189
  rubyforge_project:
172
- rubygems_version: 2.0.3
190
+ rubygems_version: 1.8.25
173
191
  signing_key:
174
- specification_version: 4
192
+ specification_version: 3
175
193
  summary: CLI to manager workflows on Factor.io
176
194
  test_files:
177
195
  - spec/base_spec.rb
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: bddfffa82901828336ac74f9e5d7e4a36b6e7f7a
4
- data.tar.gz: c59c12d7fcc496dc86913fdb3700ffd643a6b833
5
- SHA512:
6
- metadata.gz: 603c84c45c762bd51b582bef876c0a5a3e8284c0967f8af863a504fcbec93975eab9857375c5a536eaa53a1866d1f71344fd4ce104705bae36401d1398ebf551
7
- data.tar.gz: 016fcc9526e20f0550a5bc92c1dce3c00bdfdc44da357647646db8ac9d5e356d7f5dbaffb50667500a0370086188c1cdcfb72c6adac819824ba1e1f41e8d3122