connect_client 0.1.0
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/.gitignore +38 -0
- data/Gemfile +3 -0
- data/LICENSE +22 -0
- data/README.md +45 -0
- data/Rakefile +22 -0
- data/connect_client.gemspec +25 -0
- data/data/cacert.pem +3988 -0
- data/lib/connect_client.rb +41 -0
- data/lib/connect_client/client.rb +43 -0
- data/lib/connect_client/configuration.rb +12 -0
- data/lib/connect_client/event.rb +52 -0
- data/lib/connect_client/event_push_response.rb +49 -0
- data/lib/connect_client/http/event_endpoint.rb +137 -0
- data/lib/connect_client/version.rb +3 -0
- data/spec/connect_client/client_spec.rb +48 -0
- data/spec/connect_client/configuration_spec.rb +55 -0
- data/spec/connect_client/event_push_response_spec.rb +150 -0
- data/spec/connect_client/event_spec.rb +47 -0
- data/spec/connect_client/http/http_event_endpoint_spec.rb +121 -0
- data/spec/connect_client/http/synchrony/event_endpoint_spec.rb +60 -0
- data/spec/connect_client_spec.rb +25 -0
- metadata +155 -0
@@ -0,0 +1,150 @@
|
|
1
|
+
require 'minitest/spec'
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'connect_client/event'
|
4
|
+
require 'connect_client/event_push_response'
|
5
|
+
|
6
|
+
|
7
|
+
describe ConnectClient::EventPushResponse do
|
8
|
+
before do
|
9
|
+
@json_content_type = 'application/json; charset=utf-8'
|
10
|
+
@sample_event = ConnectClient::Event.new({name: 'test'})
|
11
|
+
@sample_event_data = @sample_event.data
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should be successful when status code is 201" do
|
15
|
+
|
16
|
+
body = ''
|
17
|
+
code = 201
|
18
|
+
|
19
|
+
event_response = ConnectClient::EventPushResponse.new code, @json_content_type, body, @sample_event
|
20
|
+
|
21
|
+
event_response.success?.must_equal true
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should pass through string body if content type is not json" do
|
25
|
+
|
26
|
+
body = ''
|
27
|
+
code = 500
|
28
|
+
|
29
|
+
event_response = ConnectClient::EventPushResponse.new code, @json_content_type, body, @sample_event
|
30
|
+
|
31
|
+
event_response.success?.must_equal false
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should not be successful when status code is 500" do
|
35
|
+
|
36
|
+
body = ''
|
37
|
+
code = 500
|
38
|
+
|
39
|
+
event_response = ConnectClient::EventPushResponse.new code, @json_content_type, body, @sample_event
|
40
|
+
|
41
|
+
event_response.success?.must_equal false
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should not parse body that is not json content" do
|
45
|
+
|
46
|
+
content_type = 'text/html'
|
47
|
+
body = '<html><html>'
|
48
|
+
code = 500
|
49
|
+
|
50
|
+
event_response = ConnectClient::EventPushResponse.new code, content_type, body, @sample_event
|
51
|
+
|
52
|
+
event_response.data.must_equal body
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should set status code even if body is not json content" do
|
56
|
+
|
57
|
+
content_type = 'text/html'
|
58
|
+
body = '<html><html>'
|
59
|
+
code = 500
|
60
|
+
|
61
|
+
event_response = ConnectClient::EventPushResponse.new code, content_type, body, @sample_event
|
62
|
+
|
63
|
+
event_response.http_status_code.must_equal '500'
|
64
|
+
end
|
65
|
+
|
66
|
+
|
67
|
+
it "should pass through error message in data" do
|
68
|
+
|
69
|
+
body = '{ "errorMessage": "something went wrong" }'
|
70
|
+
code = 500
|
71
|
+
|
72
|
+
event_response = ConnectClient::EventPushResponse.new code, @json_content_type, body, @sample_event
|
73
|
+
|
74
|
+
event_response.data[:errorMessage].must_equal 'something went wrong'
|
75
|
+
end
|
76
|
+
|
77
|
+
it "should pass back event in response when successful" do
|
78
|
+
|
79
|
+
body = ''
|
80
|
+
code = 200
|
81
|
+
|
82
|
+
event_response = ConnectClient::EventPushResponse.new code, @json_content_type, body, @sample_event
|
83
|
+
|
84
|
+
event_response.data[:event].must_be_same_as @sample_event_data
|
85
|
+
end
|
86
|
+
|
87
|
+
it "should pass through original event with error" do
|
88
|
+
|
89
|
+
|
90
|
+
body = '{ "errorMessage": "something went wrong" }'
|
91
|
+
code = 500
|
92
|
+
|
93
|
+
event_response = ConnectClient::EventPushResponse.new code, @json_content_type, body, @sample_event
|
94
|
+
|
95
|
+
event_response.data[:event].must_be_same_as @sample_event_data
|
96
|
+
end
|
97
|
+
|
98
|
+
it "should pass through success status under collection name for batch" do
|
99
|
+
|
100
|
+
|
101
|
+
body = %@
|
102
|
+
{
|
103
|
+
"collectionName": [{
|
104
|
+
"success": true
|
105
|
+
}]
|
106
|
+
}
|
107
|
+
@
|
108
|
+
code = 200
|
109
|
+
|
110
|
+
events = { :collectionName => [@sample_event] }
|
111
|
+
event_response = ConnectClient::EventPushResponse.new code, @json_content_type, body, events
|
112
|
+
|
113
|
+
event_response.data[:collectionName][0][:success].must_equal true
|
114
|
+
end
|
115
|
+
|
116
|
+
it "should pass through duplicate status under collection name for batch" do
|
117
|
+
|
118
|
+
|
119
|
+
body = %@
|
120
|
+
{
|
121
|
+
"collectionName": [{
|
122
|
+
"duplicate": true
|
123
|
+
}]
|
124
|
+
}
|
125
|
+
@
|
126
|
+
code = 200
|
127
|
+
|
128
|
+
events = { :collectionName => [@sample_event] }
|
129
|
+
event_response = ConnectClient::EventPushResponse.new code, @json_content_type, body, events
|
130
|
+
|
131
|
+
event_response.data[:collectionName][0][:duplicate].must_equal true
|
132
|
+
end
|
133
|
+
|
134
|
+
it "should show event under collection name for batch" do
|
135
|
+
|
136
|
+
body = %@
|
137
|
+
{
|
138
|
+
"collectionName": [{
|
139
|
+
"success": true
|
140
|
+
}]
|
141
|
+
}
|
142
|
+
@
|
143
|
+
code = 200
|
144
|
+
|
145
|
+
events = { :collectionName => [@sample_event] }
|
146
|
+
event_response = ConnectClient::EventPushResponse.new code, @json_content_type, body, events
|
147
|
+
|
148
|
+
event_response.data[:collectionName][0][:event].must_be_same_as @sample_event_data
|
149
|
+
end
|
150
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'minitest/spec'
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'connect_client/event'
|
4
|
+
|
5
|
+
describe ConnectClient::Event do
|
6
|
+
it "should throw a validation exception if a property starts with tp_" do
|
7
|
+
connect_event = proc { ConnectClient::Event.new({tp_foo: 'bar'}) }.must_raise ConnectClient::EventDataValidationError
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should supply an id if none present" do
|
11
|
+
connect_event = ConnectClient::Event.new({foo: 'bar'})
|
12
|
+
uuid_regex = /[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}/
|
13
|
+
|
14
|
+
connect_event.data[:id].must_match uuid_regex
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should pass through id supplied" do
|
18
|
+
connect_event = ConnectClient::Event.new({id: :bar})
|
19
|
+
|
20
|
+
connect_event.data[:id].must_equal :bar
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should supply timestamp if none present" do
|
24
|
+
iso_date = '2015-07-01T04:07:57Z'
|
25
|
+
a_time = Time.parse(iso_date);
|
26
|
+
|
27
|
+
Time.stub :now, a_time do
|
28
|
+
connect_event = ConnectClient::Event.new({foo: 'bar'})
|
29
|
+
connect_event.data[:timestamp].must_equal iso_date
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should turn timestamp into iso string" do
|
34
|
+
iso_date = '2015-07-01T04:07:57Z'
|
35
|
+
a_time = Time.parse(iso_date);
|
36
|
+
|
37
|
+
connect_event = ConnectClient::Event.new({foo: 'bar', timestamp: a_time})
|
38
|
+
connect_event.data[:timestamp].must_equal iso_date
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should pass through timestamp string if supplied" do
|
42
|
+
iso_date = '2015-07-01T04:07:57Z'
|
43
|
+
|
44
|
+
connect_event = ConnectClient::Event.new({foo: 'bar', timestamp: iso_date})
|
45
|
+
connect_event.data[:timestamp].must_equal iso_date
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,121 @@
|
|
1
|
+
require 'minitest/spec'
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'webmock/minitest'
|
4
|
+
require 'connect_client/http/event_endpoint'
|
5
|
+
require 'connect_client/event_push_response'
|
6
|
+
require 'connect_client/event'
|
7
|
+
require 'connect_client/configuration'
|
8
|
+
require 'securerandom'
|
9
|
+
|
10
|
+
describe ConnectClient::Http::EventEndpoint do
|
11
|
+
before do
|
12
|
+
@endpoint = ConnectClient::Http::EventEndpoint.new (ConnectClient::Configuration.new)
|
13
|
+
@async_endpoint = ConnectClient::Http::EventEndpoint.new (ConnectClient::Configuration.new '', '', true)
|
14
|
+
@sample_event_data = { id: SecureRandom.uuid, timestamp: Time.now.utc.iso8601, name: 'sample' }
|
15
|
+
@sample_event = ConnectClient::Event.new(@sample_event_data)
|
16
|
+
@sample_events_reponse = '{"sample": [{"success": true}]}'
|
17
|
+
@sample_collection = 'sample'
|
18
|
+
@sample_batch_data = { @sample_collection.to_sym => [@sample_event_data] }
|
19
|
+
@sample_batch = { @sample_collection.to_sym => [@sample_event] }
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should get a push response back when pushing a single event to a collection" do
|
23
|
+
stub_request(:post, "https://api.getconnect.io/events/#{@sample_collection}").
|
24
|
+
with(:body => @sample_event_data, :headers => { 'Accept' => 'application/json' }).
|
25
|
+
to_return(:status => 200, :body => "", :headers => { 'Content-Type'=>'application/json' })
|
26
|
+
|
27
|
+
response = @endpoint.push @sample_collection, @sample_event
|
28
|
+
|
29
|
+
response.must_be_instance_of ConnectClient::EventPushResponse
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should get push to overriden base_url" do
|
33
|
+
overriden_url_config = ConnectClient::Configuration.new '', '', false, 'https://whatever.test'
|
34
|
+
endpoint = ConnectClient::Http::EventEndpoint.new overriden_url_config
|
35
|
+
stub_request(:post, "https://whatever.test/events/#{@sample_collection}").
|
36
|
+
with(:body => @sample_event_data, :headers => { 'Accept' => 'application/json' }).
|
37
|
+
to_return(:status => 200, :body => "", :headers => { 'Content-Type'=>'application/json' })
|
38
|
+
|
39
|
+
response = endpoint.push @sample_collection, @sample_event
|
40
|
+
|
41
|
+
response.must_be_instance_of ConnectClient::EventPushResponse
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should get push response for a non sucessful error code" do
|
45
|
+
overriden_url_config = ConnectClient::Configuration.new '', '', false, 'https://whatever.test'
|
46
|
+
endpoint = ConnectClient::Http::EventEndpoint.new overriden_url_config
|
47
|
+
stub_request(:post, "https://whatever.test/events/#{@sample_collection}").
|
48
|
+
with(:body => @sample_event_data, :headers => { 'Accept' => 'application/json' }).
|
49
|
+
to_return(:status => 500, :body => "", :headers => { 'Content-Type'=>'application/json' })
|
50
|
+
|
51
|
+
response = endpoint.push @sample_collection, @sample_event
|
52
|
+
|
53
|
+
response.http_status_code.to_s.must_equal '500'
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should get a push response back when pushing batches" do
|
57
|
+
stub_request(:post, "https://api.getconnect.io/events").
|
58
|
+
with(:body => @sample_batch_data, :headers => { 'Accept' => 'application/json' }).
|
59
|
+
to_return(:status => 200, :body => @sample_events_reponse, :headers => { 'Content-Type'=>'application/json' })
|
60
|
+
|
61
|
+
response = @endpoint.push_batch @sample_batch
|
62
|
+
response.must_be_instance_of ConnectClient::EventPushResponse
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should get a push response back when pushing a single event to a collection async" do
|
66
|
+
stub_request(:post, "https://api.getconnect.io/events/#{@sample_collection}").
|
67
|
+
with(:body => @sample_event_data, :headers => { 'Accept' => 'application/json' }).
|
68
|
+
to_return(:status => 200, :body => "", :headers => { 'Content-Type'=>'application/json' })
|
69
|
+
|
70
|
+
EM.run do
|
71
|
+
@async_endpoint.push(@sample_collection, @sample_event).response_received { |response|
|
72
|
+
begin
|
73
|
+
response.must_be_instance_of ConnectClient::EventPushResponse
|
74
|
+
ensure
|
75
|
+
EM.stop
|
76
|
+
end
|
77
|
+
}.error_occured { |error|
|
78
|
+
EM.stop
|
79
|
+
raise error
|
80
|
+
}
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
it "should get push response for a non sucessful error code async" do
|
85
|
+
stub_request(:post, "https://api.getconnect.io/events/#{@sample_collection}").
|
86
|
+
with(:body => @sample_event_data, :headers => { 'Accept' => 'application/json' }).
|
87
|
+
to_return(:status => 500, :body => "", :headers => { 'Content-Type'=>'application/json' })
|
88
|
+
|
89
|
+
EM.run do
|
90
|
+
@async_endpoint.push(@sample_collection, @sample_event).response_received { |response|
|
91
|
+
begin
|
92
|
+
response.http_status_code.to_s.must_equal '500'
|
93
|
+
ensure
|
94
|
+
EM.stop
|
95
|
+
end
|
96
|
+
}.error_occured { |error|
|
97
|
+
EM.stop
|
98
|
+
raise error
|
99
|
+
}
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
it "should get a push response back when pushing batches" do
|
104
|
+
stub_request(:post, "https://api.getconnect.io/events").
|
105
|
+
with(:body => @sample_batch_data, :headers => { 'Accept' => 'application/json' }).
|
106
|
+
to_return(:status => 200, :body => @sample_events_reponse, :headers => { 'Content-Type'=>'application/json' })
|
107
|
+
|
108
|
+
EM.run do
|
109
|
+
@async_endpoint.push_batch(@sample_batch).response_received { |response|
|
110
|
+
begin
|
111
|
+
response.must_be_instance_of ConnectClient::EventPushResponse
|
112
|
+
ensure
|
113
|
+
EM.stop
|
114
|
+
end
|
115
|
+
}.error_occured { |error|
|
116
|
+
EM.stop
|
117
|
+
raise error
|
118
|
+
}
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'minitest/spec'
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'webmock/minitest'
|
4
|
+
require 'connect_client/client'
|
5
|
+
require 'connect_client/configuration'
|
6
|
+
require 'connect_client/event_push_response'
|
7
|
+
require 'securerandom'
|
8
|
+
require 'em-synchrony'
|
9
|
+
require 'em-synchrony/em-http'
|
10
|
+
|
11
|
+
describe ConnectClient::Http::EventEndpoint, "Test with syncrony defined" do
|
12
|
+
before do
|
13
|
+
@async_endpoint = ConnectClient::Http::EventEndpoint.new (ConnectClient::Configuration.new '', '', true)
|
14
|
+
@sample_event_data = { id: SecureRandom.uuid, timestamp: Time.now.utc.iso8601, name: 'sample' }
|
15
|
+
@sample_event = ConnectClient::Event.new(@sample_event_data)
|
16
|
+
@sample_events_reponse = '{"sample": [{"success": true}]}'
|
17
|
+
@sample_collection = 'sample'
|
18
|
+
@sample_batch_data = { @sample_collection.to_sym => [@sample_event_data] }
|
19
|
+
@sample_batch = { @sample_collection.to_sym => [@sample_event] }
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should get a push response back when pushing a single event to a collection" do
|
23
|
+
stub_request(:post, "https://api.getconnect.io/events/#{@sample_collection}").
|
24
|
+
with(:body => @sample_event_data).
|
25
|
+
to_return(:status => 200, :body => "", :headers => { 'Content-Type'=>'application/json' })
|
26
|
+
|
27
|
+
response = nil
|
28
|
+
EM.synchrony do
|
29
|
+
response = @async_endpoint.push @sample_collection, @sample_event
|
30
|
+
EM.stop
|
31
|
+
end
|
32
|
+
response.must_be_instance_of ConnectClient::EventPushResponse
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should get push response for a non sucessful error code" do
|
36
|
+
stub_request(:post, "https://api.getconnect.io/events/#{@sample_collection}").
|
37
|
+
with(:body => @sample_event_data).
|
38
|
+
to_return(:status => 500, :body => "", :headers => { 'Content-Type'=>'application/json' })
|
39
|
+
|
40
|
+
response = nil
|
41
|
+
EM.synchrony do
|
42
|
+
response = @async_endpoint.push @sample_collection, @sample_event
|
43
|
+
EM.stop
|
44
|
+
end
|
45
|
+
response.http_status_code.to_s.must_equal '500'
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should get a push response back when pushing batches" do
|
49
|
+
stub_request(:post, "https://api.getconnect.io/events").
|
50
|
+
with(:body => @sample_batch_data).
|
51
|
+
to_return(:status => 200, :body => @sample_events_reponse, :headers => { 'Content-Type'=>'application/json' })
|
52
|
+
|
53
|
+
response = nil
|
54
|
+
EM.synchrony do
|
55
|
+
response = @async_endpoint.push_batch @sample_batch
|
56
|
+
EM.stop
|
57
|
+
end
|
58
|
+
response.must_be_instance_of ConnectClient::EventPushResponse
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'minitest/spec'
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'connect_client/configuration'
|
4
|
+
require 'connect_client'
|
5
|
+
|
6
|
+
describe ConnectClient do
|
7
|
+
before do
|
8
|
+
ConnectClient.reset
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should throw a configuration error configuration has not been called" do
|
12
|
+
connect_event = proc { ConnectClient.push 'test', {} }.must_raise ConnectClient::UnconfiguredError
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should respond to push" do
|
16
|
+
ConnectClient.configure {}
|
17
|
+
ConnectClient.respond_to?(:push).must_equal true
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should support configuration via a block" do
|
21
|
+
ConnectClient.configure do |config|
|
22
|
+
config.must_be_instance_of ConnectClient::Configuration
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
metadata
ADDED
@@ -0,0 +1,155 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: connect_client
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Team Connect
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-07-07 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: json
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: webmock
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: eventmachine
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: em-http-request
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: em-synchrony
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
description: Ruby Connect SDK for interacting with the Connect API
|
98
|
+
email: team@getconnect.io
|
99
|
+
executables: []
|
100
|
+
extensions: []
|
101
|
+
extra_rdoc_files: []
|
102
|
+
files:
|
103
|
+
- ".gitignore"
|
104
|
+
- Gemfile
|
105
|
+
- LICENSE
|
106
|
+
- README.md
|
107
|
+
- Rakefile
|
108
|
+
- connect_client.gemspec
|
109
|
+
- data/cacert.pem
|
110
|
+
- lib/connect_client.rb
|
111
|
+
- lib/connect_client/client.rb
|
112
|
+
- lib/connect_client/configuration.rb
|
113
|
+
- lib/connect_client/event.rb
|
114
|
+
- lib/connect_client/event_push_response.rb
|
115
|
+
- lib/connect_client/http/event_endpoint.rb
|
116
|
+
- lib/connect_client/version.rb
|
117
|
+
- spec/connect_client/client_spec.rb
|
118
|
+
- spec/connect_client/configuration_spec.rb
|
119
|
+
- spec/connect_client/event_push_response_spec.rb
|
120
|
+
- spec/connect_client/event_spec.rb
|
121
|
+
- spec/connect_client/http/http_event_endpoint_spec.rb
|
122
|
+
- spec/connect_client/http/synchrony/event_endpoint_spec.rb
|
123
|
+
- spec/connect_client_spec.rb
|
124
|
+
homepage: https://github.com/getconnect/connect_client-rb
|
125
|
+
licenses:
|
126
|
+
- MIT
|
127
|
+
metadata: {}
|
128
|
+
post_install_message:
|
129
|
+
rdoc_options: []
|
130
|
+
require_paths:
|
131
|
+
- lib
|
132
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
133
|
+
requirements:
|
134
|
+
- - ">="
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: '0'
|
137
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
138
|
+
requirements:
|
139
|
+
- - ">="
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0'
|
142
|
+
requirements: []
|
143
|
+
rubyforge_project:
|
144
|
+
rubygems_version: 2.4.5
|
145
|
+
signing_key:
|
146
|
+
specification_version: 4
|
147
|
+
summary: Connect SDK
|
148
|
+
test_files:
|
149
|
+
- spec/connect_client/client_spec.rb
|
150
|
+
- spec/connect_client/configuration_spec.rb
|
151
|
+
- spec/connect_client/event_push_response_spec.rb
|
152
|
+
- spec/connect_client/event_spec.rb
|
153
|
+
- spec/connect_client/http/http_event_endpoint_spec.rb
|
154
|
+
- spec/connect_client/http/synchrony/event_endpoint_spec.rb
|
155
|
+
- spec/connect_client_spec.rb
|