hermes_messenger_of_the_gods 2.1.0 → 2.3.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.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yml +41 -0
  3. data/.gitignore +1 -0
  4. data/.ruby-version +1 -1
  5. data/CHANGELOG.md +3 -0
  6. data/Gemfile +3 -2
  7. data/README.md +1 -1
  8. data/hermes_messenger_of_the_gods.gemspec +1 -1
  9. data/lib/hermes_messenger_of_the_gods/concerns/worker.rb +3 -0
  10. data/lib/hermes_messenger_of_the_gods/endpoints/sqs.rb +68 -24
  11. data/lib/hermes_messenger_of_the_gods/testing/array_endpoint.rb +5 -1
  12. data/lib/hermes_messenger_of_the_gods/version.rb +1 -1
  13. data/packageGems.sh +1 -1
  14. data/vendor/cache/activemodel-6.1.4.1.gem +0 -0
  15. data/vendor/cache/activesupport-6.1.4.1.gem +0 -0
  16. data/vendor/cache/addressable-2.8.0.gem +0 -0
  17. data/vendor/cache/aws-eventstream-1.2.0.gem +0 -0
  18. data/vendor/cache/aws-partitions-1.509.0.gem +0 -0
  19. data/vendor/cache/aws-sdk-core-3.121.1.gem +0 -0
  20. data/vendor/cache/aws-sdk-sns-1.45.0.gem +0 -0
  21. data/vendor/cache/aws-sdk-sqs-1.44.0.gem +0 -0
  22. data/vendor/cache/aws-sigv4-1.4.0.gem +0 -0
  23. data/vendor/cache/codeclimate-test-reporter-1.0.7.gem +0 -0
  24. data/vendor/cache/concurrent-ruby-1.1.9.gem +0 -0
  25. data/vendor/cache/coveralls_reborn-0.22.0.gem +0 -0
  26. data/vendor/cache/docile-1.4.0.gem +0 -0
  27. data/vendor/cache/google-protobuf-3.18.0-universal-darwin.gem +0 -0
  28. data/vendor/cache/google-protobuf-3.18.0-x86_64-linux.gem +0 -0
  29. data/vendor/cache/googleapis-common-protos-types-1.2.0.gem +0 -0
  30. data/vendor/cache/{grpc-1.35.0-universal-darwin.gem → grpc-1.40.0-universal-darwin.gem} +0 -0
  31. data/vendor/cache/{grpc-1.35.0-x86_64-linux.gem → grpc-1.40.0-x86_64-linux.gem} +0 -0
  32. data/vendor/cache/i18n-1.8.10.gem +0 -0
  33. data/vendor/cache/minitest-5.14.4.gem +0 -0
  34. data/vendor/cache/pry-0.14.1.gem +0 -0
  35. data/vendor/cache/rexml-3.2.5.gem +0 -0
  36. data/vendor/cache/rspec-mocks-3.10.2.gem +0 -0
  37. data/vendor/cache/rspec-support-3.10.2.gem +0 -0
  38. data/vendor/cache/simplecov-0.21.2.gem +0 -0
  39. data/vendor/cache/simplecov-html-0.12.3.gem +0 -0
  40. data/vendor/cache/simplecov-lcov-0.8.0.gem +0 -0
  41. data/vendor/cache/simplecov_json_formatter-0.1.3.gem +0 -0
  42. data/vendor/cache/sync-0.5.0.gem +0 -0
  43. data/vendor/cache/term-ansicolor-1.7.1.gem +0 -0
  44. data/vendor/cache/timecop-0.9.4.gem +0 -0
  45. data/vendor/cache/tins-1.29.1.gem +0 -0
  46. data/vendor/cache/webmock-3.14.0.gem +0 -0
  47. metadata +56 -50
  48. data/.drone.yml +0 -9
  49. data/vendor/cache/activemodel-6.1.1.gem +0 -0
  50. data/vendor/cache/activesupport-6.1.1.gem +0 -0
  51. data/vendor/cache/addressable-2.7.0.gem +0 -0
  52. data/vendor/cache/aws-eventstream-1.1.0.gem +0 -0
  53. data/vendor/cache/aws-partitions-1.417.0.gem +0 -0
  54. data/vendor/cache/aws-sdk-core-3.111.2.gem +0 -0
  55. data/vendor/cache/aws-sdk-sns-1.37.0.gem +0 -0
  56. data/vendor/cache/aws-sdk-sqs-1.35.0.gem +0 -0
  57. data/vendor/cache/aws-sigv4-1.2.2.gem +0 -0
  58. data/vendor/cache/codeclimate-test-reporter-1.0.9.gem +0 -0
  59. data/vendor/cache/concurrent-ruby-1.1.8.gem +0 -0
  60. data/vendor/cache/docile-1.1.5.gem +0 -0
  61. data/vendor/cache/google-protobuf-3.14.0-universal-darwin.gem +0 -0
  62. data/vendor/cache/google-protobuf-3.14.0-x86_64-linux.gem +0 -0
  63. data/vendor/cache/googleapis-common-protos-types-1.0.5.gem +0 -0
  64. data/vendor/cache/i18n-1.8.7.gem +0 -0
  65. data/vendor/cache/json-2.5.1.gem +0 -0
  66. data/vendor/cache/minitest-5.14.3.gem +0 -0
  67. data/vendor/cache/pry-0.13.1.gem +0 -0
  68. data/vendor/cache/rexml-3.2.4.gem +0 -0
  69. data/vendor/cache/rspec-mocks-3.10.1.gem +0 -0
  70. data/vendor/cache/rspec-support-3.10.1.gem +0 -0
  71. data/vendor/cache/simplecov-0.13.0.gem +0 -0
  72. data/vendor/cache/simplecov-html-0.10.2.gem +0 -0
  73. data/vendor/cache/timecop-0.9.2.gem +0 -0
  74. data/vendor/cache/webmock-3.11.1.gem +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bb74386f4dbe4a881d0a8bbf122dc30ffc391d2ea00ae111799fef01e08cb452
4
- data.tar.gz: f4b0dea8e4daedb15b2ee0725afbb2b9d7fefb2509a73be5815e1faa12e40dcb
3
+ metadata.gz: f14fead382b4de9c274888ee9c417f5b7e500846e118b9e655af25b182164184
4
+ data.tar.gz: 47edc08f7f760c868ae6c2e2443d4f7138ce23c4b260ae9a288e2b1c5d73f4a4
5
5
  SHA512:
6
- metadata.gz: bfc97f115f564ce0d9731e093b14eb331dec9fef32567f80d0ee0986ce7d62eb5c330fe5c644900e006adf09d3dfc84ed066685b5c4b7be0b4020099030ca706
7
- data.tar.gz: 0a28e656fedf9e14b572d543b2bf8abd945800b07fa723ab84db0224bb436afc6868aced15dccebf2e5558d35a357d26d2afcb370bf6f15d22f884569a3d18ce
6
+ metadata.gz: daf9a9781dae2a7243c5b98f06d4a929526c2430d29e52a328d5a94c045a7e016c59844dbf72eed9d773da91f396e0c51efc5d1af6d307b69f2d8940af36084e
7
+ data.tar.gz: 2e6e02d9a36ce06a0df77e7b732fafbb023cad0e3b0a33e107522b7d798ed9363e655e9c96da92c5a9af2f4961cfe460f33e6771a4bea671fa7998c9d1967801
@@ -0,0 +1,41 @@
1
+ name: Test
2
+
3
+ on: push
4
+
5
+ jobs:
6
+ ruby-test:
7
+ strategy:
8
+ fail-fast: false
9
+ matrix:
10
+ rubyimage: ["getterminus/ruby-docker-images:3.0-je-20210920", "getterminus/ruby-docker-images:2.7-je-20210920",]
11
+ runs-on: ubuntu-latest
12
+ container:
13
+ image: ${{ matrix.rubyimage }}
14
+ steps:
15
+ - name: Install SSH Key
16
+ uses: webfactory/ssh-agent@v0.5.2
17
+ with:
18
+ ssh-private-key: ${{ secrets.GH_ACTIONS_SSH_PRIVATE_KEY }}
19
+
20
+ - name: Pull
21
+ uses: actions/checkout@v2
22
+ with:
23
+ path: ${{ github.workspace }}/src/github.com/${{ github.repository }}
24
+
25
+ - name: Run Test
26
+ working-directory: ${{ github.workspace }}/src/github.com/${{ github.repository }}
27
+ run: >
28
+ bash -c "
29
+ mkdir -p /coverage;
30
+ bundle --local;
31
+ COVERALLS_NOISY=true bundle exec rspec --color --format documentation;"
32
+
33
+ - name: Push Coveralls
34
+ continue-on-error: true
35
+ env:
36
+ TOKEN: ${{ secrets.COVERALLS_TOKEN }}
37
+ working-directory: ${{ github.workspace }}/src/github.com/${{ github.repository }}
38
+ run: >
39
+ bash -c "
40
+ wget -cq https://coveralls.io/coveralls-linux.tar.gz -O - | tar -xz;
41
+ ./coveralls -r $TOKEN -f /coverage/lcov.info;"
data/.gitignore CHANGED
@@ -10,3 +10,4 @@
10
10
  # rspec failure tracking
11
11
  .rspec_status
12
12
  .bundle
13
+ *.gem
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.6.1
1
+ 3.0.2
data/CHANGELOG.md ADDED
@@ -0,0 +1,3 @@
1
+ # 2.1.1
2
+
3
+ Ruby 3.0 support
data/Gemfile CHANGED
@@ -6,7 +6,8 @@ gemspec
6
6
  gem 'grpc'
7
7
 
8
8
  group :test do
9
- gem "simplecov"
10
- gem "webmock"
9
+ gem 'coveralls_reborn', '~> 0.22.0', require: false
11
10
  gem "codeclimate-test-reporter", "~> 1.0.0"
11
+ gem 'simplecov-lcov', '~> 0.8.0'
12
+ gem "webmock"
12
13
  end
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # HermesMessengerOfTheGods
2
2
  [![CircleCI](https://circleci.com/gh/GetTerminus/hermes_messenger_of_the_gods.svg?style=svg&circle-token=9f757798d1f2d06b93ee2f560c0689cc71f1f96a)](https://circleci.com/gh/GetTerminus/hermes_messenger_of_the_gods)
3
3
  [![Code Climate](https://codeclimate.com/repos/58d16440cf31c32d1000041c/badges/bf27bdcafb886574909d/gpa.svg)](https://codeclimate.com/repos/58d16440cf31c32d1000041c/feed)
4
- [![Test Coverage](https://codeclimate.com/repos/58d16440cf31c32d1000041c/badges/bf27bdcafb886574909d/coverage.svg)](https://codeclimate.com/repos/58d16440cf31c32d1000041c/coverage)
4
+ [![Coverage Status](https://coveralls.io/repos/github/GetTerminus/hermes_messenger_of_the_gods/badge.svg?t=zVNSvv)](https://coveralls.io/github/GetTerminus/hermes_messenger_of_the_gods)
5
5
  [![Issue Count](https://codeclimate.com/repos/58d16440cf31c32d1000041c/badges/bf27bdcafb886574909d/issue_count.svg)](https://codeclimate.com/repos/58d16440cf31c32d1000041c/feed)
6
6
 
7
7
  ## Installation
@@ -34,12 +34,12 @@ Gem::Specification.new do |spec|
34
34
  spec.add_dependency 'aws-sdk-sns', '~> 1.0'
35
35
  spec.add_dependency 'aws-sdk-sqs', '~> 1.0'
36
36
  spec.add_dependency 'thor'
37
+ spec.add_dependency 'rexml'
37
38
 
38
39
  spec.add_development_dependency 'bundler', '~> 2.0'
39
40
  spec.add_development_dependency 'memory_profiler'
40
41
  spec.add_development_dependency 'pry'
41
42
  spec.add_development_dependency 'rake', '~> 10.0'
42
43
  spec.add_development_dependency 'rspec', '~> 3.0'
43
- spec.add_development_dependency 'simplecov', '~> 1.14'
44
44
  spec.add_development_dependency 'timecop'
45
45
  end
@@ -32,6 +32,9 @@ module HermesMessengerOfTheGods
32
32
  def work_off
33
33
  WorkerStatusServer.start!(worker: self) if health_check_enabled?
34
34
 
35
+ trap(:TERM) { endpoint.shutdown! }
36
+ trap(:INT) { endpoint.shutdown! }
37
+
35
38
  instrument(:starting)
36
39
  self.consecutive_failures = 0
37
40
  endpoint.work_off do |job, original_message|
@@ -10,21 +10,63 @@ module HermesMessengerOfTheGods
10
10
  VISIBILITY_EXTEND_DURATION = 120
11
11
  VISIBILITY_EXTEND_FREQUENCY = 60
12
12
 
13
+ def initialize(*args)
14
+ super
15
+ @message_mux = Monitor.new
16
+ end
17
+
13
18
  def poller
14
19
  @poller ||= Aws::SQS::QueuePoller.new(endpoint)
15
20
  end
16
21
 
22
+ def inflight_messages
23
+ @message_mux.synchronize { @inflight_messages ||= [] }
24
+ end
25
+
26
+ def inflight_messages=(val)
27
+ @message_mux.synchronize { @inflight_messages = val }
28
+ end
29
+
30
+ def shutting_down?
31
+ @shutdown || false
32
+ end
33
+
34
+ # Basic Shutdown behavior:
35
+ # Allow in-progress message to finish working.
36
+ # Reset visbility timeout to all un-executed messages (from current message to end of array) to 0 so they move
37
+ # to other works
38
+ #
39
+ # Break from polling
40
+ def shutdown!
41
+ say Logger::INFO, 'Shutdown command received'
42
+ @shutdown = true
43
+ end
44
+
17
45
  def poll_options
18
46
  (options[:poll_options] || {}).merge(skip_delete: true)
19
47
  end
20
48
 
21
49
  def work_off(&blk)
22
- poller.poll(poll_options) do |messages, _stats|
23
- messages = Array.wrap(messages)
50
+ poller.before_request { |_stats| throw :stop_polling if shutting_down? }
24
51
 
25
- working_messages(messages) do
26
- completed = messages.select { |msg| work_message(msg, &blk) }
27
- poller.delete_messages(completed) unless completed.empty?
52
+ poller.poll(poll_options) do |messages, _stats|
53
+ self.inflight_messages = messages = Array.wrap(messages)
54
+
55
+ working_messages do
56
+ completion_results = messages.group_by do |msg|
57
+ # We return false if we are shutting down so the messages are not deleted.
58
+ # It is also possible that this process has already releases these SQS messages
59
+ # back in to the queue so they may be picked up by another process.
60
+ #
61
+ # Work message returns true if the messager should be considered successful
62
+ shutting_down? ? :shutdown : work_message(msg, &blk)
63
+ end
64
+
65
+ poller.delete_messages(completion_results[true]) unless completion_results.fetch(true, []).empty?
66
+ # Messages skipped due to shutdowns get their visibility set back to 0 so they restart
67
+ # normal failed jobs will be left in queue until their visibility timeout expires to indicate a backoff
68
+ set_message_visibility(completion_results[:shutdown], 0) unless completion_results.fetch(:shutdown,
69
+ []).empty?
28
70
  end
29
71
  end
30
72
  end
@@ -54,9 +96,9 @@ module HermesMessengerOfTheGods
54
96
  def has_pending_work?
55
97
  data = queue_data.attributes
56
98
 
57
- approximate_pending_messages = data["ApproximateNumberOfMessages"].to_i -
58
- data["ApproximateNumberOfMessagesNotVisible"].to_i -
59
- data["ApproximateNumberOfMessagesDelayed"].to_i
99
+ approximate_pending_messages = data['ApproximateNumberOfMessages'].to_i -
100
+ data['ApproximateNumberOfMessagesNotVisible'].to_i -
101
+ data['ApproximateNumberOfMessagesDelayed'].to_i
60
102
 
61
103
  # Just in case the math is off
62
104
  approximate_pending_messages > 0
@@ -77,38 +119,40 @@ module HermesMessengerOfTheGods
77
119
  message_body
78
120
  end
79
121
 
80
- def working_messages(messages)
81
- thread = start_visibility_update_thread(messages)
82
-
122
+ def working_messages
123
+ thread = start_visibility_update_thread
83
124
  yield
84
125
  ensure
85
126
  thread&.terminate
86
127
  end
87
128
 
88
- def start_visibility_update_thread(messages)
129
+ def start_visibility_update_thread
89
130
  start_work_time = Time.now
90
131
  Thread.new do
91
132
  loop do
92
133
  new_time = (Time.now - start_work_time) + VISIBILITY_EXTEND_DURATION
93
- queue.change_message_visibility_batch(
94
- entries: messages.collect do |message|
95
- {
96
- id: SecureRandom.uuid,
97
- receipt_handle: message.receipt_handle,
98
- visibility_timeout: new_time
99
- }
100
- end
101
- )
102
-
134
+ set_message_visibility(inflight_messages, new_time)
103
135
  sleep VISIBILITY_EXTEND_FREQUENCY
104
136
  rescue StandardError => e
105
- STDERR.puts 'Error received trying to extend visibility'
106
- STDERR.puts e.message
137
+ warn 'Error received trying to extend visibility'
138
+ warn e.message
107
139
 
108
140
  raise
109
141
  end
110
142
  end
111
143
  end
144
+
145
+ def set_message_visibility(messages, new_time)
146
+ queue.change_message_visibility_batch(
147
+ entries: messages.collect do |message|
148
+ {
149
+ id: SecureRandom.uuid,
150
+ receipt_handle: message.receipt_handle,
151
+ visibility_timeout: new_time
152
+ }
153
+ end
154
+ )
155
+ end
112
156
  end
113
157
  end
114
158
  end
@@ -15,6 +15,8 @@ module HermesMessengerOfTheGods
15
15
  end
16
16
  end
17
17
 
18
+ attr_accessor :on_receive
19
+
18
20
  def received
19
21
  self.class.received[endpoint]
20
22
  end
@@ -29,7 +31,9 @@ module HermesMessengerOfTheGods
29
31
 
30
32
  def do_transmit(msg, opts, raw_message = {})
31
33
  pub_opts = fetch_option(:publish_options, raw_message) || {}
32
- received << { message: msg, options: opts.merge(pub_opts) }
34
+ new_msg = { message: msg, options: opts.merge(pub_opts) }
35
+ received << new_msg
36
+ on_receive.call(new_msg) if on_receive
33
37
  "Recorded msg ##{self.class.received[endpoint].length} for #{endpoint}"
34
38
  end
35
39
  end
@@ -1,3 +1,3 @@
1
1
  module HermesMessengerOfTheGods
2
- VERSION = '2.1.0'
2
+ VERSION = '2.3.0'
3
3
  end
data/packageGems.sh CHANGED
@@ -4,7 +4,7 @@ docker run --rm -t -i \
4
4
  -v $HOME/.ssh:/root/.ssh \
5
5
  --mount type=bind,source="$(pwd)",target=/app \
6
6
  --workdir=/app/api \
7
- getterminus/ruby-docker-images:2.6-je-20190204 \
7
+ getterminus/ruby-docker-images:2.7-je-20210920 \
8
8
  /bin/bash -c "
9
9
  bundle config specific_platform true && \
10
10
  bundle lock --add-platform x86_64-linux && \
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hermes_messenger_of_the_gods
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Malinconico
8
8
  - Stevie Vines
9
- autorequire:
9
+ autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2021-02-23 00:00:00.000000000 Z
12
+ date: 2022-07-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activemodel
@@ -81,6 +81,20 @@ dependencies:
81
81
  - - ">="
82
82
  - !ruby/object:Gem::Version
83
83
  version: '0'
84
+ - !ruby/object:Gem::Dependency
85
+ name: rexml
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :runtime
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
84
98
  - !ruby/object:Gem::Dependency
85
99
  name: bundler
86
100
  requirement: !ruby/object:Gem::Requirement
@@ -151,20 +165,6 @@ dependencies:
151
165
  - - "~>"
152
166
  - !ruby/object:Gem::Version
153
167
  version: '3.0'
154
- - !ruby/object:Gem::Dependency
155
- name: simplecov
156
- requirement: !ruby/object:Gem::Requirement
157
- requirements:
158
- - - "~>"
159
- - !ruby/object:Gem::Version
160
- version: '1.14'
161
- type: :development
162
- prerelease: false
163
- version_requirements: !ruby/object:Gem::Requirement
164
- requirements:
165
- - - "~>"
166
- - !ruby/object:Gem::Version
167
- version: '1.14'
168
168
  - !ruby/object:Gem::Dependency
169
169
  name: timecop
170
170
  requirement: !ruby/object:Gem::Requirement
@@ -188,11 +188,12 @@ executables:
188
188
  extensions: []
189
189
  extra_rdoc_files: []
190
190
  files:
191
- - ".drone.yml"
191
+ - ".github/workflows/test.yml"
192
192
  - ".gitignore"
193
193
  - ".rspec"
194
194
  - ".ruby-version"
195
195
  - ".travis.yml"
196
+ - CHANGELOG.md
196
197
  - Gemfile
197
198
  - README.md
198
199
  - Rakefile
@@ -221,54 +222,59 @@ files:
221
222
  - lib/hermes_messenger_of_the_gods/testing/rspec_helpers.rb
222
223
  - lib/hermes_messenger_of_the_gods/version.rb
223
224
  - packageGems.sh
224
- - vendor/cache/activemodel-6.1.1.gem
225
- - vendor/cache/activesupport-6.1.1.gem
226
- - vendor/cache/addressable-2.7.0.gem
227
- - vendor/cache/aws-eventstream-1.1.0.gem
228
- - vendor/cache/aws-partitions-1.417.0.gem
229
- - vendor/cache/aws-sdk-core-3.111.2.gem
230
- - vendor/cache/aws-sdk-sns-1.37.0.gem
231
- - vendor/cache/aws-sdk-sqs-1.35.0.gem
232
- - vendor/cache/aws-sigv4-1.2.2.gem
233
- - vendor/cache/codeclimate-test-reporter-1.0.9.gem
225
+ - vendor/cache/activemodel-6.1.4.1.gem
226
+ - vendor/cache/activesupport-6.1.4.1.gem
227
+ - vendor/cache/addressable-2.8.0.gem
228
+ - vendor/cache/aws-eventstream-1.2.0.gem
229
+ - vendor/cache/aws-partitions-1.509.0.gem
230
+ - vendor/cache/aws-sdk-core-3.121.1.gem
231
+ - vendor/cache/aws-sdk-sns-1.45.0.gem
232
+ - vendor/cache/aws-sdk-sqs-1.44.0.gem
233
+ - vendor/cache/aws-sigv4-1.4.0.gem
234
+ - vendor/cache/codeclimate-test-reporter-1.0.7.gem
234
235
  - vendor/cache/coderay-1.1.3.gem
235
- - vendor/cache/concurrent-ruby-1.1.8.gem
236
+ - vendor/cache/concurrent-ruby-1.1.9.gem
237
+ - vendor/cache/coveralls_reborn-0.22.0.gem
236
238
  - vendor/cache/crack-0.4.5.gem
237
239
  - vendor/cache/diff-lcs-1.4.4.gem
238
- - vendor/cache/docile-1.1.5.gem
239
- - vendor/cache/google-protobuf-3.14.0-universal-darwin.gem
240
- - vendor/cache/google-protobuf-3.14.0-x86_64-linux.gem
241
- - vendor/cache/googleapis-common-protos-types-1.0.5.gem
242
- - vendor/cache/grpc-1.35.0-universal-darwin.gem
243
- - vendor/cache/grpc-1.35.0-x86_64-linux.gem
240
+ - vendor/cache/docile-1.4.0.gem
241
+ - vendor/cache/google-protobuf-3.18.0-universal-darwin.gem
242
+ - vendor/cache/google-protobuf-3.18.0-x86_64-linux.gem
243
+ - vendor/cache/googleapis-common-protos-types-1.2.0.gem
244
+ - vendor/cache/grpc-1.40.0-universal-darwin.gem
245
+ - vendor/cache/grpc-1.40.0-x86_64-linux.gem
244
246
  - vendor/cache/hashdiff-1.0.1.gem
245
- - vendor/cache/i18n-1.8.7.gem
247
+ - vendor/cache/i18n-1.8.10.gem
246
248
  - vendor/cache/jmespath-1.4.0.gem
247
- - vendor/cache/json-2.5.1.gem
248
249
  - vendor/cache/memory_profiler-1.0.0.gem
249
250
  - vendor/cache/method_source-1.0.0.gem
250
- - vendor/cache/minitest-5.14.3.gem
251
- - vendor/cache/pry-0.13.1.gem
251
+ - vendor/cache/minitest-5.14.4.gem
252
+ - vendor/cache/pry-0.14.1.gem
252
253
  - vendor/cache/public_suffix-4.0.6.gem
253
254
  - vendor/cache/rake-10.5.0.gem
254
- - vendor/cache/rexml-3.2.4.gem
255
+ - vendor/cache/rexml-3.2.5.gem
255
256
  - vendor/cache/rspec-3.10.0.gem
256
257
  - vendor/cache/rspec-core-3.10.1.gem
257
258
  - vendor/cache/rspec-expectations-3.10.1.gem
258
- - vendor/cache/rspec-mocks-3.10.1.gem
259
- - vendor/cache/rspec-support-3.10.1.gem
260
- - vendor/cache/simplecov-0.13.0.gem
261
- - vendor/cache/simplecov-html-0.10.2.gem
259
+ - vendor/cache/rspec-mocks-3.10.2.gem
260
+ - vendor/cache/rspec-support-3.10.2.gem
261
+ - vendor/cache/simplecov-0.21.2.gem
262
+ - vendor/cache/simplecov-html-0.12.3.gem
263
+ - vendor/cache/simplecov-lcov-0.8.0.gem
264
+ - vendor/cache/simplecov_json_formatter-0.1.3.gem
265
+ - vendor/cache/sync-0.5.0.gem
266
+ - vendor/cache/term-ansicolor-1.7.1.gem
262
267
  - vendor/cache/thor-1.1.0.gem
263
- - vendor/cache/timecop-0.9.2.gem
268
+ - vendor/cache/timecop-0.9.4.gem
269
+ - vendor/cache/tins-1.29.1.gem
264
270
  - vendor/cache/tzinfo-2.0.4.gem
265
- - vendor/cache/webmock-3.11.1.gem
271
+ - vendor/cache/webmock-3.14.0.gem
266
272
  - vendor/cache/zeitwerk-2.4.2.gem
267
- homepage:
273
+ homepage:
268
274
  licenses: []
269
275
  metadata:
270
276
  allowed_push_host: https://rubygems.org
271
- post_install_message:
277
+ post_install_message:
272
278
  rdoc_options: []
273
279
  require_paths:
274
280
  - lib
@@ -283,8 +289,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
283
289
  - !ruby/object:Gem::Version
284
290
  version: '0'
285
291
  requirements: []
286
- rubygems_version: 3.0.1
287
- signing_key:
292
+ rubygems_version: 3.2.22
293
+ signing_key:
288
294
  specification_version: 4
289
295
  summary: Create and receive messages like a god!
290
296
  test_files: []
data/.drone.yml DELETED
@@ -1,9 +0,0 @@
1
-
2
- pipeline:
3
- test:
4
- image: getterminus/ruby-ci-image:2.6-je-20190205
5
- group: test
6
- secrets: [ CODECOV_TOKEN ]
7
- commands:
8
- - bundle --local
9
- - bundle exec rspec
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file