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 +5 -13
- data/.gitignore +0 -1
- data/README +15 -2
- data/lib/egregious.rb +8 -2
- data/lib/egregious/extensions/exception.rb +11 -0
- data/lib/egregious/version.rb +1 -1
- data/spec/egregious_spec.rb +40 -40
- data/spec/exceptions_spec.rb +47 -20
- metadata +28 -28
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
NWE3YjNjY2JiYjY5NGRmMjlkNTA2NDRkMzllOGRjMzFhMTRhZTYyMg==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 74b9d8d3b64d8c2ab878e23b18eb2c28f73fd6c6
|
4
|
+
data.tar.gz: 8d4b0939f3140b103168b09a82b86e6889996eb5
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
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
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
|
-
|
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
|
-
|
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
|
|
data/lib/egregious.rb
CHANGED
@@ -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
|
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
|
-
|
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
|
data/lib/egregious/version.rb
CHANGED
data/spec/egregious_spec.rb
CHANGED
@@ -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).
|
13
|
-
status_code(:unauthorized).
|
14
|
-
status_code(:unprocessable_entity).
|
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).
|
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.
|
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].
|
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].
|
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
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
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].
|
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
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
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].
|
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].
|
97
|
-
exception_codes[CanCan::AuthorizationNotPerformed].
|
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].
|
104
|
-
exception_codes[Mongoid::Errors::DocumentNotFound].
|
105
|
-
exception_codes[Mongoid::Errors::Validations].
|
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].
|
111
|
-
exception_codes[Mongoid::Errors::UnknownAttribute].
|
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].
|
120
|
-
status_code_for_exception(Exception.new).
|
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).
|
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').
|
135
|
+
expect(build_html_file_path('500')).to eq(File.join(__FILE__, 'public', '500.html'))
|
136
136
|
end
|
137
137
|
end
|
138
138
|
end
|
data/spec/exceptions_spec.rb
CHANGED
@@ -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
|
-
|
11
|
-
(error/:type).inner_html.
|
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
|
-
|
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'].
|
25
|
-
result['type'].
|
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
|
-
|
30
|
-
|
31
|
-
|
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.
|
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'].
|
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
|
-
|
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'].
|
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
|
-
|
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.
|
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-
|
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.
|
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
|