active_record_streams 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 4646a534ef38e83da3774fa7c7d17e585f690a3c
4
- data.tar.gz: 844d01c83a24ed5027fcd5002719edd3adb3d24c
2
+ SHA256:
3
+ metadata.gz: 403894aa0aa3a80a42602348ec240e4b674e34d9cc0ff9ac911744e0d5aec7c7
4
+ data.tar.gz: 00bf4bcd8d65cda87cdd43cf2fe7d26673fe62589d154cf52a54de882ca1f61b
5
5
  SHA512:
6
- metadata.gz: 9221892da39f326d386458b0cebf3ff4803f041b62460e6ae2f549744d448d6ee97dba09e64a0606270866a4b4e2ff176052a621aae33c690cf14f2c64b53427
7
- data.tar.gz: b8affbac829c21998eefabfb4a5d8998e690089f17461ebfed5fe9aa9eef454bd7f1a94f0484269b43d0288575da28c7d0d563ded6081b0d83624c284c5f20b5
6
+ metadata.gz: ac59072c96a62e80f9818a7cb4bfbb696ea26063686d668fba209bc9315165e04fbd83e36e919c2ff4899d2d2c9030b4e5cee04cbc1cf0116423eedbe643dd89
7
+ data.tar.gz: 9a68fa932233a71815b77297f9be0d30466b66fd1199e3ea8be9ff84081fbab084c83ef2cfb968f71fd15730d77be774b67a281acbdfa47f59dac400ab98062e
data/CHANGELOG.md CHANGED
@@ -11,3 +11,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
11
11
  - Global hooks for ActiveRecord 4.2.10.
12
12
  - Overrides to ActiveRecord::Base, ActiveRecord::Relation, ActiveRecord::Persistence to serve callbacks.
13
13
  - SNS, Kinesis and HTTP stream types.
14
+
15
+ ## [0.1.1] - 2019-04-26
16
+ ### Added
17
+ - Error handlers for streams
18
+ - Documentation for error handlers
19
+ - Tests for error handlers
20
+ - New method to build Message from json
21
+
22
+ ## [0.1.2] - 2019-05-02
23
+ ### Added
24
+ - HTTPS targets support
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- active_record_streams (0.1.1)
4
+ active_record_streams (0.1.2)
5
5
  activerecord (~> 4.2.10)
6
6
  aws-sdk (~> 2.11.9)
7
7
 
@@ -93,4 +93,4 @@ DEPENDENCIES
93
93
  rubocop-performance (~> 1.1.0)
94
94
 
95
95
  BUNDLED WITH
96
- 1.17.1
96
+ 1.17.3
@@ -37,10 +37,10 @@ module ActiveRecordStreams
37
37
  request.body = message.json
38
38
  response = http.request(request)
39
39
  assert_response_code(response)
40
- rescue StandardError => error
41
- raise error unless @error_handler.is_a?(Proc)
40
+ rescue StandardError => e
41
+ raise e unless @error_handler.is_a?(Proc)
42
42
 
43
- @error_handler.call(self, table_name, message, error)
43
+ @error_handler.call(self, table_name, message, e)
44
44
  end
45
45
 
46
46
  private
@@ -58,7 +58,15 @@ module ActiveRecordStreams
58
58
  end
59
59
 
60
60
  def http
61
- @http ||= Net::HTTP.new(uri.host, uri.port)
61
+ @http ||= begin
62
+ http_client = Net::HTTP.new(uri.host, uri.port)
63
+ http_client.use_ssl = true if https?
64
+ http_client
65
+ end
66
+ end
67
+
68
+ def https?
69
+ uri.scheme == 'https'
62
70
  end
63
71
 
64
72
  def uri
@@ -12,7 +12,7 @@ RSpec.describe ActiveRecordStreams::Publishers::HttpStream do
12
12
 
13
13
  let(:request) { double('body=': nil) }
14
14
  let(:response) { double(code: 200) }
15
- let(:http_client) { double('body=': nil, request: response) }
15
+ let(:http_client) { double('body=': nil, 'use_ssl=': nil, request: response) }
16
16
  let(:message) { double(json: '{}') }
17
17
 
18
18
  subject do
@@ -88,5 +88,18 @@ RSpec.describe ActiveRecordStreams::Publishers::HttpStream do
88
88
  subject.publish(actual_table_name, message)
89
89
  end
90
90
  end
91
+
92
+ context 'https target' do
93
+ let(:url) { 'https://hello.world' }
94
+
95
+ it 'sends event to an https target' do
96
+ expect(http_client).to receive(:use_ssl=).with(true)
97
+
98
+ subject.publish(actual_table_name, message)
99
+
100
+ expect(request).to have_received(:body=).with(message.json)
101
+ expect(http_client).to have_received(:request).with(request)
102
+ end
103
+ end
91
104
  end
92
105
  end
@@ -37,16 +37,12 @@ module ActiveRecordStreams
37
37
  return unless (any_table? && allowed_table?(table_name)) ||
38
38
  table_name == @table_name
39
39
 
40
- client.publish(
41
- @stream_name,
42
- partition_key(table_name),
43
- message.json,
44
- @overrides
45
- )
46
- rescue StandardError => error
47
- raise error unless @error_handler.is_a?(Proc)
40
+ client.publish(@stream_name, partition_key(table_name),
41
+ message.json, @overrides)
42
+ rescue StandardError => e
43
+ raise e unless @error_handler.is_a?(Proc)
48
44
 
49
- @error_handler.call(self, table_name, message, error)
45
+ @error_handler.call(self, table_name, message, e)
50
46
  end
51
47
 
52
48
  private
@@ -35,10 +35,10 @@ module ActiveRecordStreams
35
35
  table_name == @table_name
36
36
 
37
37
  client.publish(@topic_arn, message.json, @overrides)
38
- rescue StandardError => error
39
- raise error unless @error_handler.is_a?(Proc)
38
+ rescue StandardError => e
39
+ raise e unless @error_handler.is_a?(Proc)
40
40
 
41
- @error_handler.call(self, table_name, message, error)
41
+ @error_handler.call(self, table_name, message, e)
42
42
  end
43
43
 
44
44
  private
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveRecordStreams
4
- VERSION = '0.1.1'
4
+ VERSION = '0.1.2'
5
5
  end
@@ -4,6 +4,6 @@ require_relative 'version'
4
4
 
5
5
  RSpec.describe ActiveRecordStreams::VERSION do
6
6
  it 'has a version number' do
7
- expect(subject).to eq('0.1.1')
7
+ expect(subject).to eq('0.1.2')
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_record_streams
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Advanon Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-26 00:00:00.000000000 Z
11
+ date: 2019-05-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -191,8 +191,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
191
191
  - !ruby/object:Gem::Version
192
192
  version: '0'
193
193
  requirements: []
194
- rubyforge_project:
195
- rubygems_version: 2.6.14
194
+ rubygems_version: 3.0.3
196
195
  signing_key:
197
196
  specification_version: 4
198
197
  summary: Stream ActiveRecord events via HTTP, AWS SNS or Kinesis streams