faraday_error 0.1.0 → 0.1.1

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
  SHA1:
3
- metadata.gz: 1ba848c0c1805086776b1368110caa30db4030af
4
- data.tar.gz: 3cb424b67ae19f0c6f27bb1fe7416583ee9e22b1
3
+ metadata.gz: 09ccdf74e9297211ab16437b2c1b175b93ffe0c4
4
+ data.tar.gz: d3418d53d4f8d07d720d675b23ee9c0762e58a47
5
5
  SHA512:
6
- metadata.gz: b3c5765c9c7daba82f2c6e918ea2ad003af8966f363a3502078cafff30a781483e57d7cd37f8b9e1b7fd1c786b77524b3a40d640ff3f5a6945a600821a7d655b
7
- data.tar.gz: d4c681bc076f3b9388c82521a7984fce2693a972fd838109319caaf775b9b014ae96562fdbe3958aaa8583b367107f7f06e831c0e679aab7cdbb294bf2a4a3fe
6
+ metadata.gz: 549676c9dc10ed6ada555f24c4361c514aafcc3af2f6a215dbfacbe49470138c334058a832184e35482238f2022dc7e486749b399969ef89c102c520e80861fe
7
+ data.tar.gz: f75e5d6561dcae7d89f0e0fa1e5711a35ae313fc17632e07738f4b93feb66c016ed1b7744f064e6fa8e56c376ccfc959f2930a2f7902eeb145a380acd9744540
data/.gitignore CHANGED
@@ -7,3 +7,4 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ *.gem
data/README.md CHANGED
@@ -1,4 +1,5 @@
1
1
  # FaradayError
2
+ [![Gem Version](https://badge.fury.io/rb/faraday_error.svg)](https://badge.fury.io/rb/faraday_error)
2
3
 
3
4
  A [Faraday](https://github.com/lostisland/faraday) middleware for adding request parameters to your exception tracker.
4
5
 
@@ -37,7 +38,7 @@ end
37
38
  And that's it. Make a request as you normally would.
38
39
  ```ruby
39
40
  connection.post do |req|
40
- req.url '/503' # Demo server included.
41
+ req.url '/503'
41
42
  req.headers['Content-Type'] = 'application/json'
42
43
  req.body = JSON.generate(abc: "xyz")
43
44
  end
@@ -58,7 +59,8 @@ If any request fails, Honeybadger's "context" for this error will include your r
58
59
  "abc": "xyz"
59
60
  }
60
61
  }
61
- }```
62
+ }
63
+ ```
62
64
 
63
65
 
64
66
  ## Development
@@ -67,6 +69,8 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
67
69
 
68
70
  To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
69
71
 
72
+ The included [RestReflector](../master/spec/rest_reflector.rb) Sinatra app is suitable for making requests that are guaranteed to fail in particlar ways.
73
+
70
74
  ## Contributing
71
75
 
72
76
  Bug reports and pull requests are welcome on GitHub at https://github.com/jelder/faraday_error. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
@@ -1,6 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module FaradayError
2
4
  class Middleware
3
5
 
6
+ MAX_PARSED_BODY_LENGTH = (1*1024*1024).freeze
7
+
4
8
  def initialize(app, options = {})
5
9
  @app = app
6
10
  @name = options.fetch(:name, 'faraday')
@@ -21,17 +25,25 @@ module FaradayError
21
25
  end
22
26
 
23
27
  def context_from_env(env)
28
+ body_length = String(env[:body]).length
24
29
  context = {
25
30
  method: env[:method],
26
31
  url: env[:url],
27
32
  request_headers: env[:request_headers],
28
- body_length: env[:body].length
33
+ body_length: body_length,
29
34
  }
30
- case env[:request_headers]["Content-Type"]
31
- when "application/json"
32
- context[:body] = JSON.parse(env[:body])
33
- when "application/x-www-form-urlencoded"
34
- context[:body] = URI.decode_www_form(env[:body]).to_h
35
+ if 2 < body_length && body_length < MAX_PARSED_BODY_LENGTH
36
+ begin
37
+ context[:body] = case env[:request_headers]["Content-Type"]
38
+ when "application/json" then JSON.parse(env[:body])
39
+ when "application/x-www-form-urlencoded" then URI.decode_www_form(env[:body]).to_h
40
+ end
41
+ rescue => ex
42
+ puts ex.inspect
43
+ puts ex.backtrace
44
+ ensure
45
+ context[:body] ||= env[:body]
46
+ end
35
47
  end
36
48
  return context
37
49
  end
@@ -1,3 +1,3 @@
1
1
  module FaradayError
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: faraday_error
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jacob Elder
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-02-18 00:00:00.000000000 Z
11
+ date: 2016-02-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -128,6 +128,7 @@ dependencies:
128
128
  version: 3.14.0
129
129
  description: |+
130
130
  # FaradayError
131
+ [![Gem Version](https://badge.fury.io/rb/faraday_error.svg)](https://badge.fury.io/rb/faraday_error)
131
132
 
132
133
  A [Faraday](https://github.com/lostisland/faraday) middleware for adding request parameters to your exception tracker.
133
134
 
@@ -166,7 +167,7 @@ description: |+
166
167
  And that's it. Make a request as you normally would.
167
168
  ```ruby
168
169
  connection.post do |req|
169
- req.url '/503' # Demo server included.
170
+ req.url '/503'
170
171
  req.headers['Content-Type'] = 'application/json'
171
172
  req.body = JSON.generate(abc: "xyz")
172
173
  end
@@ -187,7 +188,8 @@ description: |+
187
188
  "abc": "xyz"
188
189
  }
189
190
  }
190
- }```
191
+ }
192
+ ```
191
193
 
192
194
 
193
195
  ## Development
@@ -196,6 +198,8 @@ description: |+
196
198
 
197
199
  To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
198
200
 
201
+ The included [RestReflector](../master/spec/rest_reflector.rb) Sinatra app is suitable for making requests that are guaranteed to fail in particlar ways.
202
+
199
203
  ## Contributing
200
204
 
201
205
  Bug reports and pull requests are welcome on GitHub at https://github.com/jelder/faraday_error. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.