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 +1 -1
- data/lib/factor/version.rb +1 -1
- data/lib/runtime.rb +30 -13
- metadata +25 -7
- checksums.yaml +0 -7
data/Gemfile.lock
CHANGED
data/lib/factor/version.rb
CHANGED
data/lib/runtime.rb
CHANGED
|
@@ -30,8 +30,8 @@ module Factor
|
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
@connectors = {}
|
|
33
|
-
connectors.each do |
|
|
34
|
-
@connectors[
|
|
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
|
-
|
|
51
|
-
|
|
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
|
-
|
|
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 '#{
|
|
75
|
+
success "Workflow '#{service_ref}' started"
|
|
72
76
|
when 'fail'
|
|
73
|
-
error "Workflow '#{
|
|
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
|
-
|
|
104
|
-
|
|
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 '#{
|
|
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 '#{
|
|
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
|
|
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} '#{
|
|
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.
|
|
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-
|
|
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:
|
|
190
|
+
rubygems_version: 1.8.25
|
|
173
191
|
signing_key:
|
|
174
|
-
specification_version:
|
|
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
|