factor-connector-api 0.0.13 → 0.0.14

Sign up to get free protection for your applications and to get access to all the features.
@@ -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('info',expected_values)
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
- begin
12
- self.instance_exec params, &@definition.start
13
- rescue Factor::Connector::Error => ex
14
- respond type:'fail', message:ex.message
15
- exception ex.exception,params:params if ex.exception
16
- rescue => ex
17
- respond type:'fail', message:"Couldn't run action for unexpected reason. We've been informed and looking into it."
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
- begin
21
- instance_exec @params, &@definition.start if @definition && @definition.start
22
- respond type: 'return'
23
- rescue Factor::Connector::Error => ex
24
- error ex.message
25
- respond type: 'fail'
26
- exception ex.exception, params: @params if ex.exception
27
- rescue => ex
28
- error "Couldn't start listener for unexpected reason. We've been informed and looking into it."
29
- respond type: 'fail'
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
- begin
36
- instance_exec @params, &@definition.stop if @definition && @definition.stop
37
- respond type: 'stopped'
38
- rescue Factor::Connector::Error => ex
39
- error ex.message
40
- respond type: 'fail'
41
- exception ex.exception, params: @params if ex.exception
42
- rescue ex
43
- error "Couldn't stop listener for unexpected reason. We've been informed and looking into it."
44
- respond type: 'fail'
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
- begin
56
- self.instance_exec @params, hook_params, request, response, &web_hook.start
57
- rescue Factor::Connector::Error => ex
58
- error ex.message
59
- exception ex.exception, params: hook_params, hook_id: web_hook_id if ex.exception
60
- rescue => ex
61
- error "Couldn't call webhook for unexpected reason. We've been informed and looking into it."
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
@@ -1,2 +1,6 @@
1
1
  require "codeclimate-test-reporter"
2
- CodeClimate::TestReporter.start
2
+ CodeClimate::TestReporter.start if ENV['CODECLIMATE_REPO_TOKEN']
3
+
4
+ # Dir.glob('./lib/**/*.rb').each { |f| require f }
5
+
6
+ require_relative '../lib/factor-connector-api.rb'
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.13
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-10-14 00:00:00.000000000 Z
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.3.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.3.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/test.rb
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/spec_helper.rb
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: 1.8.25
113
+ rubygems_version: 2.2.2
123
114
  signing_key:
124
- specification_version: 3
115
+ specification_version: 4
125
116
  summary: Factor.io Connector API Library
126
117
  test_files:
127
- - ./spec/spec_helper.rb
118
+ - "./spec/servicemanager_spec.rb"
119
+ - "./spec/spec_helper.rb"