faraday-sunset 0.1.2 → 0.2.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/README.md +15 -1
- data/lib/faraday/sunset.rb +51 -5
- metadata +17 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f6342c56ae356cacca2ee93a523cfd41ae6fb3a2
|
|
4
|
+
data.tar.gz: 51c570dc5dd9a71c7c4ed7b5429c61f491d4bc19
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e0eafaceef2453b4006b6c59431f744b3980779ccf767a8be85cd43a656cc2a08aac97a3a742cec089d1f922cf5ca365f574297738a783f0822dc5e2f7d86a35
|
|
7
|
+
data.tar.gz: c59f5b3dea7b9f9fcd2400e03e1ba420ddcf06cd8bee220805951c4d82098a9060e10c12226d52176b29d4d56f251a55e90d33329cdd767406c634d2fa40e973
|
data/README.md
CHANGED
|
@@ -38,10 +38,24 @@ connection = Faraday.new(url: '...') do |conn|
|
|
|
38
38
|
conn.response :sunset, active_support: true
|
|
39
39
|
# or
|
|
40
40
|
conn.response :sunset, logger: Rails.logger
|
|
41
|
+
# or
|
|
42
|
+
conn.response :sunset, rollbar: true
|
|
43
|
+
# or combine:
|
|
44
|
+
conn.response :sunset, rollbar: :auto, active_support: true, logger: Rails.logger
|
|
41
45
|
end
|
|
42
46
|
```
|
|
43
47
|
|
|
44
|
-
|
|
48
|
+
For `logger`, You can pass in any object that acts a bit like a Rack logger, Rails logger, or anything with a `warn` method that takes a string.
|
|
49
|
+
|
|
50
|
+
You can [configure `ActiveSupport::Deprecation`][active-support-deprecation] to warn in 3 ways:
|
|
51
|
+
- `true` - throw warnings on sunsetted endpoints, and throw an error if active-support is missing from the project
|
|
52
|
+
- `false` - ignore active-support
|
|
53
|
+
- `:auto` - throw warnings on sunsetted endpoints, and ignore if active-support is missing from the project
|
|
54
|
+
|
|
55
|
+
You can [configure `Rollbar`][rollbar] in 3 ways:
|
|
56
|
+
- `true` - throw warnings on sunsetted endpoints, and throw an error if active-support is missing from the project
|
|
57
|
+
- `false` - ignore rollbar
|
|
58
|
+
- `:auto` - throw warnings on sunsetted endpoints, and ignore if Rollbar is missing from the project
|
|
45
59
|
|
|
46
60
|
[active-support-deprecation]: http://api.rubyonrails.org/classes/ActiveSupport/Deprecation/Behavior.html
|
|
47
61
|
|
data/lib/faraday/sunset.rb
CHANGED
|
@@ -9,10 +9,11 @@ module Faraday
|
|
|
9
9
|
# @param [Type] app describe app
|
|
10
10
|
# @param [Hash] options = {}
|
|
11
11
|
# @return void
|
|
12
|
-
def initialize(app, active_support: nil, logger: nil)
|
|
12
|
+
def initialize(app, active_support: nil, logger: nil, rollbar: nil)
|
|
13
13
|
super(app)
|
|
14
14
|
@active_support = active_support
|
|
15
15
|
@logger = logger
|
|
16
|
+
@rollbar = rollbar
|
|
16
17
|
end
|
|
17
18
|
|
|
18
19
|
# @param [Faraday::Env] no idea what this does
|
|
@@ -46,18 +47,63 @@ module Faraday
|
|
|
46
47
|
|
|
47
48
|
def send_warning!(warning)
|
|
48
49
|
warned = false
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
warned =
|
|
50
|
+
|
|
51
|
+
if @active_support == :auto
|
|
52
|
+
warned = report_active_support(warned, warning)
|
|
53
|
+
elsif @active_support == true
|
|
54
|
+
warned = report_active_support!(warning)
|
|
52
55
|
end
|
|
56
|
+
|
|
53
57
|
if @logger && @logger.respond_to?(:warn)
|
|
54
58
|
@logger.warn(warning)
|
|
55
59
|
warned = true
|
|
56
60
|
end
|
|
61
|
+
|
|
62
|
+
if @rollbar == :auto
|
|
63
|
+
warned = report_rollbar(warned, warning)
|
|
64
|
+
elsif @rollbar == true
|
|
65
|
+
warned = report_rollbar!(warning)
|
|
66
|
+
end
|
|
67
|
+
|
|
57
68
|
unless warned
|
|
58
|
-
raise NoOutputForWarning, "Pass active_support: true, or logger: ::Logger.new when registering middleware"
|
|
69
|
+
raise NoOutputForWarning, "Pass active_support: (true|false|:auto), rollbar: (true|false|:auto), or logger: ::Logger.new when registering middleware"
|
|
59
70
|
end
|
|
60
71
|
end
|
|
72
|
+
|
|
73
|
+
private
|
|
74
|
+
|
|
75
|
+
def report_rollbar!(warning)
|
|
76
|
+
Rollbar.warning(warning)
|
|
77
|
+
# return true to set :warned
|
|
78
|
+
true
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def report_active_support!(warning)
|
|
82
|
+
ActiveSupport::Deprecation.warn(warning)
|
|
83
|
+
# return true to set :warned
|
|
84
|
+
true
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# :auto methods
|
|
88
|
+
# do not raise errors if gems are missing
|
|
89
|
+
def report_rollbar(warned, warning)
|
|
90
|
+
report_rollbar!(warning)
|
|
91
|
+
|
|
92
|
+
rescue NameError
|
|
93
|
+
# rollbar is not present!
|
|
94
|
+
# do not modify warned if an error is raised
|
|
95
|
+
warned
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def report_active_support(warned, warning)
|
|
99
|
+
report_active_support!(warning)
|
|
100
|
+
|
|
101
|
+
rescue NameError
|
|
102
|
+
# active_support is not present!
|
|
103
|
+
# do not modify warned if an error is raised - return warned instead
|
|
104
|
+
warned
|
|
105
|
+
end
|
|
106
|
+
|
|
61
107
|
end
|
|
62
108
|
end
|
|
63
109
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: faraday-sunset
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Phil Sturgeon
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2018-
|
|
11
|
+
date: 2018-08-24 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: faraday
|
|
@@ -44,6 +44,20 @@ dependencies:
|
|
|
44
44
|
- - "~>"
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
46
|
version: '2'
|
|
47
|
+
- !ruby/object:Gem::Dependency
|
|
48
|
+
name: rollbar
|
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - ">="
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '0'
|
|
54
|
+
type: :development
|
|
55
|
+
prerelease: false
|
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - ">="
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: '0'
|
|
47
61
|
- !ruby/object:Gem::Dependency
|
|
48
62
|
name: activesupport
|
|
49
63
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -145,7 +159,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
145
159
|
version: '0'
|
|
146
160
|
requirements: []
|
|
147
161
|
rubyforge_project:
|
|
148
|
-
rubygems_version: 2.6.
|
|
162
|
+
rubygems_version: 2.6.14
|
|
149
163
|
signing_key:
|
|
150
164
|
specification_version: 4
|
|
151
165
|
summary: Automatically detect deprecated HTTP endpoints
|