mosaic-errors 1.0.0 → 2.0.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.
data/.gitignore CHANGED
@@ -10,6 +10,7 @@ doc
10
10
 
11
11
  # bundler
12
12
  .bundle
13
+ Gemfile.lock
13
14
 
14
15
  # jeweler generated
15
16
  pkg
@@ -27,11 +28,11 @@ pkg
27
28
  #
28
29
  # For MacOS:
29
30
  #
30
- #.DS_Store
31
+ .DS_Store
31
32
 
32
33
  # For TextMate
33
- #*.tmproj
34
- #tmtags
34
+ *.tmproj
35
+ tmtags
35
36
 
36
37
  # For emacs:
37
38
  #*~
@@ -39,7 +40,7 @@ pkg
39
40
  #.\#*
40
41
 
41
42
  # For vim:
42
- #*.swp
43
+ *.swp
43
44
 
44
45
  # For redcar:
45
46
  #.redcar
@@ -0,0 +1,5 @@
1
+ module Errors
2
+ class ApplicationController < ActionController::Base
3
+
4
+ end
5
+ end
@@ -0,0 +1,14 @@
1
+ module Errors
2
+ class ErrorsController < ApplicationController
3
+
4
+ def internal_server_error
5
+ end
6
+
7
+ def not_found
8
+ end
9
+
10
+ def unprocessable_entity
11
+ end
12
+
13
+ end
14
+ end
@@ -0,0 +1,4 @@
1
+ module Errors
2
+ module ApplicationHelper
3
+ end
4
+ end
@@ -0,0 +1,2 @@
1
+ %h1.not_found.error_page Unprocessable Entity
2
+ %p.error_page Unable to process your request at this time. Please try again.
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Errors</title>
5
+ <%= stylesheet_link_tag "errors/application", :media => "all" %>
6
+ <%= javascript_include_tag "errors/application" %>
7
+ <%= csrf_meta_tags %>
8
+ </head>
9
+ <body>
10
+
11
+ <%= yield %>
12
+
13
+ </body>
14
+ </html>
@@ -0,0 +1,5 @@
1
+ Errors::Engine.routes.draw do
2
+ match "/404", :to => "errors/errors#not_found"
3
+ match "/422", :to => "errors/errors#unprocessable_entity"
4
+ match "/500", :to => "errors/errors#internal_server_error"
5
+ end
@@ -1,2 +1 @@
1
- STDERR.puts "WARNING: mosaic-errors will soon be deprecated - use Rails 3.2+ config.exception_app instead"
2
1
  require 'mosaic/errors'
@@ -1,66 +1,2 @@
1
- module Mosaic
2
- module Errors
3
- @@include_stack_trace = false
1
+ require "mosaic/errors/engine"
4
2
 
5
- def self.include_stack_trace!
6
- @@include_stack_trace = true
7
- end
8
-
9
- def self.included(controller)
10
- controller.extend(ClassMethods)
11
- controller.rescue_from Exception do |exception|
12
- render_application_error_template_for_exception(exception)
13
- Rails.logger.error exception.backtrace.join("\n") if include_stack_trace?
14
- end
15
- end
16
-
17
- def routing_error
18
- render_application_error_template :not_found
19
- end
20
-
21
- module ClassMethods
22
- DEFAULT_RESCUE_RESPONSE = :internal_server_error
23
-
24
- DEFAULT_RESCUE_RESPONSES = {
25
- 'ActionController::RoutingError' => :not_found,
26
- 'ActionController::UnknownAction' => :not_found,
27
- 'ActiveRecord::RecordNotFound' => :not_found,
28
- 'ActiveRecord::StaleObjectError' => :conflict,
29
- 'ActiveRecord::RecordInvalid' => :unprocessable_entity,
30
- 'ActiveRecord::RecordNotSaved' => :unprocessable_entity,
31
- 'ActionController::MethodNotAllowed' => :method_not_allowed,
32
- 'ActionController::NotImplemented' => :not_implemented,
33
- 'ActionController::InvalidAuthenticityToken' => :unprocessable_entity
34
- }
35
-
36
- def rescue_responses
37
- @rescue_responses ||= Hash.new(DEFAULT_RESCUE_RESPONSE).merge(DEFAULT_RESCUE_RESPONSES)
38
- end
39
- end
40
-
41
- protected
42
- def render_application_error_template(status)
43
- render :template => "errors/#{status}", :status => status
44
- rescue ActionView::MissingTemplate
45
- render :nothing => true, :status => status
46
- end
47
-
48
- def render_application_error_template_for_exception(exception)
49
- status = self.class.rescue_responses[exception.class.name]
50
- send_exception_notification(exception) if status == :internal_server_error || status == :not_found
51
- render_application_error_template status
52
- end
53
-
54
- def send_exception_notification(exception)
55
- if defined? notify_airbrake
56
- notify_airbrake(exception)
57
- elsif defined? notify_hoptoad
58
- notify_hoptoad(exception)
59
- end
60
- end
61
-
62
- def include_stack_trace?
63
- @@include_stack_trace
64
- end
65
- end
66
- end
@@ -0,0 +1,4 @@
1
+ module Errors
2
+ class Engine < ::Rails::Engine
3
+ end
4
+ end
@@ -1,5 +1,5 @@
1
1
  module Mosaic
2
2
  module Errors
3
- VERSION = "1.0.0"
3
+ VERSION = "2.0.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mosaic-errors
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-17 00:00:00.000000000 Z
12
+ date: 2013-05-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: haml
@@ -74,12 +74,18 @@ files:
74
74
  - README.md
75
75
  - Rakefile
76
76
  - VERSION
77
+ - app/controllers/errors/application_controller.rb
78
+ - app/controllers/errors/errors_controller.rb
79
+ - app/helpers/errors/application_helper.rb
80
+ - app/views/errors/errors/internal_server_error.html.haml
81
+ - app/views/errors/errors/not_found.html.haml
82
+ - app/views/errors/errors/unprocessable_entity.html.haml
83
+ - app/views/errors/layouts/application.html
84
+ - config/routes.rb
77
85
  - install.rb
78
- - lib/generators/error_pages_generator.rb
79
- - lib/generators/templates/internal_server_error.html.haml
80
- - lib/generators/templates/not_found.html.haml
81
86
  - lib/mosaic-errors.rb
82
87
  - lib/mosaic/errors.rb
88
+ - lib/mosaic/errors/engine.rb
83
89
  - lib/mosaic/errors/version.rb
84
90
  - lib/mosaic_errors.rb
85
91
  - mosaic-errors.gemspec
@@ -98,18 +104,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
98
104
  - - ! '>='
99
105
  - !ruby/object:Gem::Version
100
106
  version: '0'
101
- segments:
102
- - 0
103
- hash: -4474960627516075816
104
107
  required_rubygems_version: !ruby/object:Gem::Requirement
105
108
  none: false
106
109
  requirements:
107
110
  - - ! '>='
108
111
  - !ruby/object:Gem::Version
109
112
  version: '0'
110
- segments:
111
- - 0
112
- hash: -4474960627516075816
113
113
  requirements: []
114
114
  rubyforge_project:
115
115
  rubygems_version: 1.8.23
@@ -1,13 +0,0 @@
1
- class ErrorPagesGenerator < Rails::Generators::Base
2
- desc "adds error pages haml to the application and add routes"
3
- source_root File.expand_path("../templates", __FILE__)
4
-
5
- def copy_error_pages
6
- copy_file "internal_server_error.html.haml", "app/views/errors/internal_server_error.html.haml"
7
- copy_file "not_found.html.haml", "app/views/errors/not_found.html.haml"
8
- end
9
-
10
- def add_route
11
- route "match '*path', :to => 'application#routing_error'"
12
- end
13
- end