exception_handler 0.2.5 → 0.2.6
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/README.md +4 -5
- data/app/controllers/exception_handler/exception_controller.rb +7 -2
- data/app/views/exception_handler/exception/show.html.haml +14 -6
- data/app/views/layouts/error.html.haml +20 -10
- data/lib/exception_handler.rb +8 -4
- data/lib/exception_handler/config.rb +10 -3
- data/lib/exception_handler/version.rb +1 -1
- data/lib/generators/exception_handler/install_generator.rb +46 -2
- data/lib/generators/templates/create_errors.rb +14 -0
- data/lib/generators/templates/create_table.rb +14 -0
- data/lib/generators/templates/exception_handler.rb +13 -1
- data/readme/exception_handler.png +0 -0
- data/spec/installation_spec.rb +18 -0
- metadata +7 -3
- data/lib/generators/exception_handler/config_generator.rb +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9910d9ea8a74498ce664a912a9615bed8e8c9ce1
|
4
|
+
data.tar.gz: 20e2b4badb0d3bab269375565f0b8e7141c9bca6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a2be4863eb8b102b2ecd78bd9d8895d08f2b276b31b7ecc9e497c76a7f1594efe1a5ddda192851b7a47173fca23137a3a786b0d376dcceed050d65693fdac6f0
|
7
|
+
data.tar.gz: f75a584b9264900b20d8af0f495318ca9a17db5c6b773526396838bad23898f4a4ec7de8902f22f3cd25c6dc874428040021d93433af6061ebbd542458b8f2ab
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# [](http://frontlineutilities.co.uk/ruby-on-rails/exception-handler)
|
2
2
|
|
3
3
|
[](http://badge.fury.io/rb/exception_handler)
|
4
4
|
[](https://codeclimate.com/github/richpeck/exception_handler)
|
@@ -6,14 +6,13 @@
|
|
6
6
|
[](https://coveralls.io/r/richpeck/exception_handler)
|
7
7
|
[](https://travis-ci.org/richpeck/exception_handler)
|
8
8
|
|
9
|
-
**ExceptionHandler** Rails Gem (adapted from [this tutorial](https://gist.github.com/wojtha/8433843))
|
10
9
|
|
11
|
-
|
12
|
-
> - **[Save Errors To DB](#save-errors-to-db)**
|
10
|
+
[**ExceptionHandler** Rails Gem](https://rubygems.org/gems/exception_handler) (adapted from [this tutorial](https://gist.github.com/wojtha/8433843) & our own middleware)
|
13
11
|
|
14
12
|
Works with the [`config.exceptions_app`](http://guides.rubyonrails.org/configuring.html#rails-general-configuration) hook in Rails' middleware stack:
|
15
13
|
|
16
|
-
|
14
|
+
config.exceptions_app sets the exceptions application invoked by the ShowExceptionmiddleware
|
15
|
+
when an exception happens. Defaults to ActionDispatch::PublicExceptions.new(Rails.public_path).
|
17
16
|
|
18
17
|
-----------
|
19
18
|
|
@@ -5,7 +5,7 @@ module ExceptionHandler
|
|
5
5
|
respond_to :html, :xml, :json
|
6
6
|
|
7
7
|
#Dependencies
|
8
|
-
before_action :status
|
8
|
+
before_action :status, :app_name
|
9
9
|
|
10
10
|
#Layout
|
11
11
|
layout :layout_status
|
@@ -51,7 +51,12 @@ module ExceptionHandler
|
|
51
51
|
|
52
52
|
#Layout
|
53
53
|
def layout_status
|
54
|
-
@status.to_s
|
54
|
+
"error" if @status.to_s != "404"
|
55
|
+
end
|
56
|
+
|
57
|
+
#App
|
58
|
+
def app_name
|
59
|
+
@app_name = Rails.application.class.parent_name
|
55
60
|
end
|
56
61
|
|
57
62
|
end
|
@@ -1,7 +1,15 @@
|
|
1
|
-
.
|
2
|
-
|
3
|
-
|
4
|
-
%p
|
5
|
-
= details[:message]
|
1
|
+
.error
|
2
|
+
/Alert
|
3
|
+
= image_tag 'exception_handler/alert.png', width: "150", alt: "Error!", title: "Sorry, A Server Error Occurred", class: "alert"
|
6
4
|
|
7
|
-
|
5
|
+
/Message
|
6
|
+
.message
|
7
|
+
%strong
|
8
|
+
= details[:name]
|
9
|
+
%span
|
10
|
+
= details[:message]
|
11
|
+
|
12
|
+
/Contact
|
13
|
+
.contact
|
14
|
+
- ExceptionHandler.config.social.each do |item, address|
|
15
|
+
%a{ href: address }> #{image_tag "exception_handler/contact/#{item}.png", title: item.to_s.titleize}
|
@@ -3,7 +3,8 @@
|
|
3
3
|
%head
|
4
4
|
|
5
5
|
/Info
|
6
|
-
|
6
|
+
%title
|
7
|
+
= "Error :: #{@app_name}"
|
7
8
|
|
8
9
|
/Styling
|
9
10
|
:sass
|
@@ -18,36 +19,45 @@
|
|
18
19
|
.error_container
|
19
20
|
display: block
|
20
21
|
margin: auto
|
21
|
-
margin:
|
22
|
+
margin: 15% auto 0 auto
|
22
23
|
width: 40%
|
23
24
|
|
24
25
|
.error_container .error
|
25
26
|
display: block
|
26
27
|
text-align: center
|
27
28
|
|
28
|
-
.error_container .error img
|
29
|
+
.error_container .error img.icon
|
29
30
|
display: block
|
30
|
-
margin: 0 auto
|
31
|
+
margin: 0 auto 25px auto
|
31
32
|
|
32
33
|
.error_container .message > *
|
33
34
|
display: block
|
34
35
|
|
35
36
|
.error_container .message strong
|
36
|
-
font
|
37
|
+
font:
|
38
|
+
weight: bold
|
39
|
+
size: 1.5em
|
37
40
|
color: #f00
|
41
|
+
margin: 15px 0 0
|
42
|
+
|
43
|
+
.error_container .message span
|
44
|
+
margin: 5px auto 0
|
45
|
+
font:
|
46
|
+
size: 0.75em
|
47
|
+
color: #606060
|
38
48
|
|
39
|
-
.error_container .
|
49
|
+
.error_container .contact
|
40
50
|
display: block
|
41
51
|
text-align: center
|
42
|
-
margin:
|
52
|
+
margin: 20px 0 0 0
|
43
53
|
|
44
|
-
.error_container .
|
54
|
+
.error_container .contact a
|
45
55
|
display: inline-block
|
46
|
-
margin: 0
|
56
|
+
margin: 0 1px
|
47
57
|
opacity: 0.4
|
48
58
|
transition: opacity 0.15s ease
|
49
59
|
|
50
|
-
.error_container .
|
60
|
+
.error_container .contact a:hover
|
51
61
|
opacity: 0.8
|
52
62
|
|
53
63
|
|
data/lib/exception_handler.rb
CHANGED
@@ -16,20 +16,24 @@ module ExceptionHandler
|
|
16
16
|
#Exception Handler
|
17
17
|
class Exceptions < Rails::Engine
|
18
18
|
initializer "exception_handler.configure_rails_initialization" do |app|
|
19
|
-
app.config.middleware.use "ExceptionHandler::Message" #Parser
|
19
|
+
app.config.middleware.use "ExceptionHandler::Message" unless ExceptionHandler.config.db == false #Parser
|
20
20
|
app.config.exceptions_app = ->(env) { ExceptionHandler::ExceptionController.action(:show).call(env) } #Pages
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
-
|
24
|
+
####################
|
25
|
+
# Config #
|
26
|
+
####################
|
27
|
+
|
25
28
|
#Ref http://robots.thoughtbot.com/mygem-configure-block
|
26
|
-
mattr_accessor :config
|
29
|
+
mattr_accessor :config, :table
|
27
30
|
|
28
|
-
#
|
31
|
+
#Vars
|
29
32
|
@@config ||= Config.new
|
30
33
|
|
31
34
|
#Block (for initializer)
|
32
35
|
def self.setup
|
33
36
|
yield(config) if block_given?
|
34
37
|
end
|
38
|
+
|
35
39
|
end
|
@@ -5,10 +5,17 @@
|
|
5
5
|
###########################################
|
6
6
|
module ExceptionHandler
|
7
7
|
class Config
|
8
|
-
|
8
|
+
attr_accessor :db, :social
|
9
9
|
|
10
|
-
|
11
|
-
|
10
|
+
def initialize
|
11
|
+
@db = false # -> db name (false = no; true = "errors"; [value] = [value])
|
12
|
+
@social = {
|
13
|
+
twitter: "http://twitter.com/frontlineutils",
|
14
|
+
facebook: "https://facebook.com/frontline.utilities",
|
15
|
+
linkedin: "https://linkedin.com/company/frontline-utilities",
|
16
|
+
youtube: "http://youtube.com/frontlineutils",
|
17
|
+
fusion: "http://frontlinefusion.com/frontlineutils"
|
18
|
+
}
|
12
19
|
end
|
13
20
|
end
|
14
21
|
end
|
@@ -1,7 +1,51 @@
|
|
1
1
|
module ExceptionHandler
|
2
2
|
class InstallGenerator < Rails::Generators::Base
|
3
|
-
|
4
|
-
|
3
|
+
|
4
|
+
#Needed to reference files
|
5
|
+
source_root File.expand_path("../../templates", __FILE__)
|
6
|
+
|
7
|
+
#Option
|
8
|
+
class_option :assets, desc: 'Add views, controllers, models & assets to app (for customization)'
|
9
|
+
class_option :migration, type: :boolean, desc: 'Create migration'
|
10
|
+
|
11
|
+
#Config
|
12
|
+
def create_config_file
|
13
|
+
return unless options.empty?
|
14
|
+
template "exception_handler.rb", "config/initializers/exception_handler.rb" # https://github.com/plataformatec/devise/blob/master/lib/generators/devise/install_generator.rb#L13
|
15
|
+
end
|
16
|
+
|
17
|
+
#Assets
|
18
|
+
def create_customization assets = options.assets
|
19
|
+
#(views / controllers / models / assets)
|
20
|
+
return unless assets
|
21
|
+
file_generator assets
|
22
|
+
end
|
23
|
+
|
24
|
+
#Migration
|
25
|
+
def create_migration
|
26
|
+
return unless options.migration?
|
27
|
+
template "create_table.rb", "db/migrate/create_table.rb" #-> Need to use ActiveRecord::Generators::Base
|
28
|
+
end
|
29
|
+
|
30
|
+
protected
|
31
|
+
|
32
|
+
#File Generator
|
33
|
+
def file_generator args = options, options = %w(views controllers models assets)
|
34
|
+
|
35
|
+
#Valid?
|
36
|
+
return raise "Invalid Argument" unless options.include? args
|
37
|
+
|
38
|
+
#Types
|
39
|
+
if args.is_a? String
|
40
|
+
create_file "config/initializers/#{args}.rb", "# Add initialization content here"
|
41
|
+
elsif args.is_a? Array
|
42
|
+
for arg in args do
|
43
|
+
create_file "config/initializers/#{arg}.rb", "# Add initialization content here" #Need to use template
|
44
|
+
end
|
45
|
+
else
|
46
|
+
raise "Sorry, you either need to use 'views', 'controllers', 'models', 'assets' as the --files options"
|
47
|
+
end
|
48
|
+
|
5
49
|
end
|
6
50
|
end
|
7
51
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class CreateErrors < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :errors do |t|
|
4
|
+
t.text :class_name
|
5
|
+
t.text :message
|
6
|
+
t.text :trace
|
7
|
+
t.text :target_url
|
8
|
+
t.text :referer_url
|
9
|
+
t.text :params
|
10
|
+
t.text :user_agent
|
11
|
+
t.timestamps
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class CreateErrors < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :errors do |t|
|
4
|
+
t.text :class_name
|
5
|
+
t.text :message
|
6
|
+
t.text :trace
|
7
|
+
t.text :target_url
|
8
|
+
t.text :referer_url
|
9
|
+
t.text :params
|
10
|
+
t.text :user_agent
|
11
|
+
t.timestamps
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -4,11 +4,23 @@
|
|
4
4
|
#Use the docs at http://github.com/richpeck/exception_handler for info
|
5
5
|
###
|
6
6
|
ExceptionHandler.setup do |config|
|
7
|
+
|
7
8
|
#DB -
|
8
9
|
#Default = false / true ("errors")
|
9
10
|
#Options = [string] = sets db name (if use true, default is "errors")
|
10
|
-
config.db =
|
11
|
+
config.db = "errors"
|
12
|
+
|
11
13
|
#Email -
|
12
14
|
#Default = false / true
|
13
15
|
#config.email =
|
16
|
+
|
17
|
+
#Social
|
18
|
+
config.social = {
|
19
|
+
twitter: "http://twitter.com/frontlineutils",
|
20
|
+
facebook: "https://facebook.com/frontline.utilities",
|
21
|
+
linkedin: "https://linkedin.com/company/frontline-utilities",
|
22
|
+
youtube: "http://youtube.com/frontlineutils",
|
23
|
+
fusion: "http://frontlinefusion.com/frontlineutils"
|
24
|
+
}
|
25
|
+
|
14
26
|
end
|
Binary file
|
@@ -0,0 +1,18 @@
|
|
1
|
+
#Coveralls
|
2
|
+
require 'coveralls'
|
3
|
+
Coveralls.wear!
|
4
|
+
|
5
|
+
###########################################
|
6
|
+
|
7
|
+
require 'spec_helper'
|
8
|
+
|
9
|
+
###########################################
|
10
|
+
|
11
|
+
describe "test" do
|
12
|
+
|
13
|
+
describe "404 Error" do
|
14
|
+
it "will show custom 404 error page" do
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: exception_handler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richard Peck
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-05-
|
12
|
+
date: 2014-05-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -120,10 +120,13 @@ files:
|
|
120
120
|
- lib/exception_handler/config.rb
|
121
121
|
- lib/exception_handler/parser.rb
|
122
122
|
- lib/exception_handler/version.rb
|
123
|
-
- lib/generators/exception_handler/config_generator.rb
|
124
123
|
- lib/generators/exception_handler/install_generator.rb
|
124
|
+
- lib/generators/templates/create_errors.rb
|
125
|
+
- lib/generators/templates/create_table.rb
|
125
126
|
- lib/generators/templates/exception_handler.rb
|
127
|
+
- readme/exception_handler.png
|
126
128
|
- spec/exception_spec.rb
|
129
|
+
- spec/installation_spec.rb
|
127
130
|
- spec/spec_helper.rb
|
128
131
|
- vendor/assets/images/exception_handler/bg.png
|
129
132
|
homepage: http://frontlineutilities.co.uk/ror/custom_error_pages
|
@@ -153,4 +156,5 @@ summary: Rails gem to show custom error pages in production. Also logs errors in
|
|
153
156
|
db if required
|
154
157
|
test_files:
|
155
158
|
- spec/exception_spec.rb
|
159
|
+
- spec/installation_spec.rb
|
156
160
|
- spec/spec_helper.rb
|
@@ -1,9 +0,0 @@
|
|
1
|
-
module ExceptionHandler
|
2
|
-
class ConfigGenerator < Rails::Generators::Base
|
3
|
-
source_root File.expand_path("../../templates", __FILE__) #Needed to reference files
|
4
|
-
|
5
|
-
def create_initializer_file
|
6
|
-
template "exception_handler.rb", "config/initializers/exception_handler.rb" # https://github.com/plataformatec/devise/blob/master/lib/generators/devise/install_generator.rb#L13
|
7
|
-
end
|
8
|
-
end
|
9
|
-
end
|