faraday-honeycomb 0.3.1 → 0.3.2
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 +5 -5
- data/lib/faraday/honeycomb/version.rb +1 -1
- data/lib/faraday-honeycomb/auto_install.rb +59 -12
- metadata +31 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5ab9e86fc18813b1af2006e63efc7c1194ffabf5
|
4
|
+
data.tar.gz: 26d1540af6203758683a8083963f9b227bdab16b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d37866d1e54e453ed2926e5cee15675b697d0c86eb8cb4c2698096ad03f069cde6e08af2758249f204dd33dd0ec36b4de0023321c40912c4d49276e04ecdf209
|
7
|
+
data.tar.gz: a38b48bf26a8aa686237b23fec1e100e1b98959dd0165cef4c1c45888af000a0e3969e89ae7d554fcdc6cfadd50bb25d8f0ab403b59501aeeb91ddda81cb7b17
|
@@ -14,26 +14,73 @@ module Faraday
|
|
14
14
|
false
|
15
15
|
end
|
16
16
|
|
17
|
+
def ensure_middleware_in_builder!(builder, client, logger)
|
18
|
+
if builder.handlers.any? { |m| m.klass == ::Faraday::Honeycomb::Middleware }
|
19
|
+
logger.debug "Faraday::Honeycomb::Middleware already exists in Faraday middleware" if logger
|
20
|
+
return
|
21
|
+
end
|
22
|
+
|
23
|
+
# In faraday < 1.0 the adapter is added directly to handlers, so we
|
24
|
+
# need to find it in the stack and insert honeycomb's middleware
|
25
|
+
# before it
|
26
|
+
#
|
27
|
+
# In faraday >= 1.0 the adapter will never be in the list of
|
28
|
+
# handlers, and will _always_ be the last thing called in the
|
29
|
+
# middleware stack, so we need to handle it not being present.
|
30
|
+
# https://github.com/lostisland/faraday/pull/750
|
31
|
+
index_of_first_adapter = (builder.handlers || [])
|
32
|
+
.find_index { |h| h.klass.ancestors.include? Faraday::Adapter }
|
33
|
+
|
34
|
+
if index_of_first_adapter
|
35
|
+
logger.debug "Adding Faraday::Honeycomb::Middleware before adapter" if logger
|
36
|
+
builder.insert_before(
|
37
|
+
index_of_first_adapter,
|
38
|
+
Faraday::Honeycomb::Middleware,
|
39
|
+
client: client, logger: logger
|
40
|
+
)
|
41
|
+
else
|
42
|
+
logger.debug "Appending Faraday::Honeycomb::Middleware to stack" if logger
|
43
|
+
builder.use Faraday::Honeycomb::Middleware, client: client, logger: logger
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
17
47
|
def auto_install!(honeycomb_client:, logger: nil)
|
18
48
|
require 'faraday'
|
19
49
|
require 'faraday-honeycomb'
|
20
50
|
|
21
51
|
Faraday::Connection.extend(Module.new do
|
22
52
|
define_method :new do |*args, &orig_block|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
53
|
+
# If there are two arguments the first argument might be an
|
54
|
+
# options hash, or a URL. The last argument in the array is
|
55
|
+
# always an instance of `ConnectionOptions`.
|
56
|
+
options = args.reduce({}) do |out, arg|
|
57
|
+
out.merge!(arg.to_hash) if arg.respond_to? :to_hash
|
58
|
+
out
|
59
|
+
end
|
60
|
+
|
61
|
+
builder = options["builder"] || options[:builder]
|
62
|
+
|
63
|
+
if !builder
|
64
|
+
# This is the configuration that would be applied if someone
|
65
|
+
# created faraday without a config block/builder. We need to specify it
|
66
|
+
# here because our monkeypatch causes a block to _always_ be
|
67
|
+
# passed to Faraday
|
68
|
+
# https://github.com/lostisland/faraday/blob/v0.15.4/lib/faraday/rack_builder.rb#L56-L60
|
69
|
+
orig_block ||= proc do |c|
|
70
|
+
c.request :url_encoded
|
71
|
+
c.adapter Faraday.default_adapter
|
35
72
|
end
|
36
73
|
end
|
74
|
+
|
75
|
+
# Always add honeycomb middleware after the middleware stack has
|
76
|
+
# been resolved by the original block/any defaults that are
|
77
|
+
# applied by Faraday
|
78
|
+
block = proc do |b|
|
79
|
+
orig_block.call(b) if orig_block
|
80
|
+
|
81
|
+
Honeycomb::AutoInstall.ensure_middleware_in_builder!(b.builder, honeycomb_client, logger)
|
82
|
+
end
|
83
|
+
|
37
84
|
super(*args, &block)
|
38
85
|
end
|
39
86
|
end)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: faraday-honeycomb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Stokes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-05-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: libhoney
|
@@ -94,6 +94,34 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: byebug
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: pry
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
97
125
|
description: " TO DO *is* a description\n"
|
98
126
|
email:
|
99
127
|
- support@honeycomb.io
|
@@ -127,7 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
127
155
|
version: '0'
|
128
156
|
requirements: []
|
129
157
|
rubyforge_project:
|
130
|
-
rubygems_version: 2.
|
158
|
+
rubygems_version: 2.6.14.4
|
131
159
|
signing_key:
|
132
160
|
specification_version: 4
|
133
161
|
summary: Instrument your Faraday HTTP requests with Honeycomb
|