public_rescue 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/Gemfile +15 -0
- data/Gemfile.lock +82 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +59 -0
- data/Rakefile +54 -0
- data/VERSION +1 -0
- data/app/controllers/public_rescue/public_errors_controller.rb +38 -0
- data/app/views/public_rescue/public_errors/internal_server_error.html.erb +4 -0
- data/app/views/public_rescue/public_errors/not_found.html.erb +4 -0
- data/app/views/public_rescue/public_errors/unprocessable_entity.html.erb +4 -0
- data/lib/generators/public_rescue/public_rescue_generator.rb +17 -0
- data/lib/generators/public_rescue/views_generator.rb +14 -0
- data/lib/generators/template/controller.rb +25 -0
- data/lib/public_rescue/rails.rb +15 -0
- data/lib/public_rescue/show_exceptions.rb +40 -0
- data/lib/public_rescue.rb +12 -0
- data/public_rescue.gemspec +75 -0
- data/test/helper.rb +18 -0
- data/test/test_public_rescue.rb +7 -0
- metadata +161 -0
data/.document
ADDED
data/Gemfile
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
source "http://rubygems.org"
|
2
|
+
# Add dependencies required to use your gem here.
|
3
|
+
# Example:
|
4
|
+
# gem "activesupport", ">= 2.3.5"
|
5
|
+
|
6
|
+
gem "rails", "~> 3.0.0"
|
7
|
+
|
8
|
+
# Add dependencies to develop your gem here.
|
9
|
+
# Include everything needed to run rake, tests, features, etc.
|
10
|
+
group :development do
|
11
|
+
gem "shoulda", ">= 0"
|
12
|
+
gem "bundler", "~> 1.0.0"
|
13
|
+
gem "jeweler", "~> 1.5.2"
|
14
|
+
gem "rcov", ">= 0"
|
15
|
+
end
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
abstract (1.0.0)
|
5
|
+
actionmailer (3.0.7)
|
6
|
+
actionpack (= 3.0.7)
|
7
|
+
mail (~> 2.2.15)
|
8
|
+
actionpack (3.0.7)
|
9
|
+
activemodel (= 3.0.7)
|
10
|
+
activesupport (= 3.0.7)
|
11
|
+
builder (~> 2.1.2)
|
12
|
+
erubis (~> 2.6.6)
|
13
|
+
i18n (~> 0.5.0)
|
14
|
+
rack (~> 1.2.1)
|
15
|
+
rack-mount (~> 0.6.14)
|
16
|
+
rack-test (~> 0.5.7)
|
17
|
+
tzinfo (~> 0.3.23)
|
18
|
+
activemodel (3.0.7)
|
19
|
+
activesupport (= 3.0.7)
|
20
|
+
builder (~> 2.1.2)
|
21
|
+
i18n (~> 0.5.0)
|
22
|
+
activerecord (3.0.7)
|
23
|
+
activemodel (= 3.0.7)
|
24
|
+
activesupport (= 3.0.7)
|
25
|
+
arel (~> 2.0.2)
|
26
|
+
tzinfo (~> 0.3.23)
|
27
|
+
activeresource (3.0.7)
|
28
|
+
activemodel (= 3.0.7)
|
29
|
+
activesupport (= 3.0.7)
|
30
|
+
activesupport (3.0.7)
|
31
|
+
arel (2.0.9)
|
32
|
+
builder (2.1.2)
|
33
|
+
erubis (2.6.6)
|
34
|
+
abstract (>= 1.0.0)
|
35
|
+
git (1.2.5)
|
36
|
+
i18n (0.5.0)
|
37
|
+
jeweler (1.5.2)
|
38
|
+
bundler (~> 1.0.0)
|
39
|
+
git (>= 1.2.5)
|
40
|
+
rake
|
41
|
+
mail (2.2.19)
|
42
|
+
activesupport (>= 2.3.6)
|
43
|
+
i18n (>= 0.4.0)
|
44
|
+
mime-types (~> 1.16)
|
45
|
+
treetop (~> 1.4.8)
|
46
|
+
mime-types (1.16)
|
47
|
+
polyglot (0.3.1)
|
48
|
+
rack (1.2.2)
|
49
|
+
rack-mount (0.6.14)
|
50
|
+
rack (>= 1.0.0)
|
51
|
+
rack-test (0.5.7)
|
52
|
+
rack (>= 1.0)
|
53
|
+
rails (3.0.7)
|
54
|
+
actionmailer (= 3.0.7)
|
55
|
+
actionpack (= 3.0.7)
|
56
|
+
activerecord (= 3.0.7)
|
57
|
+
activeresource (= 3.0.7)
|
58
|
+
activesupport (= 3.0.7)
|
59
|
+
bundler (~> 1.0)
|
60
|
+
railties (= 3.0.7)
|
61
|
+
railties (3.0.7)
|
62
|
+
actionpack (= 3.0.7)
|
63
|
+
activesupport (= 3.0.7)
|
64
|
+
rake (>= 0.8.7)
|
65
|
+
thor (~> 0.14.4)
|
66
|
+
rake (0.8.7)
|
67
|
+
rcov (0.9.9)
|
68
|
+
shoulda (2.11.3)
|
69
|
+
thor (0.14.6)
|
70
|
+
treetop (1.4.9)
|
71
|
+
polyglot (>= 0.3.1)
|
72
|
+
tzinfo (0.3.27)
|
73
|
+
|
74
|
+
PLATFORMS
|
75
|
+
ruby
|
76
|
+
|
77
|
+
DEPENDENCIES
|
78
|
+
bundler (~> 1.0.0)
|
79
|
+
jeweler (~> 1.5.2)
|
80
|
+
rails (~> 3.0.0)
|
81
|
+
rcov
|
82
|
+
shoulda
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2011 Cyril Picard
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
= PublicRescue
|
2
|
+
|
3
|
+
PublicRescue is a gem for rails application who want to display dynamic error pages.
|
4
|
+
It creates a new Rack middleware which replaces <tt>ActionDispatch::ShowExceptions</tt> and overwrites the rescue_action_in_public method.
|
5
|
+
|
6
|
+
== Requirements
|
7
|
+
|
8
|
+
* Rails ~> 3.0.0
|
9
|
+
|
10
|
+
== Installation
|
11
|
+
|
12
|
+
This library is intended to be installed as a gem
|
13
|
+
|
14
|
+
$ gem install public_rescue
|
15
|
+
|
16
|
+
After you installed PublicRescue, you need to add it to your Gemfile and you're done ! It will use the default views included with PublicRescue.
|
17
|
+
|
18
|
+
== Customization
|
19
|
+
|
20
|
+
PublicRescue comes with 2 generators.
|
21
|
+
|
22
|
+
$ rails g public_rescue:views
|
23
|
+
|
24
|
+
This will install all views into app/view/public_rescue/public_errors. You can now customize your views.
|
25
|
+
|
26
|
+
If you need to have access to the controller, you can run :
|
27
|
+
|
28
|
+
$ rails g public_rescue NAME
|
29
|
+
|
30
|
+
This will generate a controller that inherits from PublicRescue::PublicErrorsController and install the views into app/views/NAME. In the controller you have access to the <tt>env['public_rescue.exception_details']</tt> variable which contains additional information about the exception :
|
31
|
+
|
32
|
+
env['public_rescue.exception_details'] = {
|
33
|
+
:request,
|
34
|
+
:exception,
|
35
|
+
:status,
|
36
|
+
:application_trace,
|
37
|
+
:framework_trace,
|
38
|
+
:full_trace
|
39
|
+
}
|
40
|
+
|
41
|
+
== TODO
|
42
|
+
|
43
|
+
I should probably write some true tests...
|
44
|
+
|
45
|
+
== Contributing to public_rescue
|
46
|
+
|
47
|
+
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
48
|
+
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
|
49
|
+
* Fork the project
|
50
|
+
* Start a feature/bugfix branch
|
51
|
+
* Commit and push until you are happy with your contribution
|
52
|
+
* Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
|
53
|
+
* Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
|
54
|
+
|
55
|
+
== Copyright
|
56
|
+
|
57
|
+
Copyright (c) 2011 Cyril Picard. See LICENSE.txt for
|
58
|
+
further details.
|
59
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
begin
|
4
|
+
Bundler.setup(:default, :development)
|
5
|
+
rescue Bundler::BundlerError => e
|
6
|
+
$stderr.puts e.message
|
7
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
+
exit e.status_code
|
9
|
+
end
|
10
|
+
require 'rake'
|
11
|
+
|
12
|
+
require 'jeweler'
|
13
|
+
Jeweler::Tasks.new do |gem|
|
14
|
+
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
15
|
+
gem.name = "public_rescue"
|
16
|
+
gem.homepage = "http://github.com/cyrilpic/public_rescue"
|
17
|
+
gem.license = "MIT"
|
18
|
+
gem.summary = %Q{Rails3 gem for displaying dynamic error pages.}
|
19
|
+
gem.description = %Q{PublicRescue is a gem for rails application who want to display dynamic error pages. It creates a new Rack middleware which replaces ActionDispatch::ShowExceptions and overwrites the rescue_action_in_public method.}
|
20
|
+
gem.email = "Cyril@picard.ch"
|
21
|
+
gem.authors = ["Cyril Picard"]
|
22
|
+
# Include your dependencies below. Runtime dependencies are required when using your gem,
|
23
|
+
# and development dependencies are only needed for development (ie running rake tasks, tests, etc)
|
24
|
+
# gem.add_runtime_dependency 'jabber4r', '> 0.1'
|
25
|
+
# gem.add_development_dependency 'rspec', '> 1.2.3'
|
26
|
+
|
27
|
+
end
|
28
|
+
Jeweler::RubygemsDotOrgTasks.new
|
29
|
+
|
30
|
+
require 'rake/testtask'
|
31
|
+
Rake::TestTask.new(:test) do |test|
|
32
|
+
test.libs << 'lib' << 'test'
|
33
|
+
test.pattern = 'test/**/test_*.rb'
|
34
|
+
test.verbose = true
|
35
|
+
end
|
36
|
+
|
37
|
+
require 'rcov/rcovtask'
|
38
|
+
Rcov::RcovTask.new do |test|
|
39
|
+
test.libs << 'test'
|
40
|
+
test.pattern = 'test/**/test_*.rb'
|
41
|
+
test.verbose = true
|
42
|
+
end
|
43
|
+
|
44
|
+
task :default => :test
|
45
|
+
|
46
|
+
require 'rake/rdoctask'
|
47
|
+
Rake::RDocTask.new do |rdoc|
|
48
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
49
|
+
|
50
|
+
rdoc.rdoc_dir = 'rdoc'
|
51
|
+
rdoc.title = "errorlogic #{version}"
|
52
|
+
rdoc.rdoc_files.include('README*')
|
53
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
54
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.2.3
|
@@ -0,0 +1,38 @@
|
|
1
|
+
class PublicRescue::PublicErrorsController < ApplicationController
|
2
|
+
# This is just a very basic controller
|
3
|
+
# For custom methods just create our own PublicErrorsController which subclasses this one
|
4
|
+
|
5
|
+
# env['errorlogic.exception_details'] variable contains additional information on the exception
|
6
|
+
# {
|
7
|
+
# :request,
|
8
|
+
# :exception,
|
9
|
+
# :status,
|
10
|
+
# :application_trace,
|
11
|
+
# :framework_trace,
|
12
|
+
# :full_trace
|
13
|
+
# }
|
14
|
+
|
15
|
+
# 404
|
16
|
+
def not_found
|
17
|
+
end
|
18
|
+
|
19
|
+
# 500
|
20
|
+
def internal_server_error
|
21
|
+
end
|
22
|
+
|
23
|
+
def conflict
|
24
|
+
render :action => :internal_server_error
|
25
|
+
end
|
26
|
+
|
27
|
+
def not_implemented
|
28
|
+
render :action => :internal_server_error
|
29
|
+
end
|
30
|
+
|
31
|
+
def method_not_allowed
|
32
|
+
render :action => :internal_server_error
|
33
|
+
end
|
34
|
+
|
35
|
+
# 422
|
36
|
+
def unprocessable_entity
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module PublicRescue
|
2
|
+
module Generators
|
3
|
+
class PublicRescueGenerator < Rails::Generators::Base
|
4
|
+
namespace 'public_rescue'
|
5
|
+
source_root File.expand_path("../../../../", __FILE__)
|
6
|
+
|
7
|
+
desc "Creates a controller that inherits from PublicRescue::PublicErrorsController."
|
8
|
+
|
9
|
+
def create_controller_files
|
10
|
+
template 'lib/generators/template/controller.rb', File.join('app/controllers', class_path, "#{file_name}_controller.rb")
|
11
|
+
directory "app/views/public_rescue/public_errors", File.join('app/views', class_path, "#{file_name}")
|
12
|
+
end
|
13
|
+
|
14
|
+
hook_for :test_framework, :as => :controller
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module PublicRescue
|
2
|
+
module Generators
|
3
|
+
class ViewsGenerator < Rails::Generators::Base
|
4
|
+
source_root File.expand_path("../../../../app/views", __FILE__)
|
5
|
+
desc "Copies all PublicRescue views to your application."
|
6
|
+
|
7
|
+
argument :scope, :required => false, :default => nil,
|
8
|
+
:desc => "The scope to copy views to"
|
9
|
+
def copy_views
|
10
|
+
directory "public_rescue", "app/views/#{scope || :public_rescue}"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
class <%= class_name %>Controller < PublicRescue::PublicErrorsController
|
2
|
+
# 404
|
3
|
+
def not_found
|
4
|
+
end
|
5
|
+
|
6
|
+
# 500
|
7
|
+
def internal_server_error
|
8
|
+
end
|
9
|
+
|
10
|
+
def conflict
|
11
|
+
render :action => :internal_server_error
|
12
|
+
end
|
13
|
+
|
14
|
+
def not_implemented
|
15
|
+
render :action => :internal_server_error
|
16
|
+
end
|
17
|
+
|
18
|
+
def method_not_allowed
|
19
|
+
render :action => :internal_server_error
|
20
|
+
end
|
21
|
+
|
22
|
+
# 422
|
23
|
+
def unprocessable_entity
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'public_rescue'
|
2
|
+
|
3
|
+
module PublicRescue
|
4
|
+
class Engine < Rails::Engine
|
5
|
+
|
6
|
+
config.public_rescue = ActiveSupport::OrderedOptions.new
|
7
|
+
config.public_rescue.controller = :public_errors
|
8
|
+
|
9
|
+
initializer "devise.add_middleware" do |app|
|
10
|
+
app.middleware.swap ActionDispatch::ShowExceptions, Errorlogic::ShowExceptions
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module PublicRescue
|
2
|
+
# We subclass this middleware to render nice dynamic error pages instead of classical 404.html,... files
|
3
|
+
class ShowExceptions < ActionDispatch::ShowExceptions
|
4
|
+
private
|
5
|
+
# By default render_exception doesn't send the request object to rescue_action_in_public.
|
6
|
+
# Here we just store the env variable in a class variable so we can retrieve it later.
|
7
|
+
def render_exception(env, exception)
|
8
|
+
@env = env
|
9
|
+
# Original rails code is always best
|
10
|
+
super
|
11
|
+
end
|
12
|
+
|
13
|
+
def rescue_action_in_public(exception)
|
14
|
+
request = ActionDispatch::Request.new(@env)
|
15
|
+
status = status_code(exception)
|
16
|
+
exception_details = {
|
17
|
+
:request => request, :exception => exception,
|
18
|
+
:status => status,
|
19
|
+
:application_trace => application_trace(exception),
|
20
|
+
:framework_trace => framework_trace(exception),
|
21
|
+
:full_trace => full_trace(exception)
|
22
|
+
}
|
23
|
+
request.env['public_rescue.exception_details'] = exception_details
|
24
|
+
action = @@rescue_responses[exception.class.name]
|
25
|
+
controller_name = Rails.configuration.public_rescue.controller.to_s.camelize << 'Controller'
|
26
|
+
begin
|
27
|
+
controller = Rails.const_get(controller_name)
|
28
|
+
rescue NameError => n_E
|
29
|
+
controller = PublicErrorsController
|
30
|
+
end
|
31
|
+
response = controller.action(action).call(request.env).last
|
32
|
+
render(status, response.body)
|
33
|
+
|
34
|
+
# Any exceptions results in calling the parent method
|
35
|
+
rescue Exception => e
|
36
|
+
log_error(e)
|
37
|
+
super(exception)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
#PublicRecscue.rb
|
2
|
+
require 'rails'
|
3
|
+
require 'active_support/dependencies/autoload'
|
4
|
+
require 'action_dispatch'
|
5
|
+
|
6
|
+
module PublicRescue
|
7
|
+
extend ActiveSupport::Autoload
|
8
|
+
autoload :ShowExceptions
|
9
|
+
autoload :PublicErrorsController
|
10
|
+
end
|
11
|
+
|
12
|
+
require 'public_rescue/rails'
|
@@ -0,0 +1,75 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{public_rescue}
|
8
|
+
s.version = "0.2.3"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Cyril Picard"]
|
12
|
+
s.date = %q{2011-05-04}
|
13
|
+
s.description = %q{PublicRescue is a gem for rails application who want to display dynamic error pages. It creates a new Rack middleware which replaces ActionDispatch::ShowExceptions and overwrites the rescue_action_in_public method.}
|
14
|
+
s.email = %q{Cyril@picard.ch}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE.txt",
|
17
|
+
"README.rdoc"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".document",
|
21
|
+
"Gemfile",
|
22
|
+
"Gemfile.lock",
|
23
|
+
"LICENSE.txt",
|
24
|
+
"README.rdoc",
|
25
|
+
"Rakefile",
|
26
|
+
"VERSION",
|
27
|
+
"app/controllers/public_rescue/public_errors_controller.rb",
|
28
|
+
"app/views/public_rescue/public_errors/internal_server_error.html.erb",
|
29
|
+
"app/views/public_rescue/public_errors/not_found.html.erb",
|
30
|
+
"app/views/public_rescue/public_errors/unprocessable_entity.html.erb",
|
31
|
+
"lib/generators/public_rescue/public_rescue_generator.rb",
|
32
|
+
"lib/generators/public_rescue/views_generator.rb",
|
33
|
+
"lib/generators/template/controller.rb",
|
34
|
+
"lib/public_rescue.rb",
|
35
|
+
"lib/public_rescue/rails.rb",
|
36
|
+
"lib/public_rescue/show_exceptions.rb",
|
37
|
+
"public_rescue.gemspec",
|
38
|
+
"test/helper.rb",
|
39
|
+
"test/test_public_rescue.rb"
|
40
|
+
]
|
41
|
+
s.homepage = %q{http://github.com/cyrilpic/public_rescue}
|
42
|
+
s.licenses = ["MIT"]
|
43
|
+
s.require_paths = ["lib"]
|
44
|
+
s.rubygems_version = %q{1.7.2}
|
45
|
+
s.summary = %q{Rails3 gem for displaying dynamic error pages.}
|
46
|
+
s.test_files = [
|
47
|
+
"test/helper.rb",
|
48
|
+
"test/test_public_rescue.rb"
|
49
|
+
]
|
50
|
+
|
51
|
+
if s.respond_to? :specification_version then
|
52
|
+
s.specification_version = 3
|
53
|
+
|
54
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
55
|
+
s.add_runtime_dependency(%q<rails>, ["~> 3.0.0"])
|
56
|
+
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
57
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
58
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
59
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
60
|
+
else
|
61
|
+
s.add_dependency(%q<rails>, ["~> 3.0.0"])
|
62
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
63
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
64
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
65
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
66
|
+
end
|
67
|
+
else
|
68
|
+
s.add_dependency(%q<rails>, ["~> 3.0.0"])
|
69
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
70
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
71
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
72
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
data/test/helper.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
begin
|
4
|
+
Bundler.setup(:default, :development)
|
5
|
+
rescue Bundler::BundlerError => e
|
6
|
+
$stderr.puts e.message
|
7
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
+
exit e.status_code
|
9
|
+
end
|
10
|
+
require 'test/unit'
|
11
|
+
require 'shoulda'
|
12
|
+
|
13
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
14
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
15
|
+
require 'public_rescue'
|
16
|
+
|
17
|
+
class Test::Unit::TestCase
|
18
|
+
end
|
metadata
ADDED
@@ -0,0 +1,161 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: public_rescue
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 17
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 2
|
9
|
+
- 3
|
10
|
+
version: 0.2.3
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Cyril Picard
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-05-04 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: rails
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ~>
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 7
|
29
|
+
segments:
|
30
|
+
- 3
|
31
|
+
- 0
|
32
|
+
- 0
|
33
|
+
version: 3.0.0
|
34
|
+
type: :runtime
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: shoulda
|
38
|
+
prerelease: false
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 3
|
45
|
+
segments:
|
46
|
+
- 0
|
47
|
+
version: "0"
|
48
|
+
type: :development
|
49
|
+
version_requirements: *id002
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
name: bundler
|
52
|
+
prerelease: false
|
53
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
55
|
+
requirements:
|
56
|
+
- - ~>
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
hash: 23
|
59
|
+
segments:
|
60
|
+
- 1
|
61
|
+
- 0
|
62
|
+
- 0
|
63
|
+
version: 1.0.0
|
64
|
+
type: :development
|
65
|
+
version_requirements: *id003
|
66
|
+
- !ruby/object:Gem::Dependency
|
67
|
+
name: jeweler
|
68
|
+
prerelease: false
|
69
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
70
|
+
none: false
|
71
|
+
requirements:
|
72
|
+
- - ~>
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
hash: 7
|
75
|
+
segments:
|
76
|
+
- 1
|
77
|
+
- 5
|
78
|
+
- 2
|
79
|
+
version: 1.5.2
|
80
|
+
type: :development
|
81
|
+
version_requirements: *id004
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: rcov
|
84
|
+
prerelease: false
|
85
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
86
|
+
none: false
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
hash: 3
|
91
|
+
segments:
|
92
|
+
- 0
|
93
|
+
version: "0"
|
94
|
+
type: :development
|
95
|
+
version_requirements: *id005
|
96
|
+
description: PublicRescue is a gem for rails application who want to display dynamic error pages. It creates a new Rack middleware which replaces ActionDispatch::ShowExceptions and overwrites the rescue_action_in_public method.
|
97
|
+
email: Cyril@picard.ch
|
98
|
+
executables: []
|
99
|
+
|
100
|
+
extensions: []
|
101
|
+
|
102
|
+
extra_rdoc_files:
|
103
|
+
- LICENSE.txt
|
104
|
+
- README.rdoc
|
105
|
+
files:
|
106
|
+
- .document
|
107
|
+
- Gemfile
|
108
|
+
- Gemfile.lock
|
109
|
+
- LICENSE.txt
|
110
|
+
- README.rdoc
|
111
|
+
- Rakefile
|
112
|
+
- VERSION
|
113
|
+
- app/controllers/public_rescue/public_errors_controller.rb
|
114
|
+
- app/views/public_rescue/public_errors/internal_server_error.html.erb
|
115
|
+
- app/views/public_rescue/public_errors/not_found.html.erb
|
116
|
+
- app/views/public_rescue/public_errors/unprocessable_entity.html.erb
|
117
|
+
- lib/generators/public_rescue/public_rescue_generator.rb
|
118
|
+
- lib/generators/public_rescue/views_generator.rb
|
119
|
+
- lib/generators/template/controller.rb
|
120
|
+
- lib/public_rescue.rb
|
121
|
+
- lib/public_rescue/rails.rb
|
122
|
+
- lib/public_rescue/show_exceptions.rb
|
123
|
+
- public_rescue.gemspec
|
124
|
+
- test/helper.rb
|
125
|
+
- test/test_public_rescue.rb
|
126
|
+
homepage: http://github.com/cyrilpic/public_rescue
|
127
|
+
licenses:
|
128
|
+
- MIT
|
129
|
+
post_install_message:
|
130
|
+
rdoc_options: []
|
131
|
+
|
132
|
+
require_paths:
|
133
|
+
- lib
|
134
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
135
|
+
none: false
|
136
|
+
requirements:
|
137
|
+
- - ">="
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
hash: 3
|
140
|
+
segments:
|
141
|
+
- 0
|
142
|
+
version: "0"
|
143
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
144
|
+
none: false
|
145
|
+
requirements:
|
146
|
+
- - ">="
|
147
|
+
- !ruby/object:Gem::Version
|
148
|
+
hash: 3
|
149
|
+
segments:
|
150
|
+
- 0
|
151
|
+
version: "0"
|
152
|
+
requirements: []
|
153
|
+
|
154
|
+
rubyforge_project:
|
155
|
+
rubygems_version: 1.7.2
|
156
|
+
signing_key:
|
157
|
+
specification_version: 3
|
158
|
+
summary: Rails3 gem for displaying dynamic error pages.
|
159
|
+
test_files:
|
160
|
+
- test/helper.rb
|
161
|
+
- test/test_public_rescue.rb
|