bc-lightstep-ruby 2.3.0 → 2.4.1

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: '08b3dfd38b99345cdd590559e482f4d4d311a64a4538f613ae747ef8b2f19163'
4
- data.tar.gz: 6e6d9d623759b64a507b25e99836b73219ed77ac3fa3fe296d76bda44b5d4f9c
3
+ metadata.gz: dea96b1f8199a7f6f69a07e76849d5d1fffaa6a2875abb428766cd34717e230b
4
+ data.tar.gz: e3f42dcd9d466d5cb20b3aefe7d0a63fb18fc4e9004d534214e1cc8a67533454
5
5
  SHA512:
6
- metadata.gz: 6bfde25f2c8fd028f94b81bb0c96913da02db77d8b59fa2c14b550dcafebc2df83242d3f50983d4b532500c0736a952c5bd504f923aaee4f20a64c2659127b00
7
- data.tar.gz: a8a27fb95a8f18c1f9f88bc2aaa6e548b2338d8825ce6fbc0a24515ebe37e91d153046c78ab49f8fdd4976e8152f9ecee5d877291f6b72aabb889b3b62833d0b
6
+ metadata.gz: c6a1267f116201b2f1f40d115c0fec8cd38b5b9b954a364bb21f73aa5651b1eee1734e1a00fd3543d6b933b7a90206f1f88e90786dd60c15c1e2862e4edd8d0b
7
+ data.tar.gz: dc9124a5acfa9872af9fa5208fc858dee5041737e8c9c8c898ea618363f8f23c74d6507ffe17421fb9327734f687c2403136b30bc2afad7fccefca8b57f6e517
data/CHANGELOG.md CHANGED
@@ -2,6 +2,23 @@ Changelog for the bc-lightstep-ruby gem.
2
2
 
3
3
  ### Pending Release
4
4
 
5
+ ### 2.4.1
6
+
7
+ * Support positional argument methods when using the `Traceable` trace method
8
+
9
+ ### 2.4.0
10
+
11
+ * Add `::Bigcommerce::Lightstep::Traceable` module for tracing individual methods
12
+ * Use zeitwerk for autoloading
13
+ * Add CODEOWNERS and GitHub PR Template
14
+ * Add Ruby 3.1 support
15
+ * Drop Ruby 2.6 support
16
+ * Add CodeClimate coverage
17
+
18
+ ### 2.3.1
19
+
20
+ - Loosen faraday dependency
21
+
5
22
  ### 2.3.0
6
23
 
7
24
  - Add support for Ruby 3
@@ -113,7 +130,7 @@ Changelog for the bc-lightstep-ruby gem.
113
130
 
114
131
  - Better handling of exceptions and tagged errors
115
132
  - Lower timeouts for collector connections to reduce impact if collector is down/unreachable
116
- - Always ensure spans are reported even in the case of exceptional failure
133
+ - Always ensure spans are reported even in the case of exceptional failure
117
134
 
118
135
  ### 1.1.6
119
136
 
@@ -122,7 +139,7 @@ Changelog for the bc-lightstep-ruby gem.
122
139
  ### 1.1.5
123
140
 
124
141
  - Pin lightstep gem to 0.11.x due to backwards-incompatible change in 0.12.x
125
-
142
+
126
143
  ### 1.1.4
127
144
 
128
145
  - Add enabled setting to explicitly disable lightstep at runtime. Can be toggled with LIGHTSTEP_ENABLED ENV var.
@@ -133,7 +150,7 @@ Changelog for the bc-lightstep-ruby gem.
133
150
 
134
151
  ### 1.1.2
135
152
 
136
- - Prevent span from starting if the reporter is not yet configured, as LightStep gem does not guard this case
153
+ - Prevent span from starting if the reporter is not yet configured, as LightStep gem does not guard this case
137
154
 
138
155
  ### 1.1.1
139
156
 
@@ -142,7 +159,7 @@ Changelog for the bc-lightstep-ruby gem.
142
159
  ### 1.1.0
143
160
 
144
161
  - Add Faraday middleware for automatic tracing of outbound service calls
145
-
162
+
146
163
  ### 1.0.5
147
164
 
148
165
  - Do not send GET params in rails controller instrumentation for http.url tag
@@ -155,7 +172,7 @@ Changelog for the bc-lightstep-ruby gem.
155
172
  ### 1.0.3
156
173
 
157
174
  - Fix bug where active parent span was persisting between requests in rails controller requests
158
-
175
+
159
176
  ### 1.0.2
160
177
 
161
178
  - Add Bigcommerce::Lightstep::Rails::ControllerInstrumentation module for tracing H1 controllers in Rails
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # bc-lightstep-ruby - LightStep distributed tracing
2
2
 
3
- [![CircleCI](https://circleci.com/gh/bigcommerce/bc-lightstep-ruby/tree/main.svg?style=svg)](https://circleci.com/gh/bigcommerce/bc-lightstep-ruby/tree/main) [![Gem Version](https://badge.fury.io/rb/bc-lightstep-ruby.svg)](https://badge.fury.io/rb/bc-lightstep-ruby) [![Inline docs](http://inch-ci.org/github/bigcommerce/bc-lightstep-ruby.svg?branch=main)](http://inch-ci.org/github/bigcommerce/bc-lightstep-ruby)
3
+ [![CircleCI](https://circleci.com/gh/bigcommerce/bc-lightstep-ruby/tree/main.svg?style=svg)](https://circleci.com/gh/bigcommerce/bc-lightstep-ruby/tree/main) [![Gem Version](https://badge.fury.io/rb/bc-lightstep-ruby.svg)](https://badge.fury.io/rb/bc-lightstep-ruby) [![Inline docs](http://inch-ci.org/github/bigcommerce/bc-lightstep-ruby.svg?branch=main)](http://inch-ci.org/github/bigcommerce/bc-lightstep-ruby) [![Maintainability](https://api.codeclimate.com/v1/badges/72191c29a56368431942/maintainability)](https://codeclimate.com/github/bigcommerce/bc-lightstep-ruby/maintainability) [![Test Coverage](https://api.codeclimate.com/v1/badges/72191c29a56368431942/test_coverage)](https://codeclimate.com/github/bigcommerce/bc-lightstep-ruby/test_coverage)
4
4
 
5
- Adds [LightStep](https://lightstep.com) tracing support for Ruby. This is an extension of the
5
+ Adds [LightStep](https://lightstep.com) tracing support for Ruby. This is an extension of the
6
6
  [LightStep ruby gem](https://github.com/lightstep/lightstep-tracer-ruby) and adds extra functionality and resiliency.
7
7
 
8
8
  ## Installation
@@ -41,8 +41,8 @@ bc-lightstep-ruby can be automatically configured from these ENV vars, if you'd
41
41
  | Name | Description |
42
42
  | ---- | ----------- |
43
43
  | LIGHTSTEP_ENABLED | Flag to determine whether to broadcast spans. Defaults to (1) enabled, 0 will disable.| 1 |
44
- | LIGHTSTEP_COMPONENT_NAME | The component name to use | '' |
45
- | LIGHTSTEP_ACCESS_TOKEN | The access token to use to connect to the collector. Optional. | '' |
44
+ | LIGHTSTEP_COMPONENT_NAME | The component name to use | '' |
45
+ | LIGHTSTEP_ACCESS_TOKEN | The access token to use to connect to the collector. Optional. | '' |
46
46
  | LIGHTSTEP_HOST | Host of the collector. | `lightstep-collector.linkerd` |
47
47
  | LIGHTSTEP_PORT | Port of the collector. | `4140` |
48
48
  | LIGHTSTEP_HTTP1_ERROR_CODE | The HTTP error code to report in spans for internal errors | 500 |
@@ -86,12 +86,12 @@ or systems outside of your instrumenting control.
86
86
  ### Redis
87
87
 
88
88
  This gem will automatically detect and instrument Redis calls when they are made using the `Redis::Client` class.
89
- It will set as tags on the span the host, port, db instance, and the command (but no arguments).
89
+ It will set as tags on the span the host, port, db instance, and the command (but no arguments).
90
90
 
91
- Note that this will not record redis timings if they are a root span. This is to prevent trace spamming. You can
91
+ Note that this will not record redis timings if they are a root span. This is to prevent trace spamming. You can
92
92
  re-enable this by setting the `redis_allow_root_spans` configuration option to `true`.
93
93
 
94
- It also excludes `ping` commands, and you can provide a custom list by setting the `redis_excluded_commands`
94
+ It also excludes `ping` commands, and you can provide a custom list by setting the `redis_excluded_commands`
95
95
  configuration option to an array of commands to exclude.
96
96
 
97
97
  ### ActiveRecord and MySQL
@@ -103,7 +103,66 @@ The query will have no values - replaced with `?` - to ensure secure logging and
103
103
  Note that this will not record mysql timings if they are a root span. This is to prevent trace spamming. You can
104
104
  configure this gem to allow it via ENV, but it is not recommended.
105
105
 
106
- By default, it will also exclude `COMMIT`, `SCHEMA`, and `SHOW FULL FIELDS` queries.
106
+ By default, it will also exclude `COMMIT`, `SCHEMA`, and `SHOW FULL FIELDS` queries.
107
+
108
+ ### Individual methods
109
+
110
+ You can easily instrument individual methods with the Traceable module and `trace` method:
111
+
112
+ ```ruby
113
+ class MyService
114
+ include ::Bigcommerce::Lightstep::Traceable
115
+
116
+ trace :call, 'operation.do-my-thing' do |span:, product:, options:|
117
+ span.set_tag('product_id', product.id)
118
+ end
119
+ # or, with no block:
120
+ trace :call, 'operation.do-my-thing'
121
+
122
+ def call(product:, options:)
123
+ # ...
124
+ end
125
+ end
126
+ ```
127
+
128
+ #### Tracing Positional Argument Methods
129
+
130
+ For positional argument methods, the behavior is a bit different. In your trace call, if tracing a method with
131
+ positional arguments, you'll need to have the block arguments be positional as well:
132
+
133
+ ```ruby
134
+ class MyService
135
+ include ::Bigcommerce::Lightstep::Traceable
136
+
137
+ trace :positional, 'operation.do-my-thing' do |span, product, options|
138
+ span.set_tag('product_id', product.id)
139
+ end
140
+ def positional(product, options = {})
141
+ # ...
142
+ end
143
+ end
144
+ ```
145
+
146
+ Note that any default values in the argument will not carry over into the trace block. Secondly, with positional
147
+ argument methods that have only a _single_ hash argument, since this library has no way to detect in that case if it
148
+ is keyword-arguments or a single hash argument, the library will simply add the `span` to the hash itself, and you'll
149
+ need to adjust the trace block accordingly:
150
+
151
+ ```ruby
152
+
153
+ class MyService
154
+ include ::Bigcommerce::Lightstep::Traceable
155
+
156
+ trace :positional_single_hash_arg, 'operation.do-my-thing' do |my_hash|
157
+ my_hash[:span].set_tag('product_id', my_hash[:product_id])
158
+ end
159
+ def positional_single_hash_arg(my_hash)
160
+ # ...
161
+ end
162
+ end
163
+ ```
164
+
165
+ It is recommended for this reason - and others - to never use single-hash positional arguments in Ruby.
107
166
 
108
167
  ## RSpec
109
168
 
@@ -130,7 +189,7 @@ dynamically inject tags or alter spans as they are collected. You can configure
130
189
  Bigcommerce::Lightstep.configure do |c|
131
190
  c.interceptors.use(MyInterceptor, an_option: 123)
132
191
  # or, alternatively:
133
- c.interceptors.use(MyInterceptor.new(an_option: 123))
192
+ c.interceptors.use(MyInterceptor.new(an_option: 123))
134
193
  end
135
194
  ```
136
195
 
@@ -142,7 +201,6 @@ so don't build interceptors that require lots of processing power or that would
142
201
  Provided out of the box is an interceptor to automatically inject ENV vars into span tags. You can configure like so:
143
202
 
144
203
  ```ruby
145
-
146
204
  Bigcommerce::Lightstep.configure do |c|
147
205
  c.interceptors.use(::Bigcommerce::Lightstep::Interceptors::Env.new(
148
206
  keys: {
@@ -157,21 +215,21 @@ The `keys` argument allows you to pass a `span tag => ENV key` mapping that will
157
215
  `presets` argument comes with a bunch of preset mappings you can use rather than manually mapping them yourself.
158
216
 
159
217
  Note that this interceptor _must_ be instantiated in configuration, rather than passing the class and options,
160
- as it needs to pre-materialize the ENV values to reduce CPU usage.
218
+ as it needs to pre-materialize the ENV values to reduce CPU usage.
161
219
 
162
220
  ## License
163
221
 
164
- Copyright (c) 2018-present, BigCommerce Pty. Ltd. All rights reserved
222
+ Copyright (c) 2018-present, BigCommerce Pty. Ltd. All rights reserved
165
223
 
166
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
167
- documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
168
- rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit
224
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
225
+ documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
226
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit
169
227
  persons to whom the Software is furnished to do so, subject to the following conditions:
170
228
 
171
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
229
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
172
230
  Software.
173
231
 
174
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
175
- WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
176
- COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
232
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
233
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
234
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
177
235
  OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -31,7 +31,8 @@ Gem::Specification.new do |spec|
31
31
 
32
32
  spec.files = Dir['README.md', 'CHANGELOG.md', 'CODE_OF_CONDUCT.md', 'lib/**/*', 'bc-lightstep-ruby.gemspec']
33
33
  spec.require_paths = ['lib']
34
- spec.required_ruby_version = '>= 2.6'
34
+ spec.required_ruby_version = '>= 2.7'
35
+ spec.metadata['rubygems_mfa_required'] = 'true'
35
36
 
36
37
  spec.add_development_dependency 'activerecord', '> 4'
37
38
  spec.add_development_dependency 'bundler-audit', '~> 0.6'
@@ -39,6 +40,7 @@ Gem::Specification.new do |spec|
39
40
  spec.add_development_dependency 'rspec', '~> 3.8'
40
41
  spec.add_development_dependency 'rspec_junit_formatter', '~> 0.4'
41
42
  spec.add_development_dependency 'rubocop', '~> 1.0'
43
+ spec.add_development_dependency 'rubocop-performance', '>= 1.5'
42
44
  spec.add_development_dependency 'simplecov', '~> 0.15'
43
45
  spec.add_development_dependency 'pry', '>= 0.12'
44
46
 
@@ -47,5 +49,6 @@ Gem::Specification.new do |spec|
47
49
 
48
50
  spec.add_runtime_dependency 'activesupport', '>= 4'
49
51
  spec.add_runtime_dependency 'lightstep', '~> 0.17.0'
50
- spec.add_runtime_dependency 'faraday', ['>= 0.8', '<= 0.17.3']
52
+ spec.add_runtime_dependency 'faraday', ['>= 0.8', '< 2']
53
+ spec.add_runtime_dependency 'zeitwerk', '>= 2'
51
54
  end
@@ -41,7 +41,7 @@ module Bigcommerce
41
41
  # @return [Boolean]
42
42
  #
43
43
  def self.enabled?
44
- defined?(::ActiveRecord) && ::Bigcommerce::Lightstep.active_record && ::ActiveRecord::Base.connection_config[:adapter].to_s.downcase == 'mysql2'
44
+ defined?(::ActiveRecord) && ::Bigcommerce::Lightstep.active_record && ::ActiveRecord::Base.connection_config[:adapter].to_s.casecmp('mysql2').zero?
45
45
  rescue StandardError => e
46
46
  ::Bigcommerce::Lightstep.logger&.warn "Failed to determine ActiveRecord database adapter in bc-lightstep-ruby initializer: #{e.message}"
47
47
  false
@@ -56,7 +56,7 @@ module Bigcommerce
56
56
  return execute_without_inst(sql, name) unless ::Bigcommerce::Lightstep.active_record
57
57
 
58
58
  sanitized_sql = lightstep_sanitize_sql(sql)
59
- name = name.to_s.strip.empty? ? 'QUERY' : name
59
+ name = 'QUERY' if name.to_s.strip.empty?
60
60
 
61
61
  # we dont need to track all sql
62
62
  return execute_without_inst(sql, name) if lightstep_skip_tracing?(name, sanitized_sql)
@@ -80,7 +80,8 @@ module Bigcommerce
80
80
  @values = {}
81
81
  @keys.each do |span_key, env_key|
82
82
  value = @env.fetch(env_key.to_s, nil)
83
- value = value.nil? ? '' : value
83
+ value = '' if value.nil?
84
+
84
85
  @values[span_key.to_s.downcase.tr('-', '_').strip] = value
85
86
  end
86
87
  @values
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bigcommerce
4
+ module Lightstep
5
+ ##
6
+ # Module for adding drop-in tracing to any method. Example usage:
7
+ #
8
+ # ```ruby
9
+ # class MyService
10
+ # include ::Bigcommerce::Lightstep::Traceable
11
+ #
12
+ # trace :call, 'operation.do-my-thing' do |span, product, options|
13
+ # span.set_tag('store_id', request.store_id)
14
+ # end
15
+ # # or, with no block:
16
+ # trace :call, 'operation.do-my-thing'
17
+ #
18
+ # def call(product:, options:)
19
+ # # ...
20
+ # end
21
+ # end
22
+ # ```
23
+ #
24
+ module Traceable
25
+ def self.included(base)
26
+ base.extend ClassMethods
27
+ end
28
+
29
+ ##
30
+ # Extend the class with the tracing methods.
31
+ #
32
+ module ClassMethods
33
+ ##
34
+ # Trace the perform method for the command with the given operation name as the span name
35
+ #
36
+ # @param [Symbol] method_name The method to trace
37
+ # @param [String] operation_name The name to give the span
38
+ # @param [Hash] tags A key/value hash of tags to set on the created span
39
+ # @param [Proc] span_block A block to yield before calling perform; useful for setting tags on the outer span
40
+ #
41
+ def trace(method_name, operation_name, tags: nil, &span_block)
42
+ method_name = method_name.to_sym
43
+ mod = Module.new
44
+ mod.define_method(method_name) do |*args, &block|
45
+ tracer = ::Bigcommerce::Lightstep::Tracer.instance
46
+ tracer.start_span(operation_name) do |span|
47
+ tags&.each { |k, v| span.set_tag(k.to_s, v) }
48
+ begin
49
+ arg1 = args.first
50
+ # method has keyword argument signature (or single-hash positional argument)
51
+ if arg1.is_a?(Hash) && args.count == 1
52
+ # add span as a kwarg
53
+ span_block&.send(:call, **arg1.merge(span: span))
54
+ super(**arg1, &block)
55
+ else
56
+ # method has positional argument signature, so just add span to front
57
+ span_block&.send(:call, *([span] + args))
58
+ super(*args, &block)
59
+ end
60
+ rescue StandardError => e
61
+ span.set_tag('error', true)
62
+ span.set_tag('error.message', e.message)
63
+ span.set_tag('error.class', e.class.to_s)
64
+ raise
65
+ end
66
+ end
67
+ end
68
+ prepend(mod)
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
@@ -8,7 +8,7 @@
8
8
  # persons to whom the Software is furnished to do so, subject to the following conditions:
9
9
  #
10
10
  # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
11
- # Software.
11
+ # Software.have a
12
12
  #
13
13
  # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
14
14
  # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
@@ -17,6 +17,6 @@
17
17
  #
18
18
  module Bigcommerce
19
19
  module Lightstep
20
- VERSION = '2.3.0'
20
+ VERSION = '2.4.1'
21
21
  end
22
22
  end
@@ -18,19 +18,16 @@
18
18
  require 'lightstep'
19
19
  require 'faraday'
20
20
  require 'active_support/concern'
21
- require_relative 'lightstep/version'
22
- require_relative 'lightstep/errors'
23
- require_relative 'lightstep/interceptors/registry'
24
- require_relative 'lightstep/interceptors/context'
25
- require_relative 'lightstep/configuration'
26
- require_relative 'lightstep/tracer'
27
- require_relative 'lightstep/transport_factory'
28
- require_relative 'lightstep/transport'
29
- require_relative 'lightstep/rails_controller_instrumentation'
30
- require_relative 'lightstep/middleware/faraday'
31
- require_relative 'lightstep/active_record/tracer'
32
- require_relative 'lightstep/active_record/adapter'
33
- require_relative 'lightstep/redis/tracer'
21
+
22
+ # use Zeitwerk to lazily autoload all the files in the lib directory
23
+ require 'zeitwerk'
24
+ loader = ::Zeitwerk::Loader.new
25
+ loader.tag = File.basename(__FILE__, '.rb')
26
+ loader.inflector = ::Zeitwerk::GemInflector.new(__FILE__)
27
+ loader.ignore("#{__dir__}/lightstep/rspec.rb")
28
+ loader.ignore("#{File.dirname(__dir__)}/bc-lightstep-ruby.rb")
29
+ loader.push_dir(File.dirname(__dir__))
30
+ loader.setup
34
31
 
35
32
  ##
36
33
  # Main base module
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bc-lightstep-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0
4
+ version: 2.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shaun McCormick
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-19 00:00:00.000000000 Z
11
+ date: 2022-09-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '1.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop-performance
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '1.5'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '1.5'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: simplecov
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -185,9 +199,9 @@ dependencies:
185
199
  - - ">="
186
200
  - !ruby/object:Gem::Version
187
201
  version: '0.8'
188
- - - "<="
202
+ - - "<"
189
203
  - !ruby/object:Gem::Version
190
- version: 0.17.3
204
+ version: '2'
191
205
  type: :runtime
192
206
  prerelease: false
193
207
  version_requirements: !ruby/object:Gem::Requirement
@@ -195,9 +209,23 @@ dependencies:
195
209
  - - ">="
196
210
  - !ruby/object:Gem::Version
197
211
  version: '0.8'
198
- - - "<="
212
+ - - "<"
213
+ - !ruby/object:Gem::Version
214
+ version: '2'
215
+ - !ruby/object:Gem::Dependency
216
+ name: zeitwerk
217
+ requirement: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ version: '2'
222
+ type: :runtime
223
+ prerelease: false
224
+ version_requirements: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - ">="
199
227
  - !ruby/object:Gem::Version
200
- version: 0.17.3
228
+ version: '2'
201
229
  description: Gem for lightstep distributed tracing
202
230
  email:
203
231
  - shaun.mccormick@bigcommerce.com
@@ -223,6 +251,7 @@ files:
223
251
  - lib/bigcommerce/lightstep/redis/tracer.rb
224
252
  - lib/bigcommerce/lightstep/redis/wrapper.rb
225
253
  - lib/bigcommerce/lightstep/rspec.rb
254
+ - lib/bigcommerce/lightstep/traceable.rb
226
255
  - lib/bigcommerce/lightstep/tracer.rb
227
256
  - lib/bigcommerce/lightstep/transport.rb
228
257
  - lib/bigcommerce/lightstep/transport_factory.rb
@@ -230,7 +259,8 @@ files:
230
259
  homepage: https://github.com/bigcommerce/bc-lightstep-ruby
231
260
  licenses:
232
261
  - MIT
233
- metadata: {}
262
+ metadata:
263
+ rubygems_mfa_required: 'true'
234
264
  post_install_message:
235
265
  rdoc_options: []
236
266
  require_paths:
@@ -239,14 +269,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
239
269
  requirements:
240
270
  - - ">="
241
271
  - !ruby/object:Gem::Version
242
- version: '2.6'
272
+ version: '2.7'
243
273
  required_rubygems_version: !ruby/object:Gem::Requirement
244
274
  requirements:
245
275
  - - ">="
246
276
  - !ruby/object:Gem::Version
247
277
  version: '0'
248
278
  requirements: []
249
- rubygems_version: 3.0.9
279
+ rubygems_version: 3.3.3
250
280
  signing_key:
251
281
  specification_version: 4
252
282
  summary: Gem for lightstep distributed tracing