factor 0.5.06 → 0.5.07

Sign up to get free protection for your applications and to get access to all the features.
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