honeycomb-beeline 2.4.1 → 2.4.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
2
  SHA256:
3
- metadata.gz: b0f7fd0a816bb7817900181d110a0f95d63b3191aeca362bbe0aadbc18609d7a
4
- data.tar.gz: '0702890fe4606c12f68ee032578a8b6f896fcc17c454794f23b3f0705a762c5a'
3
+ metadata.gz: d99297b1c5e39a9a250cc298aac8282da89dc29247d2ea03567111f47001d14e
4
+ data.tar.gz: 78233609ea887df63e5890476e8bae8b62e904db968f429d22c8562eaa62204e
5
5
  SHA512:
6
- metadata.gz: 96266118829b42c517e4a20e5d42b7d6bea65d8d5d65dd750c78d9825517070f7d1c15167c1dd6d5502be585c9621229369fa036e0c84fa8482cf109b91fcad7
7
- data.tar.gz: 9a9ced838db3c0b5948555042b80a1876270e36de75c69b490c8bf55c9150b32c59aa7d2db6e61bd845d131aa83e644e8116f12f8d266957b628a3672f79de54
6
+ metadata.gz: 4745aa8377bcd8fc7665431754d5e8e7f6ec067c8cb157d6ea463b8270b46b1fd87206432e2b8b0a68cbd3465914479c31dd185d2888087173da26f0cfa276fc
7
+ data.tar.gz: 397aa8cd262415e7e1a83fb135b01e18d40a73f924a6526a7d4b5974cc9aef8e82a96906b0d6b8246cfcb45bcf474f5854f81c98766080cb29040736f3453f60
@@ -3,6 +3,10 @@
3
3
  set -ux
4
4
 
5
5
  if [[ "$BUNDLE_GEMFILE" =~ (rails_41.gemfile|rails_42.gemfile)$ ]]; then
6
+ echo "Rails 4.1 and 4.2 require an old Bundler"
6
7
  gem uninstall -v '>= 2' -ax bundler
7
8
  gem install bundler -v '< 2'
9
+ else
10
+ echo "Get the latest Bundler"
11
+ gem update bundler
8
12
  fi
data/.circleci/config.yml CHANGED
@@ -6,7 +6,6 @@ commands:
6
6
  type: string
7
7
  gemfile:
8
8
  type: string
9
- default: Gemfile
10
9
  command:
11
10
  type: string
12
11
  default: bundle exec rake test
@@ -14,16 +13,19 @@ commands:
14
13
  - checkout
15
14
  - restore_cache:
16
15
  keys:
17
- - gems-v1-<< parameters.ruby-version >>-{{ checksum "Gemfile.lock" }}
16
+ - gems-v1-<< parameters.ruby-version >>-<< parameters.gemfile >>-{{ checksum "Gemfile.lock" }}
17
+ - gems-v1-<< parameters.ruby-version >>-<< parameters.gemfile >>
18
18
  - gems-v1-<< parameters.ruby-version >>
19
- - run: gem update bundler
20
- - run: BUNDLE_GEMFILE=<< parameters.gemfile >> ./.circleci/bundler_version.sh
21
- - run: BUNDLE_GEMFILE=<< parameters.gemfile >> bundle install --jobs=4 --retry=3 --path vendor/bundle
19
+ - run: .circleci/bundler_version.sh
20
+ - run: bundle config set --local path $HOME/project/vendor/bundle
21
+ - run: bundle install --jobs=4 --retry=3
22
+ - run: bundle clean --force
23
+ - run: bundle env
22
24
  - save_cache:
23
25
  paths:
24
26
  - ./vendor/bundle
25
- key: gems-v1-<< parameters.ruby-version >>-{{ checksum "Gemfile.lock" }}
26
- - run: BUNDLE_GEMFILE=<< parameters.gemfile >> << parameters.command >>
27
+ key: gems-v1-<< parameters.ruby-version >>-<< parameters.gemfile >>-{{ checksum "Gemfile.lock" }}
28
+ - run: << parameters.command >>
27
29
 
28
30
  jobs:
29
31
  build_artifacts:
@@ -80,9 +82,12 @@ jobs:
80
82
  default: "2.6"
81
83
  docker:
82
84
  - image: circleci/ruby:<< parameters.ruby-version >>
85
+ environment:
86
+ BUNDLE_GEMFILE: ./Gemfile
83
87
  steps:
84
88
  - ruby:
85
89
  ruby-version: << parameters.ruby-version >>
90
+ gemfile: root
86
91
  command: bundle exec rake rubocop
87
92
  test:
88
93
  parameters:
@@ -92,11 +97,15 @@ jobs:
92
97
  type: string
93
98
  docker:
94
99
  - image: circleci/ruby:<< parameters.ruby-version >>
100
+ environment:
101
+ BUNDLE_GEMFILE: gemfiles/<< parameters.gemfile >>.gemfile
95
102
  steps:
96
103
  - ruby:
97
104
  ruby-version: << parameters.ruby-version >>
98
105
  gemfile: << parameters.gemfile >>
99
106
  command: bundle exec rake test
107
+ - store_test_results:
108
+ path: test/reports
100
109
 
101
110
  workflows:
102
111
  nightly:
@@ -110,49 +119,57 @@ workflows:
110
119
  jobs:
111
120
  - lint
112
121
  - test: &test
122
+ name: test-<< matrix.gemfile >>-ruby_<< matrix.ruby-version >>
113
123
  requires:
114
124
  - lint
115
125
  matrix:
116
126
  parameters:
117
127
  ruby-version: ["2.2", "2.3", "2.4", "2.5", "2.6", "2.7"]
118
128
  gemfile:
119
- - gemfiles/aws_2.gemfile
120
- - gemfiles/aws_3.gemfile
121
- - gemfiles/faraday_0.gemfile
122
- - gemfiles/faraday_1.gemfile
123
- - gemfiles/sequel4.gemfile
124
- - gemfiles/sequel5.gemfile
125
- - gemfiles/sinatra.gemfile
126
- - gemfiles/rack.gemfile
127
- - gemfiles/rails_41.gemfile
128
- - gemfiles/rails_42.gemfile
129
- - gemfiles/rails_5.gemfile
130
- - gemfiles/rails_51.gemfile
131
- - gemfiles/rails_52.gemfile
132
- - gemfiles/rails_6.gemfile
133
- - gemfiles/redis_3.gemfile
134
- - gemfiles/redis_4.gemfile
129
+ - aws_2
130
+ - aws_3
131
+ - faraday_0
132
+ - faraday_1
133
+ - sequel4
134
+ - sequel5
135
+ - sinatra
136
+ - rack
137
+ - rails_41
138
+ - rails_42
139
+ - rails_5
140
+ - rails_51
141
+ - rails_52
142
+ - rails_6
143
+ - rails_61
144
+ - redis_3
145
+ - redis_4
135
146
  exclude:
136
147
  - ruby-version: "2.2"
137
- gemfile: gemfiles/faraday_1.gemfile
148
+ gemfile: faraday_1
138
149
  - ruby-version: "2.2"
139
- gemfile: gemfiles/rails_52.gemfile
150
+ gemfile: rails_52
140
151
  - ruby-version: "2.2"
141
- gemfile: gemfiles/rails_6.gemfile
152
+ gemfile: rails_6
142
153
  - ruby-version: "2.3"
143
- gemfile: gemfiles/rails_6.gemfile
154
+ gemfile: rails_6
144
155
  - ruby-version: "2.4"
145
- gemfile: gemfiles/rails_6.gemfile
156
+ gemfile: rails_6
157
+ - ruby-version: "2.2"
158
+ gemfile: rails_61
159
+ - ruby-version: "2.3"
160
+ gemfile: rails_61
161
+ - ruby-version: "2.4"
162
+ gemfile: rails_61
146
163
  - ruby-version: "2.4"
147
- gemfile: gemfiles/rails_41.gemfile
164
+ gemfile: rails_41
148
165
  - ruby-version: "2.5"
149
- gemfile: gemfiles/rails_41.gemfile
166
+ gemfile: rails_41
150
167
  - ruby-version: "2.6"
151
- gemfile: gemfiles/rails_41.gemfile
168
+ gemfile: rails_41
152
169
  - ruby-version: "2.7"
153
- gemfile: gemfiles/rails_41.gemfile
170
+ gemfile: rails_41
154
171
  - ruby-version: "2.7"
155
- gemfile: gemfiles/rails_42.gemfile
172
+ gemfile: rails_42
156
173
  beeline:
157
174
  jobs:
158
175
  - lint:
data/.gitignore CHANGED
@@ -5,6 +5,7 @@
5
5
  /doc/
6
6
  /pkg/
7
7
  /spec/reports/
8
+ /test/reports/
8
9
  /tmp/
9
10
  .idea/
10
11
 
data/.rspec CHANGED
@@ -1,3 +1,7 @@
1
+ <% if ENV['CI'] %>
2
+ --format RspecJunitFormatter
3
+ --out test/reports/result.xml
4
+ <% end %>
1
5
  --format documentation
2
6
  --color
3
7
  --require spec_helper
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # beeline-ruby changelog
2
2
 
3
+ ## 2.4.2 2021-06-25
4
+
5
+ ### Fixes
6
+
7
+ - Update Rails middleware to get status code even on raised error. (#153) [@lirossarvet](https://github.com/lirossarvet)
8
+ - Make Rails spec consistent with Honeycomb Railtie Initialization. (#154) [@robbkidd](https://github.com/robbkidd)
9
+ - CI Improvements (#155) [@robbkidd](https://github.com/robbkidd)
10
+ - Improve performance of Redis command serialization. (#146) [@ajvondrak](https://github.com/ajvondrak)
11
+
3
12
  ## 2.4.1 2021-06-01
4
13
 
5
14
  ### Fixes
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- honeycomb-beeline (2.4.1)
4
+ honeycomb-beeline (2.4.2)
5
5
  libhoney (~> 1.14, >= 1.14.2)
6
6
 
7
7
  GEM
@@ -40,7 +40,7 @@ GEM
40
40
  http-cookie (~> 1.0)
41
41
  http-form_data (~> 2.2)
42
42
  http-parser (~> 1.2.0)
43
- http-cookie (1.0.3)
43
+ http-cookie (1.0.4)
44
44
  domain_name (~> 0.5)
45
45
  http-form_data (2.3.0)
46
46
  http-parser (1.2.3)
@@ -81,6 +81,8 @@ GEM
81
81
  diff-lcs (>= 1.2.0, < 2.0)
82
82
  rspec-support (~> 3.9.0)
83
83
  rspec-support (3.9.3)
84
+ rspec_junit_formatter (0.4.1)
85
+ rspec-core (>= 2, < 4, != 2.12.0)
84
86
  rubocop (0.68.1)
85
87
  jaro_winkler (~> 1.5.1)
86
88
  parallel (~> 1.10)
@@ -126,6 +128,7 @@ DEPENDENCIES
126
128
  pry-byebug (~> 3.6.0)
127
129
  rake
128
130
  rspec (~> 3.0)
131
+ rspec_junit_formatter
129
132
  rubocop (< 0.69)
130
133
  rubocop-performance (< 1.3.0)
131
134
  simplecov
@@ -133,4 +136,4 @@ DEPENDENCIES
133
136
  webmock
134
137
 
135
138
  BUNDLED WITH
136
- 2.1.4
139
+ 2.2.21
@@ -48,6 +48,7 @@ Gem::Specification.new do |spec|
48
48
  spec.add_development_dependency "pry-byebug", "~> 3.6.0"
49
49
  spec.add_development_dependency "rake"
50
50
  spec.add_development_dependency "rspec", "~> 3.0"
51
+ spec.add_development_dependency "rspec_junit_formatter"
51
52
  spec.add_development_dependency "rubocop", "< 0.69"
52
53
  spec.add_development_dependency "rubocop-performance", "< 1.3.0"
53
54
  spec.add_development_dependency "simplecov"
@@ -3,7 +3,7 @@
3
3
  module Honeycomb
4
4
  module Beeline
5
5
  NAME = "honeycomb-beeline".freeze
6
- VERSION = "2.4.1".freeze
6
+ VERSION = "2.4.2".freeze
7
7
  USER_AGENT_SUFFIX = "#{NAME}/#{VERSION}".freeze
8
8
  end
9
9
  end
@@ -48,11 +48,12 @@ module Honeycomb
48
48
  span.add_field("request.secure", req.ssl?)
49
49
  span.add_field("request.xhr", req.xhr?)
50
50
 
51
- status, headers, body = app.call(env)
52
-
53
- add_package_information(env, &add_field)
54
-
55
- extract_user_information(env, &add_field)
51
+ begin
52
+ status, headers, body = call_with_hook(env, span, &add_field)
53
+ ensure
54
+ add_package_information(env, &add_field)
55
+ extract_user_information(env, &add_field)
56
+ end
56
57
 
57
58
  span.add_field("response.status_code", status)
58
59
  span.add_field("response.content_type", headers["Content-Type"])
@@ -72,6 +73,12 @@ module Honeycomb
72
73
  end
73
74
  end
74
75
 
76
+ private
77
+
78
+ def call_with_hook(env, _span, &_add_field)
79
+ app.call(env)
80
+ end
81
+
75
82
  # Rack middleware
76
83
  class Middleware
77
84
  include Rack
@@ -89,6 +89,16 @@ module Honeycomb
89
89
  include Rack
90
90
  include Warden
91
91
  include Rails
92
+
93
+ def call_with_hook(env, span, &_add_field)
94
+ super
95
+ rescue StandardError => e
96
+ wrapped = ActionDispatch::ExceptionWrapper.new(nil, e)
97
+
98
+ span.add_field "response.status_code", wrapped.status_code
99
+
100
+ raise e
101
+ end
92
102
  end
93
103
  end
94
104
  end
@@ -187,16 +187,6 @@ module Honeycomb
187
187
  args.map! { "[sanitized]" }
188
188
  end
189
189
 
190
- def prettify(arg)
191
- quotes = false
192
- pretty = "".dup
193
- arg.to_s.each_char do |c|
194
- quotes ||= needs_quotes?(c)
195
- pretty << escape(c)
196
- end
197
- quotes ? "\"#{pretty}\"" : pretty
198
- end
199
-
200
190
  # This aims to replicate the algorithms used by redis-cli.
201
191
  #
202
192
  # @see https://github.com/antirez/redis/blob/0f026af185e918a9773148f6ceaa1b084662be88/src/sds.c#L940-L1067
@@ -204,54 +194,15 @@ module Honeycomb
204
194
  #
205
195
  # @see https://github.com/antirez/redis/blob/0f026af185e918a9773148f6ceaa1b084662be88/src/sds.c#L878-L907
206
196
  # The redis-cli printing algorithm
207
- def escape(char)
208
- return escape_with_backslash(char) if escape_with_backslash?(char)
209
- return escape_with_hex_codes(char) if escape_with_hex_codes?(char)
210
-
211
- char
212
- end
213
-
214
- # A lookup table for backslash-escaped characters.
215
- #
216
- # This is used by {#escape_with_backslash?} and {#escape_with_backslash}
217
- # to replicate the hard-coded `case` statements in redis-cli. As of this
218
- # writing, Redis recognizes a handful of standard C escape sequences,
219
- # like "\n" for newlines.
220
- #
221
- # Because {#prettify} will output double quoted strings if any escaping
222
- # is needed, this table must additionally consider the double-quote to be
223
- # a backslash-escaped character. For example, instead of generating
224
- #
225
- # '"hello"'
226
- #
227
- # we'll generate
228
- #
229
- # "\"hello\""
230
- #
231
- # even though redis-cli would technically recognize the single-quoted
232
- # version.
233
- #
234
- # @see https://github.com/antirez/redis/blob/0f026af185e918a9773148f6ceaa1b084662be88/src/sds.c#L888-L896
235
- # The redis-cli algorithm for outputting standard escape sequences
236
- BACKSLASHES = {
237
- "\\" => "\\\\",
238
- '"' => '\\"',
239
- "\n" => "\\n",
240
- "\r" => "\\r",
241
- "\t" => "\\t",
242
- "\a" => "\\a",
243
- "\b" => "\\b",
244
- }.freeze
245
-
246
- def escape_with_backslash?(char)
247
- BACKSLASHES.key?(char)
248
- end
249
-
250
- def escape_with_backslash(char)
251
- BACKSLASHES.fetch(char, char)
197
+ def prettify(arg)
198
+ pretty = arg.to_s.dup
199
+ pretty.encode!("UTF-8", "binary", fallback: ->(c) { hex(c) })
200
+ pretty.gsub!(NEEDS_BACKSLASH, BACKSLASH)
201
+ pretty.gsub!(NEEDS_HEX) { |c| hex(c) }
202
+ pretty =~ NEEDS_QUOTES ? "\"#{pretty}\"" : pretty
252
203
  end
253
204
 
254
- # Do we need to hex-encode this character?
205
+ # A regular expression matching characters that need to be hex-encoded.
255
206
  #
256
207
  # This replicates the C isprint() function that redis-cli uses to decide
257
208
  # whether to escape a character in hexadecimal notation, "\xhh". Any
@@ -287,18 +238,95 @@ module Honeycomb
287
238
  # escape it.
288
239
  #
289
240
  # What's more, Ruby's Regexp#=~ method will blow up if the string does
290
- # not have a valid encoding (e.g., in UTF-8). In this case, though,
291
- # {#escape_with_hex_codes} can still convert the bytes that make up the
292
- # invalid character into a hex code. So we preemptively check for
293
- # invalidly-encoded characters before testing the above match.
241
+ # not have a valid encoding (e.g., in UTF-8). We handle this case
242
+ # separately, though, using String#encode! with a :fallback option to
243
+ # hex-encode invalid UTF-8 byte sequences with {#hex}.
294
244
  #
295
245
  # @see https://ruby-doc.org/core-2.6.5/Regexp.html
296
246
  # @see https://github.com/antirez/redis/blob/0f026af185e918a9773148f6ceaa1b084662be88/src/sds.c#L878-L880
297
247
  # @see https://github.com/antirez/redis/blob/0f026af185e918a9773148f6ceaa1b084662be88/src/sds.c#L898-L901
298
248
  # @see https://www.justinweiss.com/articles/3-steps-to-fix-encoding-problems-in-ruby/
299
- def escape_with_hex_codes?(char)
300
- !char.valid_encoding? || char =~ /[^[:print:]&&[:ascii:]]/
301
- end
249
+ NEEDS_HEX = /[^[:print:]&&[:ascii:]]/.freeze
250
+
251
+ # A regular expression for characters that need to be backslash-escaped.
252
+ #
253
+ # Any match of this regexp will be substituted according to the
254
+ # {BACKSLASH} table. This includes standard C escape sequences (newlines,
255
+ # tabs, etc) as well as a couple special considerations:
256
+ #
257
+ # 1. Because {#prettify} will output double quoted strings if any
258
+ # escaping is needed, we must match double quotes (") so they'll be
259
+ # replaced by escaped quotes (\").
260
+ #
261
+ # 2. Backslashes themselves get backslash-escaped, so \ becomes \\.
262
+ # However, strings with invalid UTF-8 encoding will blow up when we
263
+ # try to use String#gsub!, so {#prettify} must first use
264
+ # String#encode! to scrub out invalid characters. It does this by
265
+ # replacing invalid bytes with hex-encoded escape sequences using
266
+ # {#hex}. This will insert sequences like \xhh, which contains a
267
+ # backslash that we *don't* want to escape.
268
+ #
269
+ # Unfortunately, this regexp can't really distinguish between
270
+ # backslashes in the original input vs backslashes resulting from the
271
+ # UTF-8 fallback. We make an effort by using a negative lookahead.
272
+ # That way, only backslashes that *aren't* followed by x + hex digit +
273
+ # hex digit will be escaped.
274
+ NEEDS_BACKSLASH = /["\n\r\t\a\b]|\\(?!x\h\h)/.freeze
275
+
276
+ # A lookup table for backslash-escaped characters.
277
+ #
278
+ # This is used by {#prettify} to replicate the hard-coded `case`
279
+ # statements in redis-cli. As of this writing, Redis recognizes a handful
280
+ # of standard C escape sequences, like "\n" for newlines.
281
+ #
282
+ # Because {#prettify} will output double quoted strings if any escaping
283
+ # is needed, this table must additionally consider the double-quote to be
284
+ # a backslash-escaped character. For example, instead of generating
285
+ #
286
+ # '"hello"'
287
+ #
288
+ # we'll generate
289
+ #
290
+ # "\"hello\""
291
+ #
292
+ # even though redis-cli would technically recognize the single-quoted
293
+ # version.
294
+ #
295
+ # @see https://github.com/antirez/redis/blob/0f026af185e918a9773148f6ceaa1b084662be88/src/sds.c#L888-L896
296
+ # The redis-cli algorithm for outputting standard escape sequences
297
+ BACKSLASH = {
298
+ "\\" => "\\\\",
299
+ '"' => '\\"',
300
+ "\n" => "\\n",
301
+ "\r" => "\\r",
302
+ "\t" => "\\t",
303
+ "\a" => "\\a",
304
+ "\b" => "\\b",
305
+ }.freeze
306
+
307
+ # If the final escaped string needs quotes, it will match this regexp.
308
+ #
309
+ # The overall string returned by {#prettify} should only be quoted if at
310
+ # least one of the following holds:
311
+ #
312
+ # 1. The string contains an escape sequence, broadly demarcated by a
313
+ # backslash. This includes standard escape sequences like "\n" and
314
+ # "\t" as well as hex-encoded bytes using the "\x" escape sequence.
315
+ # Since {#prettify} uses double quotes on its output string, we must
316
+ # also force quotes if the string itself contains a literal
317
+ # double quote. This double quote behavior is handled tacitly by the
318
+ # {NEEDS_BACKSLASH} + {BACKSLASH} replacement.
319
+ #
320
+ # 2. The string contains a single quote. Since redis-cli recognizes
321
+ # single-quoted strings, we want to wrap the {#prettify} output in
322
+ # double quotes so that the literal single quote character isn't
323
+ # mistaken as the delimiter of a new string.
324
+ #
325
+ # 3. The string contains any whitespace characters. If the {#prettify}
326
+ # output weren't wrapped in quotes, whitespace would act as a
327
+ # separator between arguments to the Redis command. To group things
328
+ # together, we need to quote the string.
329
+ NEEDS_QUOTES = /[\\'\s]/.freeze
302
330
 
303
331
  # Hex-encodes a (presumably non-printable or non-ASCII) character.
304
332
  #
@@ -326,38 +354,9 @@ module Honeycomb
326
354
  # @see https://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap07.html
327
355
  # @see https://github.com/antirez/redis/blob/0f026af185e918a9773148f6ceaa1b084662be88/src/sds.c#L878-L880
328
356
  # @see https://github.com/antirez/redis/blob/0f026af185e918a9773148f6ceaa1b084662be88/src/sds.c#L898-L901
329
- def escape_with_hex_codes(char)
357
+ def hex(char)
330
358
  char.bytes.map { |b| Kernel.format("\\x%02x", b) }.join
331
359
  end
332
-
333
- def escape?(char)
334
- escape_with_backslash?(char) || escape_with_hex_codes?(char)
335
- end
336
-
337
- # Should this character cause {#prettify} to wrap its output in quotes?
338
- #
339
- # The overall string returned by {#prettify} should only be quoted if at
340
- # least one of the following holds:
341
- #
342
- # 1. The string contains a character that needs to be escaped. This
343
- # includes standard backslash escape sequences (like "\n" and "\t") as
344
- # well as hex-encoded bytes using the "\x" escape sequence. Since
345
- # {#prettify} uses double quotes on its output string, we must also
346
- # force quotes if the string itself contains a literal double quote.
347
- # This double quote behavior is handled tacitly by {BACKSLASHES}.
348
- #
349
- # 2. The string contains a single quote. Since redis-cli recognizes
350
- # single-quoted strings, we want to wrap the {#prettify} output in
351
- # double quotes so that the literal single quote character isn't
352
- # mistaken as the delimiter of a new string.
353
- #
354
- # 3. The string contains any whitespace characters. If the {#prettify}
355
- # output weren't wrapped in quotes, whitespace would act as a
356
- # separator between arguments to the Redis command. To group things
357
- # together, we need to quote the string.
358
- def needs_quotes?(char)
359
- escape?(char) || char == "'" || char =~ /\s/
360
- end
361
360
  end
362
361
  end
363
362
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: honeycomb-beeline
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.1
4
+ version: 2.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Holman
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-06-01 00:00:00.000000000 Z
11
+ date: 2021-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: libhoney
@@ -156,6 +156,20 @@ dependencies:
156
156
  - - "~>"
157
157
  - !ruby/object:Gem::Version
158
158
  version: '3.0'
159
+ - !ruby/object:Gem::Dependency
160
+ name: rspec_junit_formatter
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
159
173
  - !ruby/object:Gem::Dependency
160
174
  name: rubocop
161
175
  requirement: !ruby/object:Gem::Requirement