egregious 0.2.8 → 0.2.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NmNkZmVlODMzN2NkOWI1NWZhMGU5ZTNmYTgwNDQzMjQ5YTY2NWI1Nw==
5
- data.tar.gz: !binary |-
6
- NWE3YjNjY2JiYjY5NGRmMjlkNTA2NDRkMzllOGRjMzFhMTRhZTYyMg==
2
+ SHA1:
3
+ metadata.gz: 74b9d8d3b64d8c2ab878e23b18eb2c28f73fd6c6
4
+ data.tar.gz: 8d4b0939f3140b103168b09a82b86e6889996eb5
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- NDMwZjgwOGY3MzM4YzM4Y2I5MWEzM2NlYTkyZDA2ZDMxNDY4MGYxMDE3NjNj
10
- MjYwNjA1NjA5NjFjMGE2ZWE0ZDg5NzczNTE5ODhlYzhkNjY0NDczMzMzN2Q2
11
- NDBjMDg2MWIzY2U2MzBjZGE4NjQ1MTZkNjI0MTAzNTQ2NzNjODk=
12
- data.tar.gz: !binary |-
13
- MDY5ODUwNzc1MjdmZjFkMDY0M2E0YWY2ZmUyNTEyNGM4MTc4MThlNTc3NzNk
14
- MWQ1Y2QzZDczOTZmZGI1YjNhZWZmYjFjYmEzMTYzMGRkMDNmNDdjZDFhOWFi
15
- NDdjMTRmOGVlNTA1NjA1OGQzOTA4ZmU4ZjBkNjk4MjI3ZDY2Y2U=
6
+ metadata.gz: 91c5341f2896b83a227f1a7565034ab4bc79d26b0beb242667323c20f24001cf6431fa0dfe972b8b662c8c714a6d0e82cf26379f731a3ae5c24c9b14891ab64a
7
+ data.tar.gz: 77c99d9f971799355983b5ab290a177fd365a534b4f1304fc113d295e55a959fd35aff4720f3332d959baaeaf208b58a357d5a9ac0a356ee696a413cab53b8a1
data/.gitignore CHANGED
@@ -3,5 +3,4 @@
3
3
  Gemfile.lock
4
4
  pkg/*
5
5
  .idea
6
- .ruby-gemset
7
6
  .ruby-version
data/README CHANGED
@@ -1,7 +1,20 @@
1
1
  Update Log:
2
2
 
3
+ Version 0.2.10 released to https://rubygems.org/gems/egregious on 10.23.2015
4
+ Fixed bug where an exception defines http_status but returns nil.
5
+ This was resulting in a status of 200 being returned, when it should be a 500.
6
+
7
+ Version 0.2.9 released to https://rubygems.org/gems/egregious on 10.23.2015
8
+ Added support for exceptions that define a http_status. The exception map can override this.
9
+ This is a good way to allow a raise to specify a http_status using a custom exception.
10
+ The idea for this came from the Stripe::Error exception classes.
11
+ You can now use: raise Egregious::Error.new("My very bad error", :payment_required) or
12
+ define your own exceptions that implement http_status
13
+
14
+ Also updated Gemfile.lock to ruby 2.2.1 and latest dependencies. This is for specs only.
15
+
3
16
  Version 0.2.8 released to https://rubygems.org/gems/egregious on 6.5.2015
4
- Added Airbrake notifications. If this is too chatty, you can configure it by overriding: notify_airbrake
17
+ Added Airbrake notifications. If this is too chatty, you can configure it by overriding: notify_airbrake
5
18
 
6
19
  Version 0.2.7 released to https://rubygems.org/gems/egregious on 5.28.2015
7
20
  Merged pull request:
@@ -32,7 +45,7 @@ Update Log:
32
45
 
33
46
  If you would like to contribute take a look at the issues feature list, fork and issue a pull request!
34
47
 
35
- These instructions with some formatting can be found @ http://railsindirection.blogspot.com/2011/09/rails-exception-handling-egregious.html
48
+ An earlier version of these instructions with some formatting can be found @ http://railsindirection.blogspot.com/2011/09/rails-exception-handling-egregious.html
36
49
 
37
50
  Egregious is a rails based exception handling gem for well defined http exception handling for json, xml and html.
38
51
 
@@ -170,9 +170,15 @@ module Egregious
170
170
  end
171
171
 
172
172
  # this method will lookup the exception code for a given exception class
173
- # if the exception is not in our map then it will return 500
173
+ # if the exception is not in our map then see if the class responds to :http_status
174
+ # if not it will return 500
174
175
  def status_code_for_exception(exception)
175
- self.exception_codes[exception.class] ? self.exception_codes[exception.class] : '500'
176
+ Egregious.status_code_for_exception(exception)
177
+ end
178
+
179
+ def self.status_code_for_exception(exception)
180
+ status_code(self.exception_codes[exception.class] ||
181
+ (exception.respond_to?(:http_status) ? (exception.http_status||:internal_server_error) : :internal_server_error))
176
182
  end
177
183
 
178
184
  # this is the method that handles all the exceptions we have mapped
@@ -16,4 +16,15 @@ class Exception
16
16
  "{\"error\":#{ActiveSupport::JSON.encode(self.message.gsub(/\r/, ' ').gsub(/\n/, ' ').squeeze(' '))}, \"type\":\"#{self.exception_type}\"}"
17
17
  end
18
18
 
19
+ end
20
+
21
+ module Egregious
22
+ class Error < StandardError
23
+ attr_reader :http_status
24
+ attr_reader :message
25
+ def initialize(message=nil, http_status=nil)
26
+ @message = message
27
+ @http_status = http_status
28
+ end
29
+ end
19
30
  end
@@ -1,3 +1,3 @@
1
1
  module Egregious
2
- VERSION = "0.2.8"
2
+ VERSION = "0.2.10"
3
3
  end
@@ -9,35 +9,35 @@ describe Egregious do
9
9
 
10
10
  describe 'status_code' do
11
11
  it "should translate Symbol to right HTTP STATUS CODE" do
12
- status_code(:bad_request).should == 400
13
- status_code(:unauthorized).should == 401
14
- status_code(:unprocessable_entity).should == 422
12
+ expect(status_code(:bad_request)).to eq(400)
13
+ expect(status_code(:unauthorized)).to eq(401)
14
+ expect(status_code(:unprocessable_entity)).to eq(422)
15
15
  end
16
16
  end
17
17
 
18
18
  describe 'clean_backtrace ' do
19
19
  it "should return nil" do
20
- clean_backtrace(Exception.new).should == nil
20
+ expect(clean_backtrace(Exception.new)).to eq(nil)
21
21
  end
22
22
 
23
23
  it "should return a stack trace" do
24
24
  begin
25
25
  raise Exception.new
26
- rescue Exception=>exception
27
- clean_backtrace(exception).size.should be > 0
26
+ rescue Exception => exception
27
+ expect(clean_backtrace(exception).size).to be > 0
28
28
  end
29
29
  end
30
30
 
31
31
  it "should remove the beginning of the backtrace" do
32
32
  begin
33
33
  raise Exception.new
34
- rescue Exception=>exception
34
+ rescue Exception => exception
35
35
  Rails.instance_eval do
36
36
  def self.root
37
37
  __FILE__
38
38
  end
39
39
  end
40
- clean_backtrace(exception)[0].should match /:\d/
40
+ expect(clean_backtrace(exception)[0]).to match /:\d/
41
41
  end
42
42
  end
43
43
  end
@@ -50,78 +50,78 @@ describe Egregious do
50
50
  describe 'exception_codes' do
51
51
 
52
52
  it "should return forbidden for SecurityError's'" do
53
- exception_codes[SecurityError].should == Egregious.status_code(:forbidden)
53
+ expect(exception_codes[SecurityError]).to eq(Egregious.status_code(:forbidden))
54
54
  end
55
55
 
56
56
  if defined?(ActionController)
57
57
  it "should return expected errors for ActionController" do
58
- exception_codes[AbstractController::ActionNotFound].should == Egregious.status_code(:bad_request)
59
- exception_codes[ActionController::InvalidAuthenticityToken].should == Egregious.status_code(:bad_request)
60
- exception_codes[ActionController::MethodNotAllowed].should == Egregious.status_code(:not_allowed)
61
- exception_codes[ActionController::MissingFile].should == Egregious.status_code(:not_found)
62
- exception_codes[ActionController::RoutingError].should == Egregious.status_code(:bad_request)
63
- exception_codes[ActionController::UnknownController].should == Egregious.status_code(:bad_request)
64
- exception_codes[ActionController::UnknownHttpMethod].should == Egregious.status_code(:not_allowed)
65
- #exception_codes[ActionController::MissingTemplate].should == Egregious.status_code(:not_found)
58
+ expect(exception_codes[AbstractController::ActionNotFound]).to eq(Egregious.status_code(:bad_request))
59
+ expect(exception_codes[ActionController::InvalidAuthenticityToken]).to eq(Egregious.status_code(:bad_request))
60
+ expect(exception_codes[ActionController::MethodNotAllowed]).to eq(Egregious.status_code(:not_allowed))
61
+ expect(exception_codes[ActionController::MissingFile]).to eq(Egregious.status_code(:not_found))
62
+ expect(exception_codes[ActionController::RoutingError]).to eq(Egregious.status_code(:bad_request))
63
+ expect(exception_codes[ActionController::UnknownController]).to eq(Egregious.status_code(:bad_request))
64
+ expect(exception_codes[ActionController::UnknownHttpMethod]).to eq(Egregious.status_code(:not_allowed))
65
+ #exception_codes[ActionController::MissingTemplate].should == Egregious.status_code(:not_found)
66
66
  end
67
67
  end
68
68
 
69
69
  if defined?(ActiveModel)
70
70
  it "should return expected errors for ActiveModel" do
71
- exception_codes[ActiveModel::MissingAttributeError].should == Egregious.status_code(:bad_request)
71
+ expect(exception_codes[ActiveModel::MissingAttributeError]).to eq(Egregious.status_code(:bad_request))
72
72
  end
73
73
  end
74
74
 
75
75
  if defined?(ActiveRecord)
76
76
  it "should return expected errors for ActiveRecord" do
77
- exception_codes[ActiveRecord::AttributeAssignmentError].should == Egregious.status_code(:bad_request)
78
- exception_codes[ActiveRecord::MultiparameterAssignmentErrors].should == Egregious.status_code(:bad_request)
79
- exception_codes[ActiveRecord::ReadOnlyAssociation].should == Egregious.status_code(:forbidden)
80
- exception_codes[ActiveRecord::ReadOnlyRecord].should == Egregious.status_code(:forbidden)
81
- exception_codes[ActiveRecord::RecordInvalid].should == Egregious.status_code(:bad_request)
82
- exception_codes[ActiveRecord::RecordNotFound].should == Egregious.status_code(:not_found)
83
- exception_codes[ActiveRecord::UnknownAttributeError].should == Egregious.status_code(:bad_request)
77
+ expect(exception_codes[ActiveRecord::AttributeAssignmentError]).to eq(Egregious.status_code(:bad_request))
78
+ expect(exception_codes[ActiveRecord::MultiparameterAssignmentErrors]).to eq(Egregious.status_code(:bad_request))
79
+ expect(exception_codes[ActiveRecord::ReadOnlyAssociation]).to eq(Egregious.status_code(:forbidden))
80
+ expect(exception_codes[ActiveRecord::ReadOnlyRecord]).to eq(Egregious.status_code(:forbidden))
81
+ expect(exception_codes[ActiveRecord::RecordInvalid]).to eq(Egregious.status_code(:bad_request))
82
+ expect(exception_codes[ActiveRecord::RecordNotFound]).to eq(Egregious.status_code(:not_found))
83
+ expect(exception_codes[ActiveRecord::UnknownAttributeError]).to eq(Egregious.status_code(:bad_request))
84
84
  end
85
85
  end
86
86
 
87
87
  if defined?(Warden)
88
88
  it "should return expected errors for Warden" do
89
- exception_codes[Warden::NotAuthenticated].should == Egregious.status_code(:unauthorized)
89
+ expect(exception_codes[Warden::NotAuthenticated]).to eq(Egregious.status_code(:unauthorized))
90
90
  end
91
91
  end
92
92
 
93
93
  if defined?(CanCan)
94
94
  it "should return expected errors for CanCan" do
95
95
  # technically this should be forbidden, but for some reason cancan returns AccessDenied when you are not logged in
96
- exception_codes[CanCan::AccessDenied].should == Egregious.status_code(:unauthorized)
97
- exception_codes[CanCan::AuthorizationNotPerformed].should == Egregious.status_code(:unauthorized)
96
+ expect(exception_codes[CanCan::AccessDenied]).to eq(Egregious.status_code(:unauthorized))
97
+ expect(exception_codes[CanCan::AuthorizationNotPerformed]).to eq(Egregious.status_code(:unauthorized))
98
98
  end
99
99
  end
100
-
100
+
101
101
  if defined?(Mongoid)
102
102
  it "should return expected errors for Mongoid" do
103
- exception_codes[Mongoid::Errors::InvalidFind].should == Egregious.status_code(:bad_request)
104
- exception_codes[Mongoid::Errors::DocumentNotFound].should == Egregious.status_code(:not_found)
105
- exception_codes[Mongoid::Errors::Validations].should == Egregious.status_code(:unprocessable_entity)
103
+ expect(exception_codes[Mongoid::Errors::InvalidFind]).to eq(Egregious.status_code(:bad_request))
104
+ expect(exception_codes[Mongoid::Errors::DocumentNotFound]).to eq(Egregious.status_code(:not_found))
105
+ expect(exception_codes[Mongoid::Errors::Validations]).to eq(Egregious.status_code(:unprocessable_entity))
106
106
  end
107
-
107
+
108
108
  if Mongoid::VERSION > '3'
109
109
  it "should return expected errors for Mongoid 3+" do
110
- exception_codes[Mongoid::Errors::ReadonlyAttribute].should == Egregious.status_code(:forbidden)
111
- exception_codes[Mongoid::Errors::UnknownAttribute].should == Egregious.status_code(:bad_request)
110
+ expect(exception_codes[Mongoid::Errors::ReadonlyAttribute]).to eq(Egregious.status_code(:forbidden))
111
+ expect(exception_codes[Mongoid::Errors::UnknownAttribute]).to eq(Egregious.status_code(:bad_request))
112
112
  end
113
113
  end
114
114
  end
115
115
  end
116
116
 
117
117
  describe "status_code_for_exception" do
118
- it 'should return 500 for non-mapped exceptions'do
119
- exception_codes[Exception].should == nil
120
- status_code_for_exception(Exception.new).should=='500'
118
+ it 'should return 500 for non-mapped exceptions' do
119
+ expect(exception_codes[Exception]).to eq(nil)
120
+ expect(status_code_for_exception(Exception.new)).to eq(500)
121
121
  end
122
122
  it 'should allow configuration of exception codes' do
123
123
  Egregious.exception_codes.merge!({NameError => "999"})
124
- status_code_for_exception(NameError.new).should=="999"
124
+ expect(status_code_for_exception(NameError.new)).to eq(999)
125
125
  end
126
126
  end
127
127
 
@@ -132,7 +132,7 @@ describe Egregious do
132
132
  __FILE__
133
133
  end
134
134
  end
135
- build_html_file_path('500').should == File.join(__FILE__, 'public', '500.html')
135
+ expect(build_html_file_path('500')).to eq(File.join(__FILE__, 'public', '500.html'))
136
136
  end
137
137
  end
138
138
  end
@@ -7,28 +7,28 @@ describe Exception do
7
7
  it "should output valid xml on to_xml" do
8
8
  doc = Hpricot.XML(Exception.new("Yes").to_xml)
9
9
  (doc/:errors).each do |error|
10
- (error/:error).inner_html.should=='Yes'
11
- (error/:type).inner_html.should=='Exception'
10
+ expect((error/:error).inner_html).to eq('Yes')
11
+ expect((error/:type).inner_html).to eq('Exception')
12
12
  end
13
13
  end
14
14
 
15
15
  it "should output valid xml on to_xml with values to escape" do
16
16
  doc = Hpricot.XML(Exception.new('<a title="1<2"/>').to_xml)
17
17
  (doc/:errors).each do |error|
18
- HTMLEntities.new.decode((error/:error).inner_html).should=='<a title="1<2"/>'
18
+ expect(HTMLEntities.new.decode((error/:error).inner_html)).to eq('<a title="1<2"/>')
19
19
  end
20
20
  end
21
21
 
22
22
  it "should output be valid json on to_json" do
23
23
  result = JSON.parse(Exception.new("Yes").to_json)
24
- result['error'].should == "Yes"
25
- result['type'].should == "Exception"
24
+ expect(result['error']).to eq("Yes")
25
+ expect(result['type']).to eq("Exception")
26
26
  end
27
27
 
28
28
  it "should output be valid json on to_json with quotes" do
29
- result = JSON.parse(Exception.new('Yes "its good"').to_json)
30
- result['error'].should == 'Yes "its good"'
31
- end
29
+ result = JSON.parse(Exception.new('Yes "its good"').to_json)
30
+ expect(result['error']).to eq('Yes "its good"')
31
+ end
32
32
 
33
33
 
34
34
  it "should parse module names out" do
@@ -38,50 +38,77 @@ describe Exception do
38
38
  end
39
39
  end
40
40
  end
41
- X::Y::Z.new.exception_type.should == 'Z'
41
+ expect(X::Y::Z.new.exception_type).to eq('Z')
42
+ end
43
+ end
44
+
45
+ describe "exception with http_status method" do
46
+ class PartyLikeIts < Egregious::Error
47
+ def initialize(message=nil)
48
+ super(message,1999)
49
+ end
50
+ end
51
+ let(:exception_instance) { PartyLikeIts.new }
52
+
53
+ it 'should honor if not in exception code map' do
54
+ expect(Egregious.exception_codes[PartyLikeIts]).to eq(nil)
55
+ expect(Egregious.status_code_for_exception(exception_instance)).to eq(1999)
56
+ end
57
+
58
+ it 'should be overridden by exception code map' do
59
+ Egregious.exception_codes.merge!({PartyLikeIts => :bad_request})
60
+ expect(Egregious.exception_codes[PartyLikeIts]).to eq(:bad_request)
61
+ expect(Egregious.status_code_for_exception(exception_instance)).to eq(400)
62
+ end
63
+
64
+ it "should throw 500 if nil" do
65
+ expect(Egregious.status_code_for_exception(Egregious::Error.new)).to eq(500)
66
+ end
67
+ it "should throw code for string" do
68
+ expect(Egregious.status_code_for_exception(Egregious::Error.new("hi","2001"))).to eq(2001)
42
69
  end
43
70
  end
44
71
 
45
72
  if defined?(Mongoid)
46
73
  class TestModel
47
74
  include Mongoid::Document
48
-
75
+
49
76
  field :foo
50
77
  validates_presence_of :foo
51
78
  end
52
79
 
53
-
80
+
54
81
  describe Mongoid::Errors::MongoidError do
55
82
  let(:exception) { Mongoid::Errors::InvalidFind.new }
56
83
  let(:error_message) { "Calling Document.find with nil is invalid." }
57
-
84
+
58
85
  it "should output json with a short problem description" do
59
86
  result = JSON.parse(exception.to_json)
60
- result['error'].should =~ /#{error_message}/
87
+ expect(result['error']).to match(/#{error_message}/)
61
88
  end
62
-
89
+
63
90
  it "should output xml with a short problem description" do
64
91
  doc = Hpricot.XML(exception.to_xml)
65
92
  (doc/:errors).each do |error|
66
- HTMLEntities.new.decode((error/:error).inner_html).should =~ /#{error_message}/
93
+ expect(HTMLEntities.new.decode((error/:error).inner_html)).to match(/#{error_message}/)
67
94
  end
68
95
  end
69
96
  end
70
-
97
+
71
98
  describe Mongoid::Errors::Validations do
72
99
  let(:model) { TestModel.create }
73
100
  let(:exception) { Mongoid::Errors::Validations.new(model) }
74
101
  let(:error_message) { model.errors.full_messages.first }
75
-
102
+
76
103
  it "should output json with a short summary" do
77
104
  result = JSON.parse(exception.to_json)
78
- result['error'].should == error_message
105
+ expect(result['error']).to eq(error_message)
79
106
  end
80
-
107
+
81
108
  it "should output xml with a short problem description" do
82
109
  doc = Hpricot.XML(exception.to_xml)
83
110
  (doc/:errors).each do |error|
84
- HTMLEntities.new.decode((error/:error).inner_html).should == error_message
111
+ expect(HTMLEntities.new.decode((error/:error).inner_html)).to eq(error_message)
85
112
  end
86
113
  end
87
114
  end
metadata CHANGED
@@ -1,159 +1,159 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: egregious
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.8
4
+ version: 0.2.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Russell Edens
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-05 00:00:00.000000000 Z
11
+ date: 2015-10-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>'
17
+ - - ">"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '3.0'
20
- - - <
20
+ - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: '5'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - ! '>'
27
+ - - ">"
28
28
  - !ruby/object:Gem::Version
29
29
  version: '3.0'
30
- - - <
30
+ - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '5'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: rack
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - ! '>='
37
+ - - ">="
38
38
  - !ruby/object:Gem::Version
39
39
  version: 1.3.6
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - ! '>='
44
+ - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: 1.3.6
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: htmlentities
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - ! '>='
51
+ - - ">="
52
52
  - !ruby/object:Gem::Version
53
53
  version: '0'
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - ! '>='
58
+ - - ">="
59
59
  - !ruby/object:Gem::Version
60
60
  version: '0'
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: rspec
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - ! '>='
65
+ - - ">="
66
66
  - !ruby/object:Gem::Version
67
67
  version: '0'
68
68
  type: :development
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
- - - ! '>='
72
+ - - ">="
73
73
  - !ruby/object:Gem::Version
74
74
  version: '0'
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: json
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
- - - ! '>='
79
+ - - ">="
80
80
  - !ruby/object:Gem::Version
81
81
  version: '0'
82
82
  type: :development
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
- - - ! '>='
86
+ - - ">="
87
87
  - !ruby/object:Gem::Version
88
88
  version: '0'
89
89
  - !ruby/object:Gem::Dependency
90
90
  name: hpricot
91
91
  requirement: !ruby/object:Gem::Requirement
92
92
  requirements:
93
- - - ! '>='
93
+ - - ">="
94
94
  - !ruby/object:Gem::Version
95
95
  version: '0'
96
96
  type: :development
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
- - - ! '>='
100
+ - - ">="
101
101
  - !ruby/object:Gem::Version
102
102
  version: '0'
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: warden
105
105
  requirement: !ruby/object:Gem::Requirement
106
106
  requirements:
107
- - - ! '>='
107
+ - - ">="
108
108
  - !ruby/object:Gem::Version
109
109
  version: '0'
110
110
  type: :development
111
111
  prerelease: false
112
112
  version_requirements: !ruby/object:Gem::Requirement
113
113
  requirements:
114
- - - ! '>='
114
+ - - ">="
115
115
  - !ruby/object:Gem::Version
116
116
  version: '0'
117
117
  - !ruby/object:Gem::Dependency
118
118
  name: cancan
119
119
  requirement: !ruby/object:Gem::Requirement
120
120
  requirements:
121
- - - ! '>='
121
+ - - ">="
122
122
  - !ruby/object:Gem::Version
123
123
  version: '0'
124
124
  type: :development
125
125
  prerelease: false
126
126
  version_requirements: !ruby/object:Gem::Requirement
127
127
  requirements:
128
- - - ! '>='
128
+ - - ">="
129
129
  - !ruby/object:Gem::Version
130
130
  version: '0'
131
131
  - !ruby/object:Gem::Dependency
132
132
  name: mongoid
133
133
  requirement: !ruby/object:Gem::Requirement
134
134
  requirements:
135
- - - ! '>='
135
+ - - ">="
136
136
  - !ruby/object:Gem::Version
137
137
  version: '0'
138
138
  type: :development
139
139
  prerelease: false
140
140
  version_requirements: !ruby/object:Gem::Requirement
141
141
  requirements:
142
- - - ! '>='
142
+ - - ">="
143
143
  - !ruby/object:Gem::Version
144
144
  version: '0'
145
145
  - !ruby/object:Gem::Dependency
146
146
  name: bson_ext
147
147
  requirement: !ruby/object:Gem::Requirement
148
148
  requirements:
149
- - - ! '>='
149
+ - - ">="
150
150
  - !ruby/object:Gem::Version
151
151
  version: '0'
152
152
  type: :development
153
153
  prerelease: false
154
154
  version_requirements: !ruby/object:Gem::Requirement
155
155
  requirements:
156
- - - ! '>='
156
+ - - ">="
157
157
  - !ruby/object:Gem::Version
158
158
  version: '0'
159
159
  description: Egregious is a rails based exception handling gem for well defined http
@@ -164,7 +164,7 @@ executables: []
164
164
  extensions: []
165
165
  extra_rdoc_files: []
166
166
  files:
167
- - .gitignore
167
+ - ".gitignore"
168
168
  - Gemfile
169
169
  - LICENSE
170
170
  - README
@@ -187,17 +187,17 @@ require_paths:
187
187
  - lib
188
188
  required_ruby_version: !ruby/object:Gem::Requirement
189
189
  requirements:
190
- - - ! '>='
190
+ - - ">="
191
191
  - !ruby/object:Gem::Version
192
192
  version: '0'
193
193
  required_rubygems_version: !ruby/object:Gem::Requirement
194
194
  requirements:
195
- - - ! '>='
195
+ - - ">="
196
196
  - !ruby/object:Gem::Version
197
197
  version: '0'
198
198
  requirements: []
199
199
  rubyforge_project: egregious
200
- rubygems_version: 2.2.2
200
+ rubygems_version: 2.4.6
201
201
  signing_key:
202
202
  specification_version: 4
203
203
  summary: Egregious is a rails based exception handling gem for well defined http exception