pliny 0.20.2 → 0.21.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 11d6e6303689db3c75d06599309d8044f8e24058
4
- data.tar.gz: ad4702309f3488e7bf99654a732c1e03f4685989
3
+ metadata.gz: a17e76a1800d179c9271ab0bf1b67dad549e7fed
4
+ data.tar.gz: badd208c4a7ad6e3b58735cd3d8edde7b485bab2
5
5
  SHA512:
6
- metadata.gz: f5f26f1cdb8f55a373917e750fcae6866e4dbaf091fcd98f3876cfb6f7249359bde685aa523ca1df156ec0b57b78686d7ce6de053b8116e7209d889ddddf4cb6
7
- data.tar.gz: d6e5c047b08ff89ed6c1f6e3fe1246877886ddd2ea491a3effc24e157ee23ca011d83f9eaea67d53e94711c8a7e21ab331bc182f032f1650ae5997e79dcd431d
6
+ metadata.gz: cc9b96fad0c7fca0f0ced728dc148cda49ac22b330cb45614b0068ee166ed528ada6d8f331bafbf6be5ac340ac6cd6d569e97b6c83270684b82da814e59cd4a6
7
+ data.tar.gz: 6b7f260a8c291e1435920ba61d6ac5aa63246b1efc3dffbbc01b2adb1c2cec8f61954096b71780ed3b0ed1d9fe5b1422dd6d94bb22067c696b38ac9248d5e41b
@@ -96,6 +96,11 @@ module Pliny
96
96
  end
97
97
  end
98
98
 
99
+ # DEPRECATED: ConfigHelpers was a slightly more primitive version
100
+ # of CastingConfigHelpers above that didn't contain any of the
101
+ # latter's features around typing. It's been left here for
102
+ # backwards compatibility in apps based on old templates that may
103
+ # be using it.
99
104
  module ConfigHelpers
100
105
  def optional(*attrs)
101
106
  attrs.each do |attr|
@@ -18,9 +18,11 @@ module Pliny
18
18
  private
19
19
 
20
20
  def fetch_scope(context:, rack_env:)
21
- {
22
- request: proc { extract_request_data_from_rack(rack_env) }
23
- }
21
+ scope = {}
22
+ if rack_env.respond_to?(:body)
23
+ scope[:request] = proc { extract_request_data_from_rack(rack_env) }
24
+ end
25
+ scope
24
26
  rescue Exception => e
25
27
  report_exception_to_rollbar(rack_env, e)
26
28
  raise
@@ -3,6 +3,7 @@ module Pliny::Middleware
3
3
  def initialize(app, options = {})
4
4
  @app = app
5
5
  @raise = options[:raise]
6
+ @message = options[:message]
6
7
  end
7
8
 
8
9
  def call(env)
@@ -13,7 +14,7 @@ module Pliny::Middleware
13
14
  raise if @raise
14
15
 
15
16
  Pliny::ErrorReporters.notify(e, rack_env: env)
16
- Pliny::Errors::Error.render(Pliny::Errors::InternalServerError.new)
17
+ Pliny::Errors::Error.render(Pliny::Errors::InternalServerError.new(@message))
17
18
  end
18
19
  end
19
20
  end
@@ -1,3 +1,3 @@
1
1
  module Pliny
2
- VERSION = "0.20.2"
2
+ VERSION = "0.21.0"
3
3
  end
@@ -1 +1 @@
1
- 2.3.1
1
+ 2.3.3
@@ -1,10 +1,10 @@
1
1
  source "https://rubygems.org"
2
- ruby "2.3.1"
2
+ ruby "2.3.3"
3
3
 
4
4
  gem "multi_json"
5
5
  gem "oj"
6
6
  gem "pg"
7
- gem "pliny", "~> 0.20"
7
+ gem "pliny", "~> 0.21"
8
8
  gem "pry"
9
9
  gem "puma", "~> 2.16"
10
10
  gem "rack-ssl"
@@ -0,0 +1,56 @@
1
+ require "spec_helper"
2
+ require "rollbar"
3
+ require "pliny/error_reporters/rollbar"
4
+
5
+ describe Pliny::ErrorReporters::Rollbar do
6
+ subject(:reporter) { described_class.new }
7
+
8
+ describe "#notify" do
9
+ let(:exception) { StandardError.new("Something went wrong") }
10
+ let(:context) { {} }
11
+ let(:rack_env) { double(:rack_env, body: StringIO.new) }
12
+
13
+ subject(:notify) do
14
+ reporter.notify(exception, context: context, rack_env: rack_env)
15
+ end
16
+
17
+ before do
18
+ allow(::Rollbar).to receive(:reset_notifier!)
19
+ allow(::Rollbar).to receive(:scoped).and_yield
20
+ allow(reporter).to receive(:report_exception_to_rollbar)
21
+ end
22
+
23
+ it "resets the rollbar notifier" do
24
+ notify
25
+ expect(::Rollbar).to have_received(:reset_notifier!).once
26
+ end
27
+
28
+ it "scopes the rollbar notification" do
29
+ notify
30
+ expect(::Rollbar).to have_received(:scoped).once.with(hash_including(
31
+ request: instance_of(Proc)
32
+ ))
33
+ end
34
+
35
+ it "delegates to #report_exception_to_rollbar" do
36
+ notify
37
+ expect(reporter).to have_received(:report_exception_to_rollbar)
38
+ .once.with(rack_env, exception)
39
+ end
40
+
41
+ context "given an empty rack_env" do
42
+ let(:rack_env) { {} }
43
+
44
+ it "reports to Rollbar with an empty scope" do
45
+ notify
46
+ expect(Rollbar).to have_received(:scoped).once.with({})
47
+ end
48
+
49
+ it "delegates to #report_exception_to_rollbar" do
50
+ notify
51
+ expect(reporter).to have_received(:report_exception_to_rollbar)
52
+ .once.with(rack_env, exception)
53
+ end
54
+ end
55
+ end
56
+ end
@@ -43,12 +43,22 @@ describe Pliny::Middleware::RescueErrors do
43
43
  end
44
44
  end
45
45
 
46
+ it "uses a custom error message with the message option" do
47
+ @app = new_rack_app(message: "Please stand by")
48
+ allow(Pliny::ErrorReporters).to receive(:notify)
49
+ get "/"
50
+ assert_equal 500, last_response.status
51
+ error_json = MultiJson.decode(last_response.body)
52
+ assert_equal "internal_server_error", error_json["id"]
53
+ assert_equal "Please stand by", error_json["message"]
54
+ end
55
+
46
56
  private
47
57
 
48
58
  def new_rack_app(options = {})
49
59
  Rack::Builder.new do
50
60
  use Rack::Lint
51
- use Pliny::Middleware::RescueErrors, raise: options[:raise]
61
+ use Pliny::Middleware::RescueErrors, raise: options[:raise], message: options[:message]
52
62
  run BadMiddleware.new
53
63
  end
54
64
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pliny
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.20.2
4
+ version: 0.21.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brandur Leach
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-12-09 00:00:00.000000000 Z
12
+ date: 2016-12-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -265,6 +265,20 @@ dependencies:
265
265
  - - ">="
266
266
  - !ruby/object:Gem::Version
267
267
  version: '0'
268
+ - !ruby/object:Gem::Dependency
269
+ name: pry-byebug
270
+ requirement: !ruby/object:Gem::Requirement
271
+ requirements:
272
+ - - ">="
273
+ - !ruby/object:Gem::Version
274
+ version: '0'
275
+ type: :development
276
+ prerelease: false
277
+ version_requirements: !ruby/object:Gem::Requirement
278
+ requirements:
279
+ - - ">="
280
+ - !ruby/object:Gem::Version
281
+ version: '0'
268
282
  - !ruby/object:Gem::Dependency
269
283
  name: pg
270
284
  requirement: !ruby/object:Gem::Requirement
@@ -445,6 +459,7 @@ files:
445
459
  - spec/commands/updater_spec.rb
446
460
  - spec/config_helpers_spec.rb
447
461
  - spec/db_support_spec.rb
462
+ - spec/error_reporters/rollbar_spec.rb
448
463
  - spec/error_reporters_spec.rb
449
464
  - spec/errors_spec.rb
450
465
  - spec/helpers/encode_spec.rb