chatterbox 0.5.3 → 0.5.4

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/CHANGELOG.markdown CHANGED
@@ -1,4 +1,11 @@
1
1
  HEAD
2
+
3
+ 0.5.4
4
+ - Remove very dangerous delegation from RailsCatcher, as these delegates can override common
5
+ ActionController::Base methods when the catcher is included. Wishing Ruby had real namespaces
6
+ right about now
7
+ - Remove #log_prefix from RailsCatcher, simpler and not needed
8
+
2
9
  0.5.3
3
10
  - exception filtering
4
11
 
data/README.markdown CHANGED
@@ -19,21 +19,23 @@ Then run:
19
19
 
20
20
  ## Exception Notification
21
21
 
22
- One of the first use cases that Chatterbox was developed for was exception notification. To setup Chatterbox for exception notification, install it as a gem with the instructions above, then configure a service.
22
+ One of the most handy use cases Chatterbox was developed for was Rails exception notification. To setup Chatterbox for exception notification, install it as a gem with the instructions above, then configure it inside an initializer:
23
23
 
24
- then wire the `RailsCatcher` in your `ApplicationController`:
24
+ Chatterbox::Services::Email.configure :to => "errors@example.com", :from => "donotreply@example.com"
25
+
26
+ Chatterbox::Publishers.register do |notification|
27
+ Chatterbox::Services::Email.deliver(notification)
28
+ end
25
29
 
26
- To enable standard Rails exception catching for your controllers, add the following to `application_controller`
30
+ then wire the `RailsCatcher` in your `ApplicationController`:
27
31
 
28
32
  class ApplicationController < ActionController::Base
29
33
  include Chatterbox::RailsCatcher
30
- # ...
31
34
  end
32
-
33
- Then, wire up a producer
34
35
 
36
+ And you are done! Exceptions thrown in controllers will automatically be processed and sent by Chatterbox, and then raised to be handled (or not handled) as normally.
35
37
 
36
- Example 1
38
+ ## Example: Sending Emails
37
39
  ---------------------------------------
38
40
 
39
41
  Register the email service to handle messages that get sent to Chatterbox:
@@ -46,20 +48,10 @@ Then, wherever you want to send email, do this:
46
48
 
47
49
  message = {
48
50
  :config => { :to => "joe@example.com", :from => "donotreply@example.com" },
49
- :message => { :summary => "your subject line here" }
51
+ :message => { :summary => "your subject line here", :body => "Email body here" }
50
52
  }
51
53
  Chatterbox.handle_notice(options)
52
54
 
53
- Example 2
54
- ---------------------------------------
55
-
56
- Wiring up notices to be sent to an exceptions queue, defined in RosettaQueue
57
-
58
- Chatterbox::Publishers.register do |notice|
59
- RosettaQueue::Producer.publish(:exceptions, notice)
60
- end
61
-
62
-
63
55
  Bugs & Patches
64
56
  --------------
65
57
 
@@ -1,5 +1,5 @@
1
1
  ---
2
2
  :major: 0
3
3
  :minor: 5
4
+ :patch: 4
4
5
  :build:
5
- :patch: 3
data/chatterbox.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{chatterbox}
8
- s.version = "0.5.3"
8
+ s.version = "0.5.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Rob Sanheim"]
@@ -23,6 +23,7 @@ Gem::Specification.new do |s|
23
23
  "LICENSE",
24
24
  "README.markdown",
25
25
  "Rakefile",
26
+ "VERSION.yml",
26
27
  "chatterbox.gemspec",
27
28
  "examples/example_helper.rb",
28
29
  "examples/lib/chatterbox/exception_notification/extracter_example.rb",
@@ -47,7 +48,6 @@ Gem::Specification.new do |s|
47
48
  "lib/chatterbox/services/email/views/chatterbox/services/email/mailer/message.erb",
48
49
  "rails/init.rb",
49
50
  "todo.markdown",
50
- "version.yml",
51
51
  "views/chatterbox/mailer/exception_notification.erb"
52
52
  ]
53
53
  s.homepage = %q{http://github.com/rsanheim/chatterbox}
@@ -10,13 +10,6 @@ describe Chatterbox::RailsCatcher do
10
10
  }.new
11
11
  end
12
12
 
13
- describe "logger" do
14
- it "should delegate to Chatterbox#logger" do
15
- Chatterbox.expects(:logger)
16
- helper.logger
17
- end
18
- end
19
-
20
13
  describe "configuration" do
21
14
  after do
22
15
  Chatterbox::RailsCatcher.configure { |c| c.ignore = Chatterbox::RailsCatcher.default_ignored_exceptions }
@@ -3,14 +3,12 @@ require 'ostruct'
3
3
  module Chatterbox
4
4
 
5
5
  module RailsCatcher
6
- delegate :logger, :to => Chatterbox
7
- delegate :configuration, :to => self
8
6
 
9
7
  def self.default_ignored_exceptions
10
8
  ['ActiveRecord::RecordNotFound', 'ActionController::RoutingError',
11
9
  'ActionController::InvalidAuthenticityToken', 'ActionController::UnknownAction',
12
10
  'CGI::Session::CookieStore::TamperedWithCookie' ]
13
- end
11
+ end
14
12
 
15
13
  def self.configuration
16
14
  @configuration ||= OpenStruct.new(:ignore => default_ignored_exceptions)
@@ -31,23 +29,19 @@ module Chatterbox
31
29
  # Overrides the rescue_action method in ActionController::Base, but does not inhibit
32
30
  # any custom processing that is defined with Rails 2's exception helpers.
33
31
  def rescue_action_in_public_with_chatterbox(exception)
34
- logger.debug { "#{log_prefix} caught exception #{exception} - about to handle" }
32
+ Chatterbox.logger.debug { "Chatterbox caught exception #{exception} - about to handle" }
35
33
  unless on_ignore_list?(exception)
36
34
  Chatterbox.handle_notice(extract_exception_details(exception))
37
35
  end
38
- logger.debug { "#{log_prefix} handing exception #{exception} off to normal rescue handling" }
36
+ Chatterbox.logger.debug { "Chatterbox handing exception #{exception} off to normal rescue handling" }
39
37
  rescue_action_in_public_without_chatterbox(exception)
40
38
  end
41
39
 
42
40
  private
43
41
 
44
- def log_prefix
45
- "#{self.class}#rescue_action_in_public_with_chatterbox:"
46
- end
47
-
48
42
  def on_ignore_list?(exception)
49
- configuration.ignore.include?(exception.class) ||
50
- configuration.ignore.include?(exception.class.to_s)
43
+ Chatterbox::RailsCatcher.configuration.ignore.include?(exception.class) ||
44
+ Chatterbox::RailsCatcher.configuration.ignore.include?(exception.class.to_s)
51
45
  end
52
46
 
53
47
  def extract_exception_details(exception)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chatterbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob Sanheim
@@ -68,6 +68,7 @@ files:
68
68
  - LICENSE
69
69
  - README.markdown
70
70
  - Rakefile
71
+ - VERSION.yml
71
72
  - chatterbox.gemspec
72
73
  - examples/example_helper.rb
73
74
  - examples/lib/chatterbox/exception_notification/extracter_example.rb
@@ -92,7 +93,6 @@ files:
92
93
  - lib/chatterbox/services/email/views/chatterbox/services/email/mailer/message.erb
93
94
  - rails/init.rb
94
95
  - todo.markdown
95
- - version.yml
96
96
  - views/chatterbox/mailer/exception_notification.erb
97
97
  has_rdoc: true
98
98
  homepage: http://github.com/rsanheim/chatterbox