rails_exception_handler 2.3.4 → 2.4.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.ruby-version +1 -0
- data/.travis.yml +6 -8
- data/Gemfile +34 -11
- data/Gemfile.lock +192 -126
- data/HISTORY +10 -1
- data/README.markdown +20 -7
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/app/controllers/error_response_controller.rb +18 -2
- data/app/mailers/rails_exception_handler/error_mailer.rb +15 -0
- data/app/models/rails_exception_handler/active_record/error_message.rb +1 -1
- data/app/models/rails_exception_handler/mongoid/error_message.rb +1 -0
- data/app/views/rails_exception_handler/error_mailer/send_error_mail_to_admin.html.erb +15 -0
- data/app/views/rails_exception_handler/error_mailer/send_error_mail_to_admin.text.erb +8 -0
- data/gemfiles/rails32.gemfile +1 -1
- data/gemfiles/rails40.gemfile +2 -1
- data/gemfiles/rails42.gemfile +14 -0
- data/gemfiles/rails51.gemfile +14 -0
- data/lib/generators/rails_exception_handler/templates/rails_exception_handler.rb +10 -10
- data/lib/patch/show_exceptions.rb +3 -1
- data/lib/rails_exception_handler/configuration.rb +4 -0
- data/lib/rails_exception_handler/handler.rb +25 -3
- data/lib/rails_exception_handler/storage.rb +11 -0
- data/rails_exception_handler.gemspec +75 -40
- data/spec/{dummy_40/app/controllers/concerns/.keep → dummy_30/public/.gitkeep} +0 -0
- data/spec/{dummy_40/app/models/concerns/.keep → dummy_32/public/.gitkeep} +0 -0
- data/spec/dummy_40/public/.gitkeep +0 -0
- data/spec/dummy_42/.gitignore +17 -0
- data/spec/dummy_42/app/assets/images/.keep +0 -0
- data/spec/dummy_42/app/mailers/.keep +0 -0
- data/spec/dummy_42/app/models/.keep +0 -0
- data/spec/dummy_42/lib/assets/.keep +0 -0
- data/spec/dummy_42/lib/tasks/.keep +0 -0
- data/spec/dummy_42/log/.keep +0 -0
- data/spec/dummy_42/public/.gitkeep +0 -0
- data/spec/dummy_51/.gitignore +23 -0
- data/spec/dummy_51/.ruby-version +1 -0
- data/spec/dummy_51/app/assets/images/.keep +0 -0
- data/spec/dummy_51/app/assets/javascripts/channels/.keep +0 -0
- data/spec/dummy_51/app/controllers/concerns/.keep +0 -0
- data/spec/dummy_51/app/models/concerns/.keep +0 -0
- data/spec/dummy_51/lib/assets/.keep +0 -0
- data/spec/dummy_51/lib/tasks/.keep +0 -0
- data/spec/dummy_51/log/.keep +0 -0
- data/spec/dummy_51/tmp/.keep +0 -0
- data/spec/dummy_60/.gitignore +28 -0
- data/spec/dummy_60/.ruby-version +1 -0
- data/spec/dummy_60/app/assets/images/.keep +0 -0
- data/spec/dummy_60/app/controllers/concerns/.keep +0 -0
- data/spec/dummy_60/app/models/concerns/.keep +0 -0
- data/spec/dummy_60/lib/assets/.keep +0 -0
- data/spec/dummy_60/lib/tasks/.keep +0 -0
- data/spec/dummy_60/log/.keep +0 -0
- data/spec/dummy_60/tmp/.keep +0 -0
- metadata +67 -55
data/HISTORY
CHANGED
@@ -1,6 +1,15 @@
|
|
1
1
|
CHANGELOG
|
2
2
|
|
3
|
-
v2.
|
3
|
+
v2.4.1
|
4
|
+
- Fix issue with missing ApplicationMailer
|
5
|
+
|
6
|
+
v2.4.0
|
7
|
+
- Email storage strategy, by https://github.com/lethunder
|
8
|
+
|
9
|
+
v2.3.5 - June 19th 2017
|
10
|
+
- Fix compatibility with Ruby 2.4 and Rails 5
|
11
|
+
|
12
|
+
v2.3.4 - April 24th 2014
|
4
13
|
- Make database name/table configurable for the Active Record storage strategy
|
5
14
|
|
6
15
|
v2.3.2 - January 7th 2014
|
data/README.markdown
CHANGED
@@ -6,7 +6,7 @@ This is a flexible exception handler for Rails intended for those who wish to cr
|
|
6
6
|
|
7
7
|
The exception handler enables you to save the key information from the error message in a database somewhere, via ActiveRecord or HTTP POST, and display a customized error message to the user within the applications layout file. You can hook this exception handler into all your rails apps and gather the exception reports in one place. The exception handler just contains the back end, you will have to create your own front end to view and manage the error reports. A Rails Engine admin interface, [rails_exception_handler_admin](https://github.com/mgwidmann/rails_exception_handler_admin), is a simple drop in interface or to use as an example for building your own.
|
8
8
|
|
9
|
-
Does your app have an authorization mechanism? [See wiki](https://github.com/Sharagoz/rails_exception_handler/wiki/Interaction-with-authorization-mechanisms)
|
9
|
+
Does your app have an authorization mechanism like Pundit, CanCan or Delarative authorization? [See wiki](https://github.com/Sharagoz/rails_exception_handler/wiki/Interaction-with-authorization-mechanisms)
|
10
10
|
|
11
11
|
Do you need to catch ruby errors [outside of Rack](https://github.com/Sharagoz/rails_exception_handler/wiki/Manual-exception-handling-outside-of-rack)?
|
12
12
|
```ruby
|
@@ -17,7 +17,7 @@ end
|
|
17
17
|
|
18
18
|
## Compatiblity
|
19
19
|
|
20
|
-
The gem should work with all versions of Rails 3
|
20
|
+
The gem should work with all versions of Rails 3, 4, 5 and 6.
|
21
21
|
|
22
22
|
See Travis-CI for info on which rubies it is tested against:
|
23
23
|
http://travis-ci.org/#!/Sharagoz/rails_exception_handler
|
@@ -50,6 +50,8 @@ Default value: [:production]
|
|
50
50
|
|
51
51
|
### fallback_layout
|
52
52
|
|
53
|
+
WARNING: This feature is currently broken in Rails v4.2 and above. Make sure your app has the default layout file (layouts/application).
|
54
|
+
|
53
55
|
```ruby
|
54
56
|
config.fallback_layout = 'home'
|
55
57
|
```
|
@@ -233,6 +235,21 @@ config.storage_strategies = [:remote_url => {:target => 'http://example.com/erro
|
|
233
235
|
This option is meant for those who want to store the exception in a database table, but does not have direct access to the database itself, making active record store unsuitable. You need a web app on a server that has access to the database. An HTTP POST request will be sent to the specified URL with the error message as data.
|
234
236
|
If you use a Rails app at the other end you should simply be able to do `RailsExceptionHandler::ActiveRecord::ErrorMessage.create(params[:error_message])` or `RailsExceptionHandler::Mongoid::ErrorMessage.create(params[:error_message])` to save the report depending upon your database choice.
|
235
237
|
|
238
|
+
### Sending the error report as an email
|
239
|
+
|
240
|
+
```ruby
|
241
|
+
config.storage_strategies = [:email => {:recipients => "test1@example.com,test2@example.com"}]
|
242
|
+
```
|
243
|
+
|
244
|
+
Exceptions will be notified by email. Make sure the application got an
|
245
|
+
`ApplicationMailer` with default from specified:
|
246
|
+
|
247
|
+
```ruby
|
248
|
+
class ApplicationMailer < ActionMailer::Base
|
249
|
+
default from: 'from@example.com'
|
250
|
+
end
|
251
|
+
```
|
252
|
+
|
236
253
|
# Exception filters
|
237
254
|
|
238
255
|
Sometimes it is necessary to filter errors. All filters are disabled by default and I recommend you deploy your application this way initially, and then add filters as they become necessary.
|
@@ -296,10 +313,6 @@ config.filters = [:referer_url_regxp => /\problematicreferer/i]
|
|
296
313
|
|
297
314
|
https://github.com/Sharagoz/rails_exception_handler/graphs/contributors
|
298
315
|
|
299
|
-
Would you like to contribute? Here are some things on the todo list:
|
300
|
-
|
301
|
-
* An email storage strategy for those that wish to be notified of the exceptions through email
|
302
|
-
|
303
316
|
# Licence
|
304
317
|
|
305
|
-
Copyright ©
|
318
|
+
Copyright © 2017 Bjørn Trondsen, released under the MIT license
|
data/Rakefile
CHANGED
@@ -21,7 +21,7 @@ Jeweler::Tasks.new do |gem|
|
|
21
21
|
gem.name = "rails_exception_handler"
|
22
22
|
gem.homepage = "http://github.com/Sharagoz/rails_exception_handler"
|
23
23
|
gem.license = "MIT"
|
24
|
-
gem.summary = %Q{
|
24
|
+
gem.summary = %Q{Highly customizable exception handling for Ruby on Rails}
|
25
25
|
gem.description = %Q{}
|
26
26
|
gem.email = "contact@sharagoz.com"
|
27
27
|
gem.authors = ["Sharagoz"]
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.4.5
|
@@ -1,11 +1,27 @@
|
|
1
1
|
if(RailsExceptionHandler.configuration.activate?)
|
2
2
|
class ErrorResponseController < ApplicationController
|
3
|
+
|
4
|
+
if Rails::VERSION::MAJOR > 3
|
5
|
+
skip_before_action :verify_authenticity_token
|
6
|
+
else
|
7
|
+
skip_before_filter :verify_authenticity_token
|
8
|
+
end
|
9
|
+
|
10
|
+
|
3
11
|
def index
|
4
|
-
|
12
|
+
if Rails::VERSION::MAJOR > 4
|
13
|
+
render(:html => request.env['exception_handler.response'].html_safe, :layout => request.env['exception_handler.layout'])
|
14
|
+
else
|
15
|
+
render(:text => @_env['exception_handler.response'], :layout => @_env['exception_handler.layout'])
|
16
|
+
end
|
5
17
|
end
|
6
18
|
|
7
19
|
def dummy_action
|
8
|
-
|
20
|
+
if Rails::VERSION::MAJOR > 4
|
21
|
+
render :body => nil
|
22
|
+
else
|
23
|
+
render :nothing => true
|
24
|
+
end
|
9
25
|
end
|
10
26
|
end
|
11
27
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class RailsExceptionHandler::ErrorMailer < ApplicationMailer
|
2
|
+
if RailsExceptionHandler.configuration.activate? && RailsExceptionHandler.configuration.email?
|
3
|
+
|
4
|
+
# Subject can be set in your I18n file at config/locales/en.yml
|
5
|
+
# with the following lookup:
|
6
|
+
#
|
7
|
+
# en.error_mailer.send_error_mail_to_admin.subject
|
8
|
+
#
|
9
|
+
def send_error_mail_to_admin(info,email)
|
10
|
+
@info = JSON.parse(info)
|
11
|
+
mail(to: email, subject: 'An error occured on your application')
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
@@ -2,7 +2,7 @@ class RailsExceptionHandler::ActiveRecord
|
|
2
2
|
|
3
3
|
class ErrorMessage < defined?(ActiveRecord) ? ActiveRecord::Base : Object
|
4
4
|
if (defined?(ActiveRecord) && RailsExceptionHandler.configuration.activate? && RailsExceptionHandler.configuration.active_record?)
|
5
|
-
establish_connection(RailsExceptionHandler.configuration.active_record_store_in[:database])
|
5
|
+
establish_connection(RailsExceptionHandler.configuration.active_record_store_in[:database].to_sym)
|
6
6
|
self.table_name = RailsExceptionHandler.configuration.active_record_store_in[:record_table]
|
7
7
|
end
|
8
8
|
end
|
@@ -4,6 +4,7 @@ class RailsExceptionHandler::Mongoid
|
|
4
4
|
if defined?(Mongoid)
|
5
5
|
include Mongoid::Document
|
6
6
|
include Mongoid::Timestamps
|
7
|
+
include Mongoid::Attributes::Dynamic if defined?(Mongoid::Attributes::Dynamic)
|
7
8
|
|
8
9
|
store_in({:database => :exception_database, :collection => :error_message}.merge(RailsExceptionHandler.configuration.mongoid_store_in || {}))
|
9
10
|
|
data/gemfiles/rails32.gemfile
CHANGED
data/gemfiles/rails40.gemfile
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
source "https://rubygems.org"
|
3
|
+
|
4
|
+
group :test, :development do
|
5
|
+
gem "rails", '4.2.8'
|
6
|
+
gem "rack-test", '0.6.2'
|
7
|
+
gem 'rake' # Needed by tavis
|
8
|
+
gem 'sqlite3'
|
9
|
+
gem 'mongoid'
|
10
|
+
gem 'pry'
|
11
|
+
gem "rspec-rails"
|
12
|
+
gem "jeweler"
|
13
|
+
gem "rails_exception_handler"
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
source "https://rubygems.org"
|
3
|
+
|
4
|
+
group :test, :development do
|
5
|
+
gem "rails", '5.1.1'
|
6
|
+
gem "rack-test", '0.6.2'
|
7
|
+
gem 'rake' # Needed by tavis
|
8
|
+
gem 'sqlite3'
|
9
|
+
gem 'mongoid'
|
10
|
+
gem 'pry'
|
11
|
+
gem "rspec-rails"
|
12
|
+
gem "jeweler"
|
13
|
+
gem "rails_exception_handler"
|
14
|
+
end
|
@@ -39,25 +39,25 @@ RailsExceptionHandler.configure do |config|
|
|
39
39
|
|
40
40
|
|
41
41
|
config.store_request_info do |storage,request|
|
42
|
-
storage[:target_url]
|
43
|
-
storage[:referer_url] =
|
44
|
-
storage[:params]
|
45
|
-
storage[:user_agent]
|
42
|
+
storage[:target_url] = request.url
|
43
|
+
storage[:referer_url] = request.referer
|
44
|
+
storage[:params] = request.params.inspect
|
45
|
+
storage[:user_agent] = request.user_agent
|
46
46
|
end
|
47
47
|
|
48
48
|
config.store_exception_info do |storage,exception|
|
49
|
-
storage[:class_name] =
|
50
|
-
storage[:message]
|
51
|
-
storage[:trace]
|
49
|
+
storage[:class_name] = exception.class.to_s
|
50
|
+
storage[:message] = exception.to_s
|
51
|
+
storage[:trace] = exception.backtrace.join("\n")
|
52
52
|
end
|
53
53
|
|
54
54
|
config.store_environment_info do |storage,env|
|
55
|
-
storage[:doc_root] =
|
55
|
+
storage[:doc_root] = env['DOCUMENT_ROOT']
|
56
56
|
end
|
57
57
|
|
58
58
|
config.store_global_info do |storage|
|
59
|
-
storage[:app_name]
|
60
|
-
storage[:created_at] =
|
59
|
+
storage[:app_name] = Rails.application.class.parent_name
|
60
|
+
storage[:created_at] = Time.now
|
61
61
|
end
|
62
62
|
# config.store_user_info = {:method => :current_user, :field => :login} # Helper method for easier access to current_user
|
63
63
|
end
|
@@ -3,12 +3,14 @@ module ActionDispatch
|
|
3
3
|
class ShowExceptions
|
4
4
|
private
|
5
5
|
def render_exception_with_template(env, exception)
|
6
|
+
env = env.env if env.is_a?(ActionDispatch::Request) # Rails 5 passes in the whole request object
|
6
7
|
if(RailsExceptionHandler.configuration.environments.include?(Rails.env.to_sym))
|
7
8
|
RailsExceptionHandler::Handler.new(env, exception).handle_exception
|
8
9
|
else
|
9
10
|
raise "RailsExceptionHandler: This patch should not have been loaded"
|
10
11
|
end
|
11
12
|
end
|
12
|
-
|
13
|
+
alias_method :render_exception, :render_exception_with_template
|
14
|
+
alias_method :template, :render_exception
|
13
15
|
end
|
14
16
|
end
|
@@ -23,6 +23,10 @@ class RailsExceptionHandler::Configuration
|
|
23
23
|
@storage_strategies.include?(:mongoid)
|
24
24
|
end
|
25
25
|
|
26
|
+
def email?
|
27
|
+
@storage_strategies.collect{|s| s.is_a?(Hash) ? s.keys : s}.flatten.include?(:email)
|
28
|
+
end
|
29
|
+
|
26
30
|
def activate?
|
27
31
|
environments.include?(Rails.env.to_sym)
|
28
32
|
end
|
@@ -32,6 +32,8 @@ class RailsExceptionHandler::Handler
|
|
32
32
|
RailsExceptionHandler::Storage.send(strategy, @parsed_error.external_info)
|
33
33
|
elsif(strategy.class == Hash && strategy[:remote_url])
|
34
34
|
RailsExceptionHandler::Storage.remote_url(strategy[:remote_url][:target],@parsed_error.external_info)
|
35
|
+
elsif(strategy.class == Hash && strategy[:email])
|
36
|
+
RailsExceptionHandler::Storage.email(strategy[:email][:recipients],@parsed_error.external_info)
|
35
37
|
else
|
36
38
|
raise "RailsExceptionHandler: Unknown storage strategy #{strategy.inspect}"
|
37
39
|
end
|
@@ -42,14 +44,26 @@ class RailsExceptionHandler::Handler
|
|
42
44
|
@env['exception_handler.layout'] = response_layout
|
43
45
|
@env['exception_handler.response'] = response_text
|
44
46
|
response = ErrorResponseController.action(:index).call(@env)
|
47
|
+
|
45
48
|
if @parsed_error.routing_error?
|
46
49
|
response[0] = 404
|
47
50
|
file = "#{Rails.root}/public/404.html"
|
48
|
-
response
|
51
|
+
response = override_body_with_file_if_exists(response, file)
|
49
52
|
else
|
50
53
|
response[0] = 500
|
51
54
|
file = "#{Rails.root}/public/500.html"
|
52
|
-
response
|
55
|
+
response = override_body_with_file_if_exists(response, file)
|
56
|
+
end
|
57
|
+
return response
|
58
|
+
end
|
59
|
+
|
60
|
+
def override_body_with_file_if_exists(response, file)
|
61
|
+
return response unless File.exists?(file)
|
62
|
+
|
63
|
+
if defined? response[2].body=()
|
64
|
+
response[2].body = File.read(file)
|
65
|
+
else # Rails >= 4.2.0
|
66
|
+
response[2] = [File.read(file)]
|
53
67
|
end
|
54
68
|
return response
|
55
69
|
end
|
@@ -58,7 +72,15 @@ class RailsExceptionHandler::Handler
|
|
58
72
|
if(@request.xhr?)
|
59
73
|
false
|
60
74
|
else
|
61
|
-
|
75
|
+
if Rails::VERSION::MAJOR > 5
|
76
|
+
paths = @controller.view_paths
|
77
|
+
lookup_context = ActionView::LookupContext.new(paths)
|
78
|
+
default_layout = @controller.send(:_default_layout, lookup_context, [:html])
|
79
|
+
elsif Rails::VERSION::MAJOR > 4
|
80
|
+
default_layout = @controller.send(:_default_layout, [:html])
|
81
|
+
else
|
82
|
+
default_layout = @controller.send(:_default_layout)
|
83
|
+
end
|
62
84
|
if(default_layout.class.to_s == "ActionView::Template")
|
63
85
|
layout = default_layout.virtual_path
|
64
86
|
else
|
@@ -29,6 +29,17 @@ class RailsExceptionHandler::Storage
|
|
29
29
|
Net::HTTP::post_form(uri, params)
|
30
30
|
end
|
31
31
|
|
32
|
+
# Notify application admin that an error occured
|
33
|
+
def self.email(recipients,info)
|
34
|
+
return if recipients.blank?
|
35
|
+
if Rails::VERSION::MAJOR == 3 || (Rails::VERSION::MAJOR == 4 && Rails::VERSION::MINOR < 2)
|
36
|
+
delivery_method = :deliver
|
37
|
+
else
|
38
|
+
delivery_method = :deliver_now
|
39
|
+
end
|
40
|
+
RailsExceptionHandler::ErrorMailer.send_error_mail_to_admin(info.to_json,recipients).send(delivery_method)
|
41
|
+
end
|
42
|
+
|
32
43
|
private
|
33
44
|
|
34
45
|
# Credit: Hash flattening technique borrowed from Peter Marklund: http://marklunds.com/articles/one/314
|
@@ -2,20 +2,23 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
+
# stub: rails_exception_handler 2.4.5 ruby lib
|
5
6
|
|
6
7
|
Gem::Specification.new do |s|
|
7
|
-
s.name = "rails_exception_handler"
|
8
|
-
s.version = "2.
|
8
|
+
s.name = "rails_exception_handler".freeze
|
9
|
+
s.version = "2.4.5"
|
9
10
|
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.
|
12
|
-
s.
|
13
|
-
s.
|
14
|
-
s.
|
11
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
12
|
+
s.require_paths = ["lib".freeze]
|
13
|
+
s.authors = ["Sharagoz".freeze]
|
14
|
+
s.date = "2019-10-03"
|
15
|
+
s.description = "".freeze
|
16
|
+
s.email = "contact@sharagoz.com".freeze
|
15
17
|
s.extra_rdoc_files = [
|
16
18
|
"README.markdown"
|
17
19
|
]
|
18
20
|
s.files = [
|
21
|
+
".ruby-version",
|
19
22
|
".travis.yml",
|
20
23
|
"Gemfile",
|
21
24
|
"Gemfile.lock",
|
@@ -25,12 +28,17 @@ Gem::Specification.new do |s|
|
|
25
28
|
"Rakefile",
|
26
29
|
"VERSION",
|
27
30
|
"app/controllers/error_response_controller.rb",
|
31
|
+
"app/mailers/rails_exception_handler/error_mailer.rb",
|
28
32
|
"app/models/rails_exception_handler/active_record/error_message.rb",
|
29
33
|
"app/models/rails_exception_handler/mongoid/error_message.rb",
|
34
|
+
"app/views/rails_exception_handler/error_mailer/send_error_mail_to_admin.html.erb",
|
35
|
+
"app/views/rails_exception_handler/error_mailer/send_error_mail_to_admin.text.erb",
|
30
36
|
"gemfiles/rails30.gemfile",
|
31
37
|
"gemfiles/rails32.187-ree.gemfile",
|
32
38
|
"gemfiles/rails32.gemfile",
|
33
39
|
"gemfiles/rails40.gemfile",
|
40
|
+
"gemfiles/rails42.gemfile",
|
41
|
+
"gemfiles/rails51.gemfile",
|
34
42
|
"lib/generators/rails_exception_handler/install_generator.rb",
|
35
43
|
"lib/generators/rails_exception_handler/templates/rails_exception_handler.rb",
|
36
44
|
"lib/patch/show_exceptions.rb",
|
@@ -44,57 +52,84 @@ Gem::Specification.new do |s|
|
|
44
52
|
"rails_exception_handler.gemspec",
|
45
53
|
"spec/dummy_30/.gitignore",
|
46
54
|
"spec/dummy_30/lib/tasks/.gitkeep",
|
55
|
+
"spec/dummy_30/public/.gitkeep",
|
47
56
|
"spec/dummy_32/.gitignore",
|
48
57
|
"spec/dummy_32/app/mailers/.gitkeep",
|
49
58
|
"spec/dummy_32/app/models/.gitkeep",
|
50
59
|
"spec/dummy_32/log/.gitkeep",
|
60
|
+
"spec/dummy_32/public/.gitkeep",
|
51
61
|
"spec/dummy_40/.gitignore",
|
52
62
|
"spec/dummy_40/app/assets/images/.keep",
|
53
|
-
"spec/dummy_40/app/controllers/concerns/.keep",
|
54
63
|
"spec/dummy_40/app/mailers/.keep",
|
55
64
|
"spec/dummy_40/app/models/.keep",
|
56
|
-
"spec/dummy_40/app/models/concerns/.keep",
|
57
65
|
"spec/dummy_40/lib/assets/.keep",
|
58
66
|
"spec/dummy_40/lib/tasks/.keep",
|
59
|
-
"spec/dummy_40/log/.keep"
|
67
|
+
"spec/dummy_40/log/.keep",
|
68
|
+
"spec/dummy_40/public/.gitkeep",
|
69
|
+
"spec/dummy_42/.gitignore",
|
70
|
+
"spec/dummy_42/app/assets/images/.keep",
|
71
|
+
"spec/dummy_42/app/mailers/.keep",
|
72
|
+
"spec/dummy_42/app/models/.keep",
|
73
|
+
"spec/dummy_42/lib/assets/.keep",
|
74
|
+
"spec/dummy_42/lib/tasks/.keep",
|
75
|
+
"spec/dummy_42/log/.keep",
|
76
|
+
"spec/dummy_42/public/.gitkeep",
|
77
|
+
"spec/dummy_51/.gitignore",
|
78
|
+
"spec/dummy_51/.ruby-version",
|
79
|
+
"spec/dummy_51/app/assets/images/.keep",
|
80
|
+
"spec/dummy_51/app/assets/javascripts/channels/.keep",
|
81
|
+
"spec/dummy_51/app/controllers/concerns/.keep",
|
82
|
+
"spec/dummy_51/app/models/concerns/.keep",
|
83
|
+
"spec/dummy_51/lib/assets/.keep",
|
84
|
+
"spec/dummy_51/lib/tasks/.keep",
|
85
|
+
"spec/dummy_51/log/.keep",
|
86
|
+
"spec/dummy_51/tmp/.keep",
|
87
|
+
"spec/dummy_60/.gitignore",
|
88
|
+
"spec/dummy_60/.ruby-version",
|
89
|
+
"spec/dummy_60/app/assets/images/.keep",
|
90
|
+
"spec/dummy_60/app/controllers/concerns/.keep",
|
91
|
+
"spec/dummy_60/app/models/concerns/.keep",
|
92
|
+
"spec/dummy_60/lib/assets/.keep",
|
93
|
+
"spec/dummy_60/lib/tasks/.keep",
|
94
|
+
"spec/dummy_60/log/.keep",
|
95
|
+
"spec/dummy_60/tmp/.keep"
|
60
96
|
]
|
61
|
-
s.homepage = "http://github.com/Sharagoz/rails_exception_handler"
|
62
|
-
s.licenses = ["MIT"]
|
63
|
-
s.
|
64
|
-
s.
|
65
|
-
s.summary = "Exception Handling for Rails 3"
|
97
|
+
s.homepage = "http://github.com/Sharagoz/rails_exception_handler".freeze
|
98
|
+
s.licenses = ["MIT".freeze]
|
99
|
+
s.rubygems_version = "3.0.4".freeze
|
100
|
+
s.summary = "Highly customizable exception handling for Ruby on Rails".freeze
|
66
101
|
|
67
102
|
if s.respond_to? :specification_version then
|
68
|
-
s.specification_version =
|
103
|
+
s.specification_version = 4
|
69
104
|
|
70
105
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
71
|
-
s.add_development_dependency(%q<rails
|
72
|
-
s.add_development_dependency(%q<rack-test
|
73
|
-
s.add_development_dependency(%q<
|
74
|
-
s.add_development_dependency(%q<
|
75
|
-
s.add_development_dependency(%q<pry
|
76
|
-
s.add_development_dependency(%q<rspec-rails
|
77
|
-
s.add_development_dependency(%q<jeweler
|
78
|
-
s.add_development_dependency(%q<rails_exception_handler
|
106
|
+
s.add_development_dependency(%q<rails>.freeze, ["= 6.0.0"])
|
107
|
+
s.add_development_dependency(%q<rack-test>.freeze, ["= 0.6.3"])
|
108
|
+
s.add_development_dependency(%q<sqlite3>.freeze, ["= 1.4.1"])
|
109
|
+
s.add_development_dependency(%q<rake>.freeze, [">= 0"])
|
110
|
+
s.add_development_dependency(%q<pry>.freeze, [">= 0"])
|
111
|
+
s.add_development_dependency(%q<rspec-rails>.freeze, ["= 3.6.0"])
|
112
|
+
s.add_development_dependency(%q<jeweler>.freeze, [">= 0"])
|
113
|
+
s.add_development_dependency(%q<rails_exception_handler>.freeze, [">= 0"])
|
79
114
|
else
|
80
|
-
s.add_dependency(%q<rails
|
81
|
-
s.add_dependency(%q<rack-test
|
82
|
-
s.add_dependency(%q<
|
83
|
-
s.add_dependency(%q<
|
84
|
-
s.add_dependency(%q<pry
|
85
|
-
s.add_dependency(%q<rspec-rails
|
86
|
-
s.add_dependency(%q<jeweler
|
87
|
-
s.add_dependency(%q<rails_exception_handler
|
115
|
+
s.add_dependency(%q<rails>.freeze, ["= 6.0.0"])
|
116
|
+
s.add_dependency(%q<rack-test>.freeze, ["= 0.6.3"])
|
117
|
+
s.add_dependency(%q<sqlite3>.freeze, ["= 1.4.1"])
|
118
|
+
s.add_dependency(%q<rake>.freeze, [">= 0"])
|
119
|
+
s.add_dependency(%q<pry>.freeze, [">= 0"])
|
120
|
+
s.add_dependency(%q<rspec-rails>.freeze, ["= 3.6.0"])
|
121
|
+
s.add_dependency(%q<jeweler>.freeze, [">= 0"])
|
122
|
+
s.add_dependency(%q<rails_exception_handler>.freeze, [">= 0"])
|
88
123
|
end
|
89
124
|
else
|
90
|
-
s.add_dependency(%q<rails
|
91
|
-
s.add_dependency(%q<rack-test
|
92
|
-
s.add_dependency(%q<
|
93
|
-
s.add_dependency(%q<
|
94
|
-
s.add_dependency(%q<pry
|
95
|
-
s.add_dependency(%q<rspec-rails
|
96
|
-
s.add_dependency(%q<jeweler
|
97
|
-
s.add_dependency(%q<rails_exception_handler
|
125
|
+
s.add_dependency(%q<rails>.freeze, ["= 6.0.0"])
|
126
|
+
s.add_dependency(%q<rack-test>.freeze, ["= 0.6.3"])
|
127
|
+
s.add_dependency(%q<sqlite3>.freeze, ["= 1.4.1"])
|
128
|
+
s.add_dependency(%q<rake>.freeze, [">= 0"])
|
129
|
+
s.add_dependency(%q<pry>.freeze, [">= 0"])
|
130
|
+
s.add_dependency(%q<rspec-rails>.freeze, ["= 3.6.0"])
|
131
|
+
s.add_dependency(%q<jeweler>.freeze, [">= 0"])
|
132
|
+
s.add_dependency(%q<rails_exception_handler>.freeze, [">= 0"])
|
98
133
|
end
|
99
134
|
end
|
100
135
|
|