egregious 0.2.8 → 0.2.10

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,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