libhoney 1.14.7 → 1.18.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9182c33aa64ffec7a225133c5df600c7f0401998d532e425104b0a51de285cd6
4
- data.tar.gz: e6fd1dfcef41b5dd14eae7daab692312b0854a399339fc8b26a78d27edccb2e1
3
+ metadata.gz: 33a687ebf8ae87e69cf6a53b50c4e2cd926f9938af709635d42a209ec2e6c93e
4
+ data.tar.gz: fd3f558a15f872c9f63fc6451722c3e9e21b7cba5ebe8d7816ec0cb08064318b
5
5
  SHA512:
6
- metadata.gz: 9acc33d465d4a1fa5c9fef63092dd8dd09feabf501831dcb5c7ee689f6ec65c54bb82ded4dd6c33459a00e237a9c2a310035d96f899d4e89fce82698d4e0722b
7
- data.tar.gz: bbde9aa1b89a0bf1c7a684e6c5299416bcde24597fda6f12a9df5f18bba9eddbda8f3b5cbef49d9bf67883b817d82f87c463e0901b9221ff3577255b2d8f605a
6
+ metadata.gz: 36efc5d9734e125cd141e21dd60edbc6cf23350334bf431dead264c375dfd11b54bcf286f5509d5e97633ee4ce2d4fc689ebf5033d472237d5b6e7e2f2d0cb81
7
+ data.tar.gz: 5d5147a6e9f3fc1055a94932943c5915c99f43ad550d4dd5f20955d2dad023c41a1939e6f8037b38856375a10dcdc51557b06e3d56b454296a1596c7dd62b74c
@@ -1,67 +1,63 @@
1
- version: 2.0
1
+ version: 2.1
2
2
 
3
- test_steps: &test_steps
4
- - checkout
5
- - run:
6
- name: Force Bundler Version
7
- command: |
8
- sudo gem update --system
9
- echo 'export BUNDLER_VERSION=$(cat Gemfile.lock | tail -1 | tr -d " ")' >> $BASH_ENV
10
- source $BASH_ENV
11
- gem install bundler
12
- - restore_cache:
13
- keys:
14
- - v1-dependencies-{{ checksum "Gemfile.lock" }}
15
- # fallback to using the latest cache if no exact match is found
16
- - v1-dependencies-
17
- - run:
18
- name: install dependencies
19
- command: |
20
- bundle install --jobs=4 --retry=3 --path vendor/bundle
21
- - save_cache:
22
- paths:
23
- - ./vendor/bundle
24
- key: v1-dependencies-{{ checksum "Gemfile.lock" }}
25
- - run:
26
- name: run rubocop
27
- command: bundle exec rake rubocop
28
- - run:
29
- name: run tests
30
- command: bundle exec rake test
3
+ # YAML Anchors to reduce copypasta
31
4
 
32
- # required as all of the jobs need to have a tag filter for some reason
33
- tag_filters: &tag_filters
5
+ # This is necessary for job to run when a tag is created
6
+ filters_always: &filters_always
34
7
  filters:
35
- tags:
36
- only: /.*/
8
+ tags:
9
+ only: /.*/
37
10
 
38
- jobs:
39
- ruby-2.3:
40
- docker:
41
- - image: circleci/ruby:2.3
42
- steps: *test_steps
43
- ruby-2.4:
44
- docker:
45
- - image: circleci/ruby:2.4
46
- steps: *test_steps
47
- ruby-2.5:
48
- docker:
49
- - image: circleci/ruby:2.5
50
- steps: *test_steps
51
- ruby-2.6:
52
- docker:
53
- - image: circleci/ruby:2.6
54
- steps: *test_steps
55
- ruby-2.7:
11
+ # Restrict running to only be on tags starting with vNNNN
12
+ filters_publish: &filters_publish
13
+ filters:
14
+ tags:
15
+ only: /^v[0-9].*/
16
+ branches:
17
+ ignore: /.*/
18
+
19
+ matrix_rubyversions: &matrix_rubyversions
20
+ matrix:
21
+ parameters:
22
+ rubyversion: ["2.2", "2.3", "2.4", "2.5", "2.6", "2.7"]
23
+
24
+ # Default version of ruby to use for lint and publishing
25
+ default_rubyversion: &default_rubyversion "2.7"
26
+
27
+ executors:
28
+ ruby:
29
+ parameters:
30
+ rubyversion:
31
+ type: string
32
+ default: *default_rubyversion
56
33
  docker:
57
- - image: circleci/ruby:2.7
58
- steps: *test_steps
59
- publish:
34
+ - image: circleci/ruby:<< parameters.rubyversion >>
35
+ github:
60
36
  docker:
61
- # Just randomly pick one recent ruby version
62
- - image: circleci/ruby:2.7
63
- working_directory: ~/repo
37
+ - image: cibuilds/github:0.13.0
38
+
39
+ commands:
40
+ publish_github:
41
+ steps:
42
+ - attach_workspace:
43
+ at: ~/
44
+ - run:
45
+ name: "Artifacts being published"
46
+ command: |
47
+ echo "about to publish to tag ${CIRCLE_TAG}"
48
+ ls -l ~/artifacts/*
49
+ - run:
50
+ name: "GHR Draft"
51
+ command: ghr -draft -n ${CIRCLE_TAG} -t ${GITHUB_TOKEN} -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} -c ${CIRCLE_SHA1} ${CIRCLE_TAG} ~/artifacts
52
+ publish_rubygems:
64
53
  steps:
54
+ - attach_workspace:
55
+ at: ~/
56
+ - run:
57
+ name: "Artifacts being published"
58
+ command: |
59
+ echo "about to publish to tag ${CIRCLE_TAG}"
60
+ ls -l ~/artifacts/*
65
61
  - checkout
66
62
  - run:
67
63
  name: Setup Rubygems
@@ -69,11 +65,66 @@ jobs:
69
65
  - run:
70
66
  name: Publish to Rubygems
71
67
  command: |
72
- gem build libhoney.gemspec
73
- gem push "libhoney-$(git describe --tags | cut -d "v" -f 2).gem"
68
+ gem push ~/artifacts/*.gem
69
+
70
+ jobs:
71
+ test:
72
+ parameters:
73
+ rubyversion:
74
+ type: string
75
+ default: *default_rubyversion
76
+ executor:
77
+ name: ruby
78
+ rubyversion: "<< parameters.rubyversion >>"
79
+ steps:
80
+ - checkout
81
+ - restore_cache:
82
+ keys:
83
+ - v1-dependencies-{{ checksum "libhoney.gemspec" }}
84
+ # fallback to using the latest cache if no exact match is found
85
+ - v1-dependencies-
86
+ - run:
87
+ name: install dependencies
88
+ command: |
89
+ bundle install --jobs=4 --retry=3 --path vendor/bundle
90
+ - save_cache:
91
+ paths:
92
+ - ./vendor/bundle
93
+ key: v1-dependencies-{{ checksum "libhoney.gemspec" }}
94
+ - run:
95
+ name: run rubocop
96
+ command: bundle exec rake rubocop
97
+ - run:
98
+ name: run tests
99
+ command: bundle exec rake test
100
+
101
+ build_artifacts:
102
+ executor:
103
+ name: ruby
104
+ steps:
105
+ - checkout
106
+ - run: mkdir -p ~/artifacts
107
+ - run: gem build libhoney.gemspec
108
+ - run: cp libhoney-*.gem ~/artifacts/
109
+ - persist_to_workspace:
110
+ root: ~/
111
+ paths:
112
+ - artifacts
113
+ - store_artifacts:
114
+ path: ~/artifacts
115
+
116
+ publish_github:
117
+ executor: github
118
+ steps:
119
+ - publish_github
120
+
121
+ publish_rubygems:
122
+ executor:
123
+ name: ruby
124
+ steps:
125
+ - publish_rubygems
74
126
 
75
127
  workflows:
76
- version: 2
77
128
  nightly:
78
129
  triggers:
79
130
  - schedule:
@@ -83,27 +134,24 @@ workflows:
83
134
  only:
84
135
  - main
85
136
  jobs:
86
- - ruby-2.3: *tag_filters
87
- - ruby-2.4: *tag_filters
88
- - ruby-2.5: *tag_filters
89
- - ruby-2.6: *tag_filters
90
- - ruby-2.7: *tag_filters
137
+ - test:
138
+ <<: *matrix_rubyversions
91
139
  build:
92
140
  jobs:
93
- - ruby-2.3: *tag_filters
94
- - ruby-2.4: *tag_filters
95
- - ruby-2.5: *tag_filters
96
- - ruby-2.6: *tag_filters
97
- - ruby-2.7: *tag_filters
98
- - publish:
141
+ - test:
142
+ <<: *filters_always
143
+ <<: *matrix_rubyversions
144
+ - build_artifacts:
145
+ <<: *filters_always
99
146
  requires:
100
- - ruby-2.3
101
- - ruby-2.4
102
- - ruby-2.5
103
- - ruby-2.6
104
- - ruby-2.7
105
- filters:
106
- tags:
107
- only: /^v.*/
108
- branches:
109
- ignore: /.*/
147
+ - test
148
+ - publish_github:
149
+ <<: *filters_publish
150
+ context: Honeycomb Secrets for Public Repos
151
+ requires:
152
+ - build_artifacts
153
+ - publish_rubygems:
154
+ <<: *filters_publish
155
+ context: Honeycomb Secrets for Public Repos
156
+ requires:
157
+ - build_artifacts
@@ -5,7 +5,7 @@ indent_style = space
5
5
  indent_size = 2
6
6
  charset = utf-8
7
7
  trim_trailing_whitespace = true
8
- insert_final_newline = false
8
+ insert_final_newline = true
9
9
 
10
10
  [*.md]
11
11
  indent_size = 4
data/.gitignore CHANGED
@@ -52,3 +52,5 @@ build-iPhoneSimulator/
52
52
  # vim stuff
53
53
  *.swp
54
54
  *.swo
55
+
56
+ Gemfile.lock
@@ -16,6 +16,7 @@ Metrics/BlockLength:
16
16
  Metrics/ClassLength:
17
17
  Max: 200
18
18
  Exclude:
19
+ - lib/libhoney/transmission.rb # Should this remain so large?
19
20
  - test/*
20
21
 
21
22
  Metrics/MethodLength:
@@ -0,0 +1,55 @@
1
+ # libhoney-rb changelog
2
+
3
+ ## changes pending release
4
+
5
+ ## 1.18.0
6
+
7
+ ### Improvements
8
+
9
+ - replace HTTP client library to reduce external dependencies (#81)
10
+
11
+ ### Deprecations
12
+
13
+ - `Libhoney::Client.new(proxy_config: _)`: the `proxy_config` parameter for client
14
+ creation will no longer accept an Array in the next major version. The recommended
15
+ way to configure the client for operation behind forwarding web proxies is to set
16
+ http/https/no_proxy environment variables appropriately.
17
+
18
+ ## 1.17.0
19
+
20
+ ### Fixes:
21
+
22
+ - Allow Ruby 3.0.0 (removes overly-pessimistic exception) (#79)
23
+
24
+ ## 1.16.1
25
+
26
+ ### Fixes:
27
+
28
+ - Fix closing down the client when no threads have been started. (#74 & #76)
29
+
30
+ ## 1.16.0
31
+
32
+ ### Fixes:
33
+
34
+ - Don't moneypatch Class (#70)
35
+
36
+ ### Maintenance:
37
+
38
+ - Add lockfile to gitignore (#71)
39
+
40
+ ## 1.15.0
41
+
42
+ ### Improvements:
43
+
44
+ - Do not attempt to send invalid events (#67)
45
+
46
+ ### Maintenance:
47
+
48
+ - Modernize circle, include github publishing (#64)
49
+ - Update .editorconfig to add new lines to end of files (#68)
50
+
51
+ ### Misc
52
+
53
+ - Added CHANGELOG.md
54
+ - Updates to CI configuration and documentation
55
+ - Updated version management.
data/README.md CHANGED
@@ -4,8 +4,8 @@ Ruby gem for sending events to [Honeycomb](https://www.honeycomb.io), a service
4
4
 
5
5
  Requires Ruby 2.2 or greater.
6
6
 
7
- - [Usage and Examples](https://docs.honeycomb.io/sdk/ruby/)
8
- - [API Reference](https://www.rubydoc.info/gems/libhoney)
7
+ - [Usage and Examples](https://docs.honeycomb.io/sdk/ruby/)
8
+ - [API Reference](https://www.rubydoc.info/gems/libhoney)
9
9
 
10
10
  For tracing support and automatic instrumentation of Rails, Sinatra, Rack, ActiveRecord, and other frameworks, check out our [Beeline for Ruby](https://github.com/honeycombio/beeline-ruby).
11
11
 
@@ -20,8 +20,11 @@ All contributions will be released under the Apache License 2.0.
20
20
  ### Releasing a new version
21
21
 
22
22
  CircleCI will automatically upload tagged releases to Rubygems. To release a new
23
- version, run
23
+ version, update the version using `bump`.
24
+
24
25
  ```
25
- bump patch --tag # Or bump minor --tag, etc.
26
- git push --follow-tags
26
+ bump patch # Or bump minor, etc.
27
27
  ```
28
+
29
+ Then, after the version change has been merged into `main`, follow our usual instructions
30
+ for tagging and updating the github release.
@@ -1,31 +1,10 @@
1
+ require 'addressable/uri'
1
2
  require 'time'
2
3
  require 'json'
3
- require 'http'
4
+ require 'forwardable'
4
5
 
5
6
  require 'libhoney/null_transmission'
6
7
 
7
- # Define a few additions that proxy access through Client's builder. Makes Client much tighter.
8
- class Class
9
- def builder_attr_accessor(*args)
10
- args.each do |arg|
11
- class_eval("def #{arg};@builder.#{arg};end", __FILE__, __LINE__)
12
- class_eval("def #{arg}=(val);@builder.#{arg}=val;end", __FILE__, __LINE__)
13
- end
14
- end
15
-
16
- def builder_attr_reader(*args)
17
- args.each do |arg|
18
- class_eval("def #{arg};@builder.#{arg};end", __FILE__, __LINE__)
19
- end
20
- end
21
-
22
- def builder_attr_writer(*args)
23
- args.each do |arg|
24
- class_eval("def #{arg}=(val);@builder.#{arg}=val;end", __FILE__, __LINE__)
25
- end
26
- end
27
- end
28
-
29
8
  module Libhoney
30
9
  ##
31
10
  # This is a library to allow you to send events to Honeycomb from within your
@@ -52,6 +31,8 @@ module Libhoney
52
31
  # evt.send
53
32
  #
54
33
  class Client
34
+ extend Forwardable
35
+
55
36
  API_HOST = 'https://api.honeycomb.io/'.freeze
56
37
 
57
38
  # Instantiates libhoney and prepares it to send events to Honeycomb.
@@ -70,6 +51,13 @@ module Libhoney
70
51
  # @param block_on_responses [Boolean] if true, block if there is no thread reading from the response queue
71
52
  # @param pending_work_capacity [Fixnum] defaults to 1000. If the queue of
72
53
  # pending events exceeds 1000, this client will start dropping events.
54
+ # @param proxy_config [String, Array, nil] proxy connection information
55
+ # nil: (default, recommended) connection proxying will be determined from any http_proxy, https_proxy, and no_proxy environment
56
+ # variables set for the process.
57
+ # String: the value must be the URI for connecting to a forwarding web proxy. Must be parsable by stdlib URI.
58
+ # Array: (deprecated, removal in v2.0) the value must have one and at most four elements: e.g. ['host', port, 'username', 'password'].
59
+ # The assumption is that the TCP connection will be tunneled via HTTP, so the assumed scheme is 'http://'
60
+ # 'host' is required. 'port' is optional (default:80), unless a 'username' is included. 'password' is optional.
73
61
  # rubocop:disable Metrics/ParameterLists
74
62
  def initialize(writekey: nil,
75
63
  dataset: nil,
@@ -89,7 +77,7 @@ module Libhoney
89
77
  raise Exception, 'libhoney: max_concurrent_batches must be greater than 0' if max_concurrent_batches < 1
90
78
  raise Exception, 'libhoney: sample rate must be greater than 0' if sample_rate < 1
91
79
 
92
- unless Gem::Dependency.new('ruby', '~> 2.2').match?('ruby', RUBY_VERSION)
80
+ unless Gem::Dependency.new('ruby', '>= 2.2').match?('ruby', RUBY_VERSION)
93
81
  raise Exception, 'libhoney: Ruby versions < 2.2 are not supported'
94
82
  end
95
83
 
@@ -121,22 +109,15 @@ module Libhoney
121
109
  @pending_work_capacity = pending_work_capacity
122
110
  @responses = SizedQueue.new(2 * @pending_work_capacity)
123
111
  @lock = Mutex.new
124
- @proxy_config = proxy_config
112
+ @proxy_config = parse_proxy_config(proxy_config)
125
113
  end
126
114
 
127
- builder_attr_accessor :writekey, :dataset, :sample_rate, :api_host
128
-
129
115
  attr_reader :block_on_send, :block_on_responses, :max_batch_size,
130
116
  :send_frequency, :max_concurrent_batches,
131
117
  :pending_work_capacity, :responses
132
118
 
133
- def event
134
- @builder.event
135
- end
136
-
137
- def builder(fields = {}, dyn_fields = {})
138
- @builder.builder(fields, dyn_fields)
139
- end
119
+ def_delegators :@builder, :event, :writekey, :writekey=, :dataset, :dataset=,
120
+ :sample_rate, :sample_rate=, :api_host, :api_host=, :builder
140
121
 
141
122
  # Nuke the queue and wait for inflight requests to complete before returning.
142
123
  # If you set drain=false, all queued requests will be dropped on the floor.
@@ -250,5 +231,35 @@ module Libhoney
250
231
  def should_drop(sample_rate)
251
232
  rand(1..sample_rate) != 1
252
233
  end
234
+
235
+ private
236
+
237
+ # @api private
238
+ def parse_proxy_config(config)
239
+ case config
240
+ when nil then nil
241
+ when String
242
+ URI.parse(config)
243
+ when Array
244
+ warn <<-WARNING
245
+ DEPRECATION WARNING: #{self.class.name} the proxy_config parameter will require a String value, not an Array in libhoney 2.0.
246
+ To resolve:
247
+ + recommended: set http/https_proxy environment variables, which take precedence over any option set here, then remove proxy_config parameter from client initialization
248
+ + set proxy_config to a String containing the forwarding proxy URI (only used if http/https_proxy are not set)
249
+ WARNING
250
+ host, port, user, password = config
251
+
252
+ parsed_config = URI::HTTP.build(host: host, port: port).tap do |uri|
253
+ uri.userinfo = "#{user}:#{password}" if user
254
+ end
255
+ redacted_config = parsed_config.dup.tap do |uri|
256
+ uri.password = 'REDACTED' unless uri.password.nil? || uri.password.empty?
257
+ end
258
+ warn "The array config given has been assumed to mean: #{redacted_config}"
259
+ parsed_config
260
+ end
261
+ rescue URI::Error => e
262
+ warn "#{self.class.name}: unable to parse proxy_config. Detail: #{e.class}: #{e.message}"
263
+ end
253
264
  end
254
265
  end
@@ -1,7 +1,15 @@
1
- require 'http'
1
+ require 'http/response/status'
2
2
 
3
3
  module Libhoney
4
4
  class Response
5
+ # The response status from HTTP calls to a Honeycomb API endpoint.
6
+ #
7
+ # For most of the life of this client, this response object has been
8
+ # a pass-through to the underlying HTTP library's response object.
9
+ # This class in the Libhoney namespace now owns the interface for
10
+ # API responses.
11
+ class Status < HTTP::Response::Status; end
12
+
5
13
  attr_accessor :duration, :status_code, :metadata, :error
6
14
 
7
15
  def initialize(duration: 0,
@@ -9,7 +17,7 @@ module Libhoney
9
17
  metadata: nil,
10
18
  error: nil)
11
19
  @duration = duration
12
- @status_code = HTTP::Response::Status.new(status_code)
20
+ @status_code = Status.new(status_code)
13
21
  @metadata = metadata
14
22
  @error = error
15
23
  end
@@ -1,3 +1,5 @@
1
+ require 'addressable/uri'
2
+ require 'excon'
1
3
  require 'json'
2
4
  require 'timeout'
3
5
  require 'libhoney/response'
@@ -40,6 +42,8 @@ module Libhoney
40
42
  end
41
43
 
42
44
  def add(event)
45
+ return unless event_valid(event)
46
+
43
47
  begin
44
48
  @batch_queue.enq(event, !@block_on_send)
45
49
  rescue ThreadError
@@ -49,6 +53,26 @@ module Libhoney
49
53
  ensure_threads_running
50
54
  end
51
55
 
56
+ def event_valid(event)
57
+ invalid = []
58
+ invalid.push('api host') if event.api_host.nil? || event.api_host.empty?
59
+ invalid.push('write key') if event.writekey.nil? || event.writekey.empty?
60
+ invalid.push('dataset') if event.dataset.nil? || event.dataset.empty?
61
+
62
+ unless invalid.empty?
63
+ e = StandardError.new("#{self.class.name}: nil or empty required fields (#{invalid.join(', ')})"\
64
+ '. Will not attempt to send.')
65
+ Response.new(error: e).tap do |error_response|
66
+ error_response.metadata = event.metadata
67
+ enqueue_response(error_response)
68
+ end
69
+
70
+ return false
71
+ end
72
+
73
+ true
74
+ end
75
+
52
76
  def send_loop
53
77
  http_clients = build_http_clients
54
78
 
@@ -71,7 +95,7 @@ module Libhoney
71
95
  }
72
96
 
73
97
  response = http.post(
74
- "/1/batch/#{Addressable::URI.escape(dataset)}",
98
+ path: "/1/batch/#{Addressable::URI.escape(dataset)}",
75
99
  body: body,
76
100
  headers: headers
77
101
  )
@@ -81,6 +105,8 @@ module Libhoney
81
105
  # because this is effectively the top-level exception handler for the
82
106
  # sender threads, and we don't want those threads to die (leaving
83
107
  # nothing consuming the queue).
108
+ warn "#{self.class.name}: 💥 " + e.message if %w[debug trace].include?(ENV['LOG_LEVEL'])
109
+ warn e.backtrace.join("\n").to_s if ['trace'].include?(ENV['LOG_LEVEL'])
84
110
  begin
85
111
  batch.each do |event|
86
112
  # nil events in the batch should already have had an error
@@ -114,7 +140,7 @@ module Libhoney
114
140
  end
115
141
 
116
142
  @batch_queue.enq(nil)
117
- @batch_thread.join
143
+ @batch_thread.join unless @batch_thread.nil?
118
144
 
119
145
  # send @threads.length number of nils so each thread will fall out of send_loop
120
146
  @threads.length.times { @send_queue << nil }
@@ -165,7 +191,7 @@ module Libhoney
165
191
 
166
192
  def process_response(http_response, before, batch)
167
193
  index = 0
168
- http_response.parse.each do |event|
194
+ JSON.parse(http_response.body).each do |event|
169
195
  index += 1 while batch[index].nil? && index < batch.size
170
196
  break unless (batched_event = batch[index])
171
197
 
@@ -234,14 +260,19 @@ module Libhoney
234
260
 
235
261
  def build_http_clients
236
262
  Hash.new do |h, api_host|
237
- client = HTTP.timeout(connect: @send_timeout, write: @send_timeout, read: @send_timeout)
238
- .persistent(api_host)
239
- .headers(
240
- 'User-Agent' => @user_agent,
241
- 'Content-Type' => 'application/json'
242
- )
243
-
244
- client = client.via(*@proxy_config) unless @proxy_config.nil?
263
+ client = ::Excon.new(
264
+ api_host,
265
+ persistent: true,
266
+ read_timeout: @send_timeout,
267
+ write_timeout: @send_timeout,
268
+ connect_timeout: @send_timeout,
269
+ proxy: @proxy_config,
270
+ headers: {
271
+ 'User-Agent' => @user_agent,
272
+ 'Content-Type' => 'application/json'
273
+ }
274
+ )
275
+
245
276
  h[api_host] = client
246
277
  end
247
278
  end
@@ -1,3 +1,3 @@
1
1
  module Libhoney
2
- VERSION = '1.14.7'.freeze
2
+ VERSION = '1.18.0'.freeze
3
3
  end
@@ -29,10 +29,11 @@ Gem::Specification.new do |spec|
29
29
  spec.add_development_dependency 'rubocop', '< 0.69'
30
30
  spec.add_development_dependency 'sinatra'
31
31
  spec.add_development_dependency 'sinatra-contrib'
32
- spec.add_development_dependency 'spy'
32
+ spec.add_development_dependency 'spy', '1.0.0'
33
33
  spec.add_development_dependency 'webmock', '~> 3.4'
34
34
  spec.add_development_dependency 'yard'
35
35
  spec.add_development_dependency 'yardstick', '~> 0.9'
36
36
  spec.add_dependency 'addressable', '~> 2.0'
37
+ spec.add_dependency 'excon'
37
38
  spec.add_dependency 'http', '>= 2.0', '< 5.0'
38
39
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libhoney
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.14.7
4
+ version: 1.18.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Honeycomb.io Team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-07 00:00:00.000000000 Z
11
+ date: 2021-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bump
@@ -112,16 +112,16 @@ dependencies:
112
112
  name: spy
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">="
115
+ - - '='
116
116
  - !ruby/object:Gem::Version
117
- version: '0'
117
+ version: 1.0.0
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ">="
122
+ - - '='
123
123
  - !ruby/object:Gem::Version
124
- version: '0'
124
+ version: 1.0.0
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: webmock
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -178,6 +178,20 @@ dependencies:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
180
  version: '2.0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: excon
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :runtime
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
181
195
  - !ruby/object:Gem::Dependency
182
196
  name: http
183
197
  requirement: !ruby/object:Gem::Requirement
@@ -211,9 +225,9 @@ files:
211
225
  - ".gitignore"
212
226
  - ".rubocop.yml"
213
227
  - ".rubocop_todo.yml"
228
+ - CHANGELOG.md
214
229
  - CONTRIBUTORS
215
230
  - Gemfile
216
- - Gemfile.lock
217
231
  - LICENSE
218
232
  - NOTICE
219
233
  - README.md
@@ -1,103 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- libhoney (1.14.7)
5
- addressable (~> 2.0)
6
- http (>= 2.0, < 5.0)
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- addressable (2.7.0)
12
- public_suffix (>= 2.0.2, < 5.0)
13
- ast (2.4.0)
14
- backports (3.16.0)
15
- bump (0.8.0)
16
- crack (0.4.3)
17
- safe_yaml (~> 1.0.0)
18
- domain_name (0.5.20190701)
19
- unf (>= 0.0.5, < 1.0.0)
20
- ffi (1.13.1)
21
- ffi-compiler (1.0.1)
22
- ffi (>= 1.0.0)
23
- rake
24
- hashdiff (1.0.0)
25
- http (4.4.1)
26
- addressable (~> 2.3)
27
- http-cookie (~> 1.0)
28
- http-form_data (~> 2.2)
29
- http-parser (~> 1.2.0)
30
- http-cookie (1.0.3)
31
- domain_name (~> 0.5)
32
- http-form_data (2.3.0)
33
- http-parser (1.2.1)
34
- ffi-compiler (>= 1.0, < 2.0)
35
- jaro_winkler (1.5.4)
36
- minitest (5.14.0)
37
- multi_json (1.14.1)
38
- mustermann (1.1.1)
39
- ruby2_keywords (~> 0.0.1)
40
- parallel (1.19.1)
41
- parser (2.7.0.2)
42
- ast (~> 2.4.0)
43
- public_suffix (4.0.3)
44
- rack (2.1.4)
45
- rack-protection (2.0.8.1)
46
- rack
47
- rainbow (3.0.0)
48
- rake (12.3.3)
49
- rubocop (0.68.1)
50
- jaro_winkler (~> 1.5.1)
51
- parallel (~> 1.10)
52
- parser (>= 2.5, != 2.5.1.1)
53
- rainbow (>= 2.2.2, < 4.0)
54
- ruby-progressbar (~> 1.7)
55
- unicode-display_width (>= 1.4.0, < 1.6)
56
- ruby-progressbar (1.10.1)
57
- ruby2_keywords (0.0.2)
58
- safe_yaml (1.0.5)
59
- sinatra (2.0.8.1)
60
- mustermann (~> 1.0)
61
- rack (~> 2.0)
62
- rack-protection (= 2.0.8.1)
63
- tilt (~> 2.0)
64
- sinatra-contrib (2.0.8.1)
65
- backports (>= 2.8.2)
66
- multi_json
67
- mustermann (~> 1.0)
68
- rack-protection (= 2.0.8.1)
69
- sinatra (= 2.0.8.1)
70
- tilt (~> 2.0)
71
- spy (1.0.0)
72
- tilt (2.0.10)
73
- unf (0.1.4)
74
- unf_ext
75
- unf_ext (0.0.7.7)
76
- unicode-display_width (1.5.0)
77
- webmock (3.8.1)
78
- addressable (>= 2.3.6)
79
- crack (>= 0.3.2)
80
- hashdiff (>= 0.4.0, < 2.0.0)
81
- yard (0.9.24)
82
- yardstick (0.9.9)
83
- yard (~> 0.8, >= 0.8.7.2)
84
-
85
- PLATFORMS
86
- ruby
87
-
88
- DEPENDENCIES
89
- bump (~> 0.5)
90
- bundler
91
- libhoney!
92
- minitest (~> 5.0)
93
- rake (~> 12.3)
94
- rubocop (< 0.69)
95
- sinatra
96
- sinatra-contrib
97
- spy
98
- webmock (~> 3.4)
99
- yard
100
- yardstick (~> 0.9)
101
-
102
- BUNDLED WITH
103
- 2.1.4