jefferies_tube 1.7.8 → 1.7.9

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: 482a6104484c8b52279b4963b934c0882c3323508d89c95c050ddc4d485ca530
4
- data.tar.gz: 25e75d97decffc3c631225b567044e926d706734c2988ecdc5e094869069b209
3
+ metadata.gz: 871cc47167080e2ec82b5783a0f78bf2e3db9d66ffba35e3315bd66560225bf1
4
+ data.tar.gz: dd2bd0f2ca231feea95bd7bc75017a0442b21887f535b227c455e22609006827
5
5
  SHA512:
6
- metadata.gz: c338a5dd7fe14ca23986b370f5610479b9578f690d75cd43ceef485a239447000be24f0c6d7cd1a64526df279c4ba6c37a5f02ebc70290f1e4c9bb37b57d0bfd
7
- data.tar.gz: ebe59a2c35f75555ed4f01bac293e36feace65915fb09b6a493fcd54138ed418e33b42f8352918a8f923c8f127ed8eb107d81019b85f7c08b0ccbd9fa3d06f3f
6
+ metadata.gz: 067bc30d790bb14ad3c91eb18710e1aa20ba75276426a9ea4e2d2babfba313caae6f1571fbd7753c6a01a5f5f59dce8793ffcdbff7304e58ac69bc4627d992f7
7
+ data.tar.gz: ccd1b5de8c012e557d30dbfef2891c33abc82de11f5e60a03999683b372b734748962cdfad4f3c5498f78010d8e5372bb68507cf202164c56a786dede7cc0d87
data/CHANGELOG.md CHANGED
@@ -6,6 +6,9 @@ This project attempts to follow [semantic versioning](https://semver.org/)
6
6
 
7
7
  ## Unreleased
8
8
 
9
+ ## 1.7.9
10
+ * Configure NewRelic to ignore invalid request errors caught by InvaildRequestHandler middleware
11
+
9
12
  ## 1.7.8
10
13
  * Update middleware to rescue from more invalid requests
11
14
 
@@ -1,3 +1,5 @@
1
+ # The error types rescued here are mirrored in the NewRelic ignore_error_filter
2
+ # in railtie.rb. If you update the rescue logic here, update the filter there too.
1
3
  class JefferiesTube::InvaildRequestHandler
2
4
  def initialize(app)
3
5
  @app = app
@@ -101,6 +101,35 @@ module JefferiesTube
101
101
  config.middleware.insert_before Rack::Head, JefferiesTube::InvaildRequestHandler
102
102
  end
103
103
 
104
+ # This filter must match the error types rescued in InvaildRequestHandler.
105
+ # If you update the rescue logic there, update the cases here too.
106
+ config.after_initialize do
107
+ if defined?(NewRelic::Agent) && NewRelic::Agent.respond_to?(:ignore_error_filter)
108
+ existing_filter = NewRelic::Agent::ErrorCollector.ignore_error_filter
109
+ puts "[JefferiesTube] Configuring NewRelic ignore_error_filter for invalid request errors"
110
+
111
+ NewRelic::Agent.ignore_error_filter do |error|
112
+ keep = case error
113
+ when ActionDispatch::Http::MimeNegotiation::InvalidType
114
+ false
115
+ when ArgumentError
116
+ !(error.message =~ /invalid byte sequence in UTF-8/ ||
117
+ error.message =~ /invalid %-encoding/)
118
+ when ActionController::BadRequest
119
+ !(error.message =~ /invalid %-encoding/ ||
120
+ error.message =~ /Invalid encoding for parameter/)
121
+ else
122
+ true
123
+ end
124
+
125
+ keep && (existing_filter.nil? || existing_filter.call(error))
126
+ end
127
+ elsif defined?(NewRelic::Agent)
128
+ puts "[JefferiesTube] NewRelic::Agent.ignore_error_filter is not available. " \
129
+ "Invalid request errors may still be reported to NewRelic."
130
+ end
131
+ end
132
+
104
133
  rake_tasks do
105
134
  task(:default).clear
106
135
  if defined?(RSpec)
@@ -1,7 +1,7 @@
1
1
  require 'open-uri'
2
2
 
3
3
  module JefferiesTube
4
- VERSION = "1.7.8"
4
+ VERSION = "1.7.9"
5
5
 
6
6
  def self.latest_rubygems_version
7
7
  JSON.parse(URI.parse("https://rubygems.org/api/v1/versions/jefferies_tube/latest.json").read)["version"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jefferies_tube
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.8
4
+ version: 1.7.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Samson
@@ -226,7 +226,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
226
226
  - !ruby/object:Gem::Version
227
227
  version: '0'
228
228
  requirements: []
229
- rubygems_version: 4.0.4
229
+ rubygems_version: 4.0.8
230
230
  specification_version: 4
231
231
  summary: Ten Forward Consulting useful tools.
232
232
  test_files: