rambulance 3.1.0 → 3.3.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 +4 -4
- data/.github/workflows/tests.yml +3 -3
- data/Appraisals +6 -2
- data/CHANGELOG.md +32 -4
- data/Gemfile +1 -0
- data/README.md +12 -3
- data/gemfiles/rails_42.gemfile +1 -1
- data/gemfiles/rails_50.gemfile +1 -1
- data/gemfiles/rails_51.gemfile +1 -0
- data/gemfiles/rails_52.gemfile +1 -0
- data/gemfiles/rails_60.gemfile +1 -0
- data/gemfiles/rails_61.gemfile +1 -0
- data/gemfiles/rails_70.gemfile +1 -0
- data/gemfiles/rails_71.gemfile +1 -0
- data/gemfiles/rails_72.gemfile +10 -0
- data/gemfiles/rails_edge.gemfile +1 -1
- data/lib/generators/rambulance/templates/exceptions_app.rb +1 -1
- data/lib/generators/rambulance/templates/rambulance.rb +1 -1
- data/lib/generators/rambulance/templates/views/{unprocessable_entity.html.erb → unprocessable_content.html.erb} +1 -1
- data/lib/rambulance/exceptions_app.rb +11 -1
- data/lib/rambulance/version.rb +1 -1
- data/test/exceptions_app_test.rb +6 -0
- metadata +6 -5
- /data/lib/generators/rambulance/templates/views/{unprocessable_entity.json.jbuilder → unprocessable_content.json.jbuilder} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9370918184eb1f9f6429fa18b2ef6f08d845050f98271184abd941679f8cb4cf
|
4
|
+
data.tar.gz: 9e0270f66522474c1b2ef50a0685f7133cb9c2985367b836cc4070b9bb92ada0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd7673e1a6197f39ef3e70786c7334e1933eb02ce6b44095ab8ff0c0dc30d8d04bbef6ec4c351fae7c7ad0e30aef05caf538029210098d41776865521183d97f
|
7
|
+
data.tar.gz: 8e8bde197754afddfbda3049f0863fb743c6f99df536c5bba3d803543aed957f89092323a44a8bf6ef185d4d50edc195ba9091e3d938780f8de190d2d0a1a8c3
|
data/.github/workflows/tests.yml
CHANGED
@@ -115,7 +115,7 @@ jobs:
|
|
115
115
|
env:
|
116
116
|
BUNDLE_GEMFILE: ${{ matrix.gemfile }}
|
117
117
|
steps:
|
118
|
-
- uses: actions/checkout@
|
118
|
+
- uses: actions/checkout@v4
|
119
119
|
- name: Set up Ruby
|
120
120
|
uses: ruby/setup-ruby@v1
|
121
121
|
with:
|
@@ -130,7 +130,7 @@ jobs:
|
|
130
130
|
env:
|
131
131
|
BUNDLE_GEMFILE: gemfiles/rails_edge.gemfile
|
132
132
|
steps:
|
133
|
-
- uses: actions/checkout@
|
133
|
+
- uses: actions/checkout@v4
|
134
134
|
- name: Set up Ruby
|
135
135
|
uses: ruby/setup-ruby@v1
|
136
136
|
with:
|
@@ -153,7 +153,7 @@ jobs:
|
|
153
153
|
env:
|
154
154
|
BUNDLE_GEMFILE: ${{ matrix.gemfile }}
|
155
155
|
steps:
|
156
|
-
- uses: actions/checkout@
|
156
|
+
- uses: actions/checkout@v4
|
157
157
|
- name: Set up Ruby
|
158
158
|
uses: ruby/setup-ruby@v1
|
159
159
|
with:
|
data/Appraisals
CHANGED
@@ -49,12 +49,16 @@ appraise "rails_71" do
|
|
49
49
|
gem "railties", "~> 7.1.0"
|
50
50
|
end
|
51
51
|
|
52
|
+
appraise "rails_72" do
|
53
|
+
gem "activesupport", "~> 7.2.0"
|
54
|
+
gem "actionpack", "~> 7.2.0"
|
55
|
+
gem "railties", "~> 7.2.0"
|
56
|
+
end
|
57
|
+
|
52
58
|
appraise "rails_edge" do
|
53
59
|
git 'https://github.com/rails/rails.git' do
|
54
60
|
gem "activesupport", require: 'active_support'
|
55
61
|
gem "actionpack", require: 'action_pack'
|
56
62
|
gem "railties"
|
57
63
|
end
|
58
|
-
|
59
|
-
gem 'minitest', '~> 5.3.4'
|
60
64
|
end
|
data/CHANGELOG.md
CHANGED
@@ -1,11 +1,39 @@
|
|
1
|
-
## v3.
|
1
|
+
## v3.3.0
|
2
2
|
|
3
|
-
_<sup>
|
3
|
+
_<sup>Unreleased</sup>_
|
4
4
|
|
5
5
|
#### New Features
|
6
6
|
|
7
|
-
-
|
8
|
-
|
7
|
+
- Add support for Rails 7.1 ([<tt>e6d42b51</tt>](https://github.com/yuki24/rambulance/commit/e6d42b514d0bdbc2ea5b1603f85ecc9fa24b819a))
|
8
|
+
|
9
|
+
## [v3.2.0](https://github.com/yuki24/rambulance/tree/v3.2.0)
|
10
|
+
|
11
|
+
_<sup>released at 2024-08-04 03:04:26 UTC</sup>_
|
12
|
+
|
13
|
+
This release includes a **breaking change**. Please read the details below carefully.
|
14
|
+
|
15
|
+
#### New Features
|
16
|
+
|
17
|
+
- Fixed compatibility with Rack (see [rack/rack#2137](https://github.com/rack/rack/pull/2137)) ([#77](https://github.com/yuki24/rambulance/issues/77) [@tmaier](https://github.com/tmaier), [#78](https://github.com/yuki24/rambulance/pull/78))
|
18
|
+
|
19
|
+
#### Breaking Changes
|
20
|
+
|
21
|
+
The Rack compatibility fix is related to Rack becoming more compliant with the IANA HTTP Status Code Registry.
|
22
|
+
As a result:
|
23
|
+
|
24
|
+
- `unprocessable_entity` has been renamed to `unprocessable_content`.
|
25
|
+
- Rambulance will redirect any request from `unprocessable_entity` to `unprocessable_content` for backward compatibility.
|
26
|
+
- Users **must** rename the view file from `app/views/errors/unprocessable_entity.html.erb` to `app/views/errors/unprocessable_content.html.erb`.
|
27
|
+
- Users **should** update the hash values in their configurations: Change `unprocessable_entity` to `unprocessable_content` in `config.rescue_responses`/`config.action_dispatch.rescue_responses`
|
28
|
+
|
29
|
+
## [v3.1.0](https://github.com/yuki24/rambulance/tree/v3.1.0)
|
30
|
+
|
31
|
+
_<sup>released at 2024-01-04 10:08:11 UTC</sup>_
|
32
|
+
|
33
|
+
#### New Features
|
34
|
+
|
35
|
+
- The test helper is now compatible with Rails Edge (8.0) ([#73](https://github.com/yuki24/rambulance/pull/73), [#75](https://github.com/yuki24/rambulance/pull/75))
|
36
|
+
- Add support for Ruby 3.3 ([#74](https://github.com/yuki24/rambulance/pull/74))
|
9
37
|
|
10
38
|
## [v3.0.0](https://github.com/yuki24/rambulance/tree/v3.0.0)
|
11
39
|
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -48,12 +48,21 @@ Then do the following:
|
|
48
48
|
```ruby
|
49
49
|
# config/initializers/rambulance.rb
|
50
50
|
config.rescue_responses = {
|
51
|
-
"ActiveRecord::RecordNotUnique" => :
|
51
|
+
"ActiveRecord::RecordNotUnique" => :unprocessable_content,
|
52
52
|
"CanCan::AccessDenied" => :forbidden,
|
53
53
|
"YourCustomException" => :not_found
|
54
54
|
}
|
55
55
|
```
|
56
56
|
|
57
|
+
## Special case `unprocessable_entity`/`unprocessable_content` (HTTP Status 422)
|
58
|
+
|
59
|
+
Rack renamed `unprocessable_entity` to `unprocessable_content`.
|
60
|
+
|
61
|
+
Rambulance supports both, but defaults to `unprocessable_content` with version 3.2.0 and later.
|
62
|
+
`unprocessable_entity` is supported with a redirect to `unprocessable_content`.
|
63
|
+
|
64
|
+
This means the view file is called `app/views/errors/unprocessable_content.html.erb`, not `app/views/errors/unprocessable_entity.html.erb`.
|
65
|
+
|
57
66
|
## Local Development
|
58
67
|
|
59
68
|
### Open `localhost:3000/rambulance/***` in Your Browser
|
@@ -123,8 +132,8 @@ Note that testing error pages is not encouraged in Rails as it leads to overuse
|
|
123
132
|
|
124
133
|
## Supported Versions
|
125
134
|
|
126
|
-
* Ruby 2.
|
127
|
-
* Rails 4.2, 5.0, 5.1, 5.2, 6.0, 6.1, 7.0 and edge
|
135
|
+
* Ruby 2.5, 2.6, 2.7, 3.0, 3.1, 3.2, 3.3 and JRuby 9.3, 9.4
|
136
|
+
* Rails 4.2, 5.0, 5.1, 5.2, 6.0, 6.1, 7.0, 7.1 and edge
|
128
137
|
|
129
138
|
Rambulance doesn't work with Rails 3.1 and below since they don't provide a way to use a custom exceptions app.
|
130
139
|
|
data/gemfiles/rails_42.gemfile
CHANGED
data/gemfiles/rails_50.gemfile
CHANGED
data/gemfiles/rails_51.gemfile
CHANGED
data/gemfiles/rails_52.gemfile
CHANGED
data/gemfiles/rails_60.gemfile
CHANGED
data/gemfiles/rails_61.gemfile
CHANGED
data/gemfiles/rails_70.gemfile
CHANGED
data/gemfiles/rails_71.gemfile
CHANGED
data/gemfiles/rails_edge.gemfile
CHANGED
@@ -15,7 +15,7 @@ Rambulance.setup do |config|
|
|
15
15
|
# If Rambulance receives an exception that is not listed here, it'll render
|
16
16
|
# the internal server error template and return 500 as http status.
|
17
17
|
config.rescue_responses = {
|
18
|
-
# "ActiveRecord::RecordNotUnique" => :
|
18
|
+
# "ActiveRecord::RecordNotUnique" => :unprocessable_content,
|
19
19
|
# "CanCan::AccessDenied" => :forbidden,
|
20
20
|
# "Pundit::NotAuthorizedError" => :forbidden,
|
21
21
|
# "YourCustomException" => :not_found
|
@@ -38,7 +38,11 @@ module Rambulance
|
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
-
|
41
|
+
if exception.nil? && status_in_words == :unprocessable_entity
|
42
|
+
[302, { "Location" => "/rambulance/unprocessable_content" }, [""]]
|
43
|
+
else
|
44
|
+
action(status_in_words).call(env)
|
45
|
+
end
|
42
46
|
end
|
43
47
|
|
44
48
|
def self.local_prefixes
|
@@ -53,6 +57,12 @@ module Rambulance
|
|
53
57
|
ACTION
|
54
58
|
end
|
55
59
|
|
60
|
+
def unprocessable_entity
|
61
|
+
unprocessable_content_path = error_path(:unprocessable_content)
|
62
|
+
|
63
|
+
render(template_exists?(unprocessable_content_path) ? unprocessable_content_path : error_path(:internal_server_error))
|
64
|
+
end
|
65
|
+
|
56
66
|
def process(action, *args)
|
57
67
|
if action.to_s.empty?
|
58
68
|
action = request.env["PATH_INFO"][1..-1].to_sym
|
data/lib/rambulance/version.rb
CHANGED
data/test/exceptions_app_test.rb
CHANGED
@@ -6,4 +6,10 @@ class ExeptionsAppTest < ActionDispatch::IntegrationTest
|
|
6
6
|
|
7
7
|
assert_equal 404, response.status
|
8
8
|
end
|
9
|
+
|
10
|
+
test 'returns 302 for unprocessable_entity' do
|
11
|
+
get '/rambulance/unprocessable_entity', headers: { 'Accept' => '*/*' }
|
12
|
+
|
13
|
+
assert_redirected_to '/rambulance/unprocessable_content'
|
14
|
+
end
|
9
15
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rambulance
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yuki Nishijima
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2024-
|
12
|
+
date: 2024-08-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -164,6 +164,7 @@ files:
|
|
164
164
|
- gemfiles/rails_61.gemfile
|
165
165
|
- gemfiles/rails_70.gemfile
|
166
166
|
- gemfiles/rails_71.gemfile
|
167
|
+
- gemfiles/rails_72.gemfile
|
167
168
|
- gemfiles/rails_edge.gemfile
|
168
169
|
- lib/generators/rambulance/exceptions_app_generator.rb
|
169
170
|
- lib/generators/rambulance/install_generator.rb
|
@@ -178,8 +179,8 @@ files:
|
|
178
179
|
- lib/generators/rambulance/templates/views/not_acceptable.text.erb
|
179
180
|
- lib/generators/rambulance/templates/views/not_found.html.erb
|
180
181
|
- lib/generators/rambulance/templates/views/not_found.json.jbuilder
|
181
|
-
- lib/generators/rambulance/templates/views/
|
182
|
-
- lib/generators/rambulance/templates/views/
|
182
|
+
- lib/generators/rambulance/templates/views/unprocessable_content.html.erb
|
183
|
+
- lib/generators/rambulance/templates/views/unprocessable_content.json.jbuilder
|
183
184
|
- lib/rambulance.rb
|
184
185
|
- lib/rambulance/engine.rb
|
185
186
|
- lib/rambulance/exceptions_app.rb
|
@@ -223,7 +224,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
223
224
|
- !ruby/object:Gem::Version
|
224
225
|
version: '0'
|
225
226
|
requirements: []
|
226
|
-
rubygems_version: 3.
|
227
|
+
rubygems_version: 3.5.11
|
227
228
|
signing_key:
|
228
229
|
specification_version: 4
|
229
230
|
summary: Simple and safe way to dynamically generate error pages
|