factor-connector-api 0.0.13 → 0.0.14
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.
- checksums.yaml +7 -0
- data/lib/factor-connector-api/test.rb +2 -2
- data/lib/instances/action_instance.rb +7 -9
- data/lib/instances/listener_instance.rb +27 -33
- data/lib/instances/service_instance.rb +2 -0
- data/spec/servicemanager_spec.rb +83 -0
- data/spec/spec_helper.rb +5 -1
- metadata +37 -45
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6dd5a3b66a8f33ab4b2c0c39efbc1c2e1b4f7ac2
|
4
|
+
data.tar.gz: 19733430d3c4ff347d74f8eb88aa452777e23209
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: bb665e2c63da6c405770df5c6c6f8f83caa2521bf8579398a659cd818c6ddcb19f3337a8b44d46827483ddb17f6e28c9e695565c5a0e263d139e69c13676e429
|
7
|
+
data.tar.gz: b9d06c6bea11da6cdb4df1a04bd34c29ff5442c602daf6505756ea38f9a6639fc6eea3e1390d5dd0be9f39c640c7041d54ce0b059d4792d155406130988cb9c8
|
@@ -47,7 +47,7 @@ module Factor::Connector
|
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
-
last_log = if @logs.last[:type]=='log' && @logs.last[:status]=='debug'
|
50
|
+
last_log = if @logs.last && @logs.last[:type]=='log' && @logs.last[:status]=='debug'
|
51
51
|
@logs.select {|log| log[:type] == 'log' && log[:status]=='debug'}.first
|
52
52
|
else
|
53
53
|
@logs.last
|
@@ -81,7 +81,7 @@ module Factor::Connector
|
|
81
81
|
end
|
82
82
|
|
83
83
|
def expect_warn(expected_values={})
|
84
|
-
expect_log('
|
84
|
+
expect_log('warn',expected_values)
|
85
85
|
end
|
86
86
|
|
87
87
|
def expect_error(expected_values={})
|
@@ -8,15 +8,13 @@ module Factor
|
|
8
8
|
attr_accessor :service_id
|
9
9
|
|
10
10
|
def start(params)
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
exception ex,params:params
|
19
|
-
end
|
11
|
+
self.instance_exec params, &@definition.start
|
12
|
+
rescue Factor::Connector::Error => ex
|
13
|
+
respond type:'fail', message:ex.message
|
14
|
+
exception ex.exception,params:params if ex.exception
|
15
|
+
rescue => ex
|
16
|
+
respond type:'fail', message:"Couldn't run action for unexpected reason. We've been informed and looking into it."
|
17
|
+
exception ex,params:params
|
20
18
|
end
|
21
19
|
|
22
20
|
def action_callback(params={})
|
@@ -17,33 +17,29 @@ module Factor
|
|
17
17
|
def start(params)
|
18
18
|
@params = params
|
19
19
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
exception ex, params: @params
|
31
|
-
end
|
20
|
+
instance_exec @params, &@definition.start if @definition && @definition.start
|
21
|
+
respond type: 'return'
|
22
|
+
rescue Factor::Connector::Error => ex
|
23
|
+
error ex.message
|
24
|
+
respond type: 'fail'
|
25
|
+
exception ex.exception, params: @params if ex.exception
|
26
|
+
rescue => ex
|
27
|
+
error "Couldn't start listener for unexpected reason. We've been informed and looking into it."
|
28
|
+
respond type: 'fail'
|
29
|
+
exception ex, params: @params
|
32
30
|
end
|
33
31
|
|
34
32
|
def stop
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
exception ex, params: @params
|
46
|
-
end
|
33
|
+
instance_exec @params, &@definition.stop if @definition && @definition.stop
|
34
|
+
respond type: 'stopped'
|
35
|
+
rescue Factor::Connector::Error => ex
|
36
|
+
error ex.message
|
37
|
+
respond type: 'fail'
|
38
|
+
exception ex.exception, params: @params if ex.exception
|
39
|
+
rescue ex
|
40
|
+
error "Couldn't stop listener for unexpected reason. We've been informed and looking into it."
|
41
|
+
respond type: 'fail'
|
42
|
+
exception ex, params: @params
|
47
43
|
end
|
48
44
|
|
49
45
|
def start_workflow(params)
|
@@ -52,15 +48,13 @@ module Factor
|
|
52
48
|
|
53
49
|
def call_web_hook(web_hook_id, hook_params, request, response)
|
54
50
|
web_hook = @web_hooks[web_hook_id]
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
exception ex, params: @params
|
63
|
-
end
|
51
|
+
self.instance_exec @params, hook_params, request, response, &web_hook.start
|
52
|
+
rescue Factor::Connector::Error => ex
|
53
|
+
error ex.message
|
54
|
+
exception ex.exception, params: hook_params, hook_id: web_hook_id if ex.exception
|
55
|
+
rescue => ex
|
56
|
+
error "Couldn't call webhook for unexpected reason. We've been informed and looking into it."
|
57
|
+
exception ex, params: @params
|
64
58
|
end
|
65
59
|
|
66
60
|
def web_hook(vals = {}, &block)
|
@@ -39,6 +39,7 @@ module Factor
|
|
39
39
|
action_instance.callback = @callback
|
40
40
|
action_instances[action_id] = action_instance
|
41
41
|
action_instance.async.start(params)
|
42
|
+
action_instance
|
42
43
|
end
|
43
44
|
|
44
45
|
def start_listener(listener_id,params)
|
@@ -49,6 +50,7 @@ module Factor
|
|
49
50
|
listener_instance.callback = @callback
|
50
51
|
@listener_instances[listener_id]=listener_instance
|
51
52
|
listener_instance.async.start(params)
|
53
|
+
listener_instance
|
52
54
|
end
|
53
55
|
|
54
56
|
def stop_listener(listener_id)
|
@@ -0,0 +1,83 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Factor::Connector::ServiceManager do
|
4
|
+
before do
|
5
|
+
Factor::Connector.service 'basic' do
|
6
|
+
action 'test' do |params|
|
7
|
+
info "this is info"
|
8
|
+
warn "this is a warning"
|
9
|
+
error "this is an error"
|
10
|
+
info "echo: #{params['echo']}"
|
11
|
+
action_callback some_var:'has contents'
|
12
|
+
end
|
13
|
+
action 'fail-test-method' do |params|
|
14
|
+
fail "this is a fail"
|
15
|
+
end
|
16
|
+
listener 'listen-test' do
|
17
|
+
start do |params|
|
18
|
+
info "this is info"
|
19
|
+
warn 'this is a warning'
|
20
|
+
error "this is an error"
|
21
|
+
info "echo: #{params['echo']}"
|
22
|
+
start_workflow some_var:'has contents'
|
23
|
+
end
|
24
|
+
stop do |params|
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'loads a service manager' do
|
32
|
+
service_manager = Factor::Connector.get_service_manager('basic')
|
33
|
+
expect(service_manager).to be_a(Factor::Connector::ServiceManager)
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'loads a service instance' do
|
37
|
+
service_manager = Factor::Connector.get_service_manager('basic')
|
38
|
+
service_instance = service_manager.instance
|
39
|
+
expect(service_instance).to be_a(Factor::Connector::ServiceInstance)
|
40
|
+
end
|
41
|
+
|
42
|
+
describe 'Action' do
|
43
|
+
before do
|
44
|
+
service_manager = Factor::Connector.get_service_manager('basic')
|
45
|
+
@service_instance = service_manager.instance
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'it can call an action' do
|
49
|
+
action_call = @service_instance.call_action('test', echo:'foo')
|
50
|
+
expect(action_call).to be_a(Factor::Connector::ActionInstance)
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'handle all log types, test framework, and callback' do
|
54
|
+
require_relative '../lib/factor-connector-api/test.rb'
|
55
|
+
@service_instance.test_action 'test', 'echo'=>'foo' do
|
56
|
+
expect_info message:'this is info'
|
57
|
+
expect_warn message:'this is a warning'
|
58
|
+
expect_error message:'this is an error'
|
59
|
+
expect_info message:'echo: foo'
|
60
|
+
expect_return some_var: 'has contents'
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'handles failures' do
|
65
|
+
require_relative '../lib/factor-connector-api/test.rb'
|
66
|
+
@service_instance.test_action 'fail-test-method' do
|
67
|
+
expect_fail
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
describe 'Listener' do
|
73
|
+
before do
|
74
|
+
service_manager = Factor::Connector.get_service_manager('basic')
|
75
|
+
@service_instance = service_manager.instance
|
76
|
+
end
|
77
|
+
|
78
|
+
it 'it can start a listener' do
|
79
|
+
action_call = @service_instance.start_listener('listen-test', echo:'foo')
|
80
|
+
expect(action_call).to be_a(Factor::Connector::ListenerInstance)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,78 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: factor-connector-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.14
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Maciej Skierkowski
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2014-
|
11
|
+
date: 2014-12-05 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: celluloid
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- - ~>
|
17
|
+
- - "~>"
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 0.16.0
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- - ~>
|
24
|
+
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: 0.16.0
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: codeclimate-test-reporter
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- - ~>
|
31
|
+
- - "~>"
|
36
32
|
- !ruby/object:Gem::Version
|
37
|
-
version: 0.
|
33
|
+
version: 0.4.1
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- - ~>
|
38
|
+
- - "~>"
|
44
39
|
- !ruby/object:Gem::Version
|
45
|
-
version: 0.
|
40
|
+
version: 0.4.1
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rspec
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- - ~>
|
45
|
+
- - "~>"
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: 3.1.0
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- - ~>
|
52
|
+
- - "~>"
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: 3.1.0
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rake
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- - ~>
|
59
|
+
- - "~>"
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: 10.3.2
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- - ~>
|
66
|
+
- - "~>"
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: 10.3.2
|
78
69
|
description:
|
@@ -82,46 +73,47 @@ executables: []
|
|
82
73
|
extensions: []
|
83
74
|
extra_rdoc_files: []
|
84
75
|
files:
|
85
|
-
- ./lib/builders/action_builder.rb
|
86
|
-
- ./lib/builders/listener_builder.rb
|
87
|
-
- ./lib/builders/service_builder.rb
|
88
|
-
- ./lib/builders/web_hook_builder.rb
|
89
|
-
- ./lib/definitions/action_definition.rb
|
90
|
-
- ./lib/definitions/listener_definition.rb
|
91
|
-
- ./lib/definitions/service_definition.rb
|
92
|
-
- ./lib/definitions/web_hook_definition.rb
|
93
|
-
- ./lib/errors.rb
|
94
|
-
- ./lib/factor-connector-api
|
95
|
-
- ./lib/factor-connector-api.rb
|
96
|
-
- ./lib/instances/action_instance.rb
|
97
|
-
- ./lib/instances/instance.rb
|
98
|
-
- ./lib/instances/listener_instance.rb
|
99
|
-
- ./lib/instances/service_instance.rb
|
100
|
-
- ./lib/service_manager.rb
|
101
|
-
- ./spec/
|
76
|
+
- "./lib/builders/action_builder.rb"
|
77
|
+
- "./lib/builders/listener_builder.rb"
|
78
|
+
- "./lib/builders/service_builder.rb"
|
79
|
+
- "./lib/builders/web_hook_builder.rb"
|
80
|
+
- "./lib/definitions/action_definition.rb"
|
81
|
+
- "./lib/definitions/listener_definition.rb"
|
82
|
+
- "./lib/definitions/service_definition.rb"
|
83
|
+
- "./lib/definitions/web_hook_definition.rb"
|
84
|
+
- "./lib/errors.rb"
|
85
|
+
- "./lib/factor-connector-api.rb"
|
86
|
+
- "./lib/factor-connector-api/test.rb"
|
87
|
+
- "./lib/instances/action_instance.rb"
|
88
|
+
- "./lib/instances/instance.rb"
|
89
|
+
- "./lib/instances/listener_instance.rb"
|
90
|
+
- "./lib/instances/service_instance.rb"
|
91
|
+
- "./lib/service_manager.rb"
|
92
|
+
- "./spec/servicemanager_spec.rb"
|
93
|
+
- "./spec/spec_helper.rb"
|
102
94
|
homepage: https://factor.io
|
103
95
|
licenses: []
|
96
|
+
metadata: {}
|
104
97
|
post_install_message:
|
105
98
|
rdoc_options: []
|
106
99
|
require_paths:
|
107
100
|
- lib
|
108
101
|
required_ruby_version: !ruby/object:Gem::Requirement
|
109
|
-
none: false
|
110
102
|
requirements:
|
111
|
-
- -
|
103
|
+
- - ">="
|
112
104
|
- !ruby/object:Gem::Version
|
113
105
|
version: '0'
|
114
106
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
115
|
-
none: false
|
116
107
|
requirements:
|
117
|
-
- -
|
108
|
+
- - ">="
|
118
109
|
- !ruby/object:Gem::Version
|
119
110
|
version: '0'
|
120
111
|
requirements: []
|
121
112
|
rubyforge_project:
|
122
|
-
rubygems_version:
|
113
|
+
rubygems_version: 2.2.2
|
123
114
|
signing_key:
|
124
|
-
specification_version:
|
115
|
+
specification_version: 4
|
125
116
|
summary: Factor.io Connector API Library
|
126
117
|
test_files:
|
127
|
-
- ./spec/
|
118
|
+
- "./spec/servicemanager_spec.rb"
|
119
|
+
- "./spec/spec_helper.rb"
|