libhoney 1.14.7 → 1.15.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 +4 -4
- data/.circleci/config.yml +129 -81
- data/.editorconfig +1 -1
- data/CHANGELOG.md +18 -0
- data/README.md +8 -5
- data/lib/libhoney/transmission.rb +22 -0
- data/lib/libhoney/version.rb +1 -1
- data/libhoney.gemspec +1 -1
- metadata +7 -7
- data/Gemfile.lock +0 -103
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 26ab54ab7ffb098ee3f1b41b211ca8a1295de834e00c296711fc049a6a9b858e
|
4
|
+
data.tar.gz: 695db353c2c36287e60db383567021b0f35ed11a7472ab0698d8d74832eaf906
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 618e014df070b756a691879c2fb10412ddff2a8224fbfc853983fc0c9b38546366abe23c869c9bc9b65acf9178751ca352bfe331c9904dbec733483c82711ece
|
7
|
+
data.tar.gz: 40f9950ceb87f8512c60cf4328aa90421b3242068826aab54ee858717529de348d34a9d862854e00ca36c384cc0ed6c7e9f4fdec51af1c51c8bff7e3d5b1bcf3
|
data/.circleci/config.yml
CHANGED
@@ -1,67 +1,63 @@
|
|
1
|
-
version: 2.
|
1
|
+
version: 2.1
|
2
2
|
|
3
|
-
|
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
|
-
#
|
33
|
-
|
5
|
+
# This is necessary for job to run when a tag is created
|
6
|
+
filters_always: &filters_always
|
34
7
|
filters:
|
35
|
-
|
36
|
-
|
8
|
+
tags:
|
9
|
+
only: /.*/
|
37
10
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
ruby
|
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
|
58
|
-
|
59
|
-
publish:
|
34
|
+
- image: circleci/ruby:<< parameters.rubyversion >>
|
35
|
+
github:
|
60
36
|
docker:
|
61
|
-
|
62
|
-
|
63
|
-
|
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
|
73
|
-
|
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
|
-
-
|
87
|
-
|
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
|
-
-
|
94
|
-
|
95
|
-
|
96
|
-
-
|
97
|
-
|
98
|
-
- publish:
|
141
|
+
- test:
|
142
|
+
<<: *filters_always
|
143
|
+
<<: *matrix_rubyversions
|
144
|
+
- build_artifacts:
|
145
|
+
<<: *filters_always
|
99
146
|
requires:
|
100
|
-
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
147
|
+
- test
|
148
|
+
- publish_github:
|
149
|
+
<<: *filters_publish
|
150
|
+
context: Honeycomb Secrets
|
151
|
+
requires:
|
152
|
+
- build_artifacts
|
153
|
+
- publish_rubygems:
|
154
|
+
<<: *filters_publish
|
155
|
+
context: Honeycomb Secrets
|
156
|
+
requires:
|
157
|
+
- build_artifacts
|
data/.editorconfig
CHANGED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# libhoney-rb changelog
|
2
|
+
|
3
|
+
## 1.15.0
|
4
|
+
|
5
|
+
Improvements:
|
6
|
+
|
7
|
+
- Do not attempt to send invalid events (#67)
|
8
|
+
|
9
|
+
Maintenance:
|
10
|
+
|
11
|
+
- Modernize circle, include github publishing (#64)
|
12
|
+
- Update .editorconfig to add new lines to end of files (#68)
|
13
|
+
|
14
|
+
### Misc
|
15
|
+
|
16
|
+
- Added CHANGELOG.md
|
17
|
+
- Updates to CI configuration and documentation
|
18
|
+
- 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
|
-
-
|
8
|
-
-
|
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,
|
23
|
+
version, update the version using `bump`.
|
24
|
+
|
24
25
|
```
|
25
|
-
bump patch
|
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.
|
@@ -40,6 +40,8 @@ module Libhoney
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def add(event)
|
43
|
+
return unless event_valid(event)
|
44
|
+
|
43
45
|
begin
|
44
46
|
@batch_queue.enq(event, !@block_on_send)
|
45
47
|
rescue ThreadError
|
@@ -49,6 +51,26 @@ module Libhoney
|
|
49
51
|
ensure_threads_running
|
50
52
|
end
|
51
53
|
|
54
|
+
def event_valid(event)
|
55
|
+
invalid = []
|
56
|
+
invalid.push('api host') if event.api_host.nil? || event.api_host.empty?
|
57
|
+
invalid.push('write key') if event.writekey.nil? || event.writekey.empty?
|
58
|
+
invalid.push('dataset') if event.dataset.nil? || event.dataset.empty?
|
59
|
+
|
60
|
+
unless invalid.empty?
|
61
|
+
e = StandardError.new("#{self.class.name}: nil or empty required fields (#{invalid.join(', ')})"\
|
62
|
+
'. Will not attempt to send.')
|
63
|
+
Response.new(error: e).tap do |error_response|
|
64
|
+
error_response.metadata = event.metadata
|
65
|
+
enqueue_response(error_response)
|
66
|
+
end
|
67
|
+
|
68
|
+
return false
|
69
|
+
end
|
70
|
+
|
71
|
+
true
|
72
|
+
end
|
73
|
+
|
52
74
|
def send_loop
|
53
75
|
http_clients = build_http_clients
|
54
76
|
|
data/lib/libhoney/version.rb
CHANGED
data/libhoney.gemspec
CHANGED
@@ -29,7 +29,7 @@ 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'
|
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.
|
4
|
+
version: 1.15.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-
|
11
|
+
date: 2020-11-06 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:
|
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:
|
124
|
+
version: 1.0.0
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: webmock
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -211,9 +211,9 @@ files:
|
|
211
211
|
- ".gitignore"
|
212
212
|
- ".rubocop.yml"
|
213
213
|
- ".rubocop_todo.yml"
|
214
|
+
- CHANGELOG.md
|
214
215
|
- CONTRIBUTORS
|
215
216
|
- Gemfile
|
216
|
-
- Gemfile.lock
|
217
217
|
- LICENSE
|
218
218
|
- NOTICE
|
219
219
|
- README.md
|
data/Gemfile.lock
DELETED
@@ -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
|