active_record_streams 0.1.1 → 0.1.2

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 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