relevance-chatterbox 0.2.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/chatterbox.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{chatterbox}
8
- s.version = "0.2.2"
8
+ s.version = "0.3.0"
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"]
12
- s.date = %q{2009-08-14}
12
+ s.date = %q{2009-08-31}
13
13
  s.email = %q{rsanheim@gmail.com}
14
14
  s.extra_rdoc_files = [
15
15
  "LICENSE",
@@ -38,11 +38,10 @@ Gem::Specification.new do |s|
38
38
  "version.yml",
39
39
  "views/chatterbox/mailer/exception_notification.erb"
40
40
  ]
41
- s.has_rdoc = true
42
41
  s.homepage = %q{http://github.com/relevance/chatterbox}
43
42
  s.rdoc_options = ["--charset=UTF-8"]
44
43
  s.require_paths = ["lib"]
45
- s.rubygems_version = %q{1.3.2}
44
+ s.rubygems_version = %q{1.3.5}
46
45
  s.summary = %q{TODO}
47
46
  s.test_files = [
48
47
  "examples/chatterbox_example.rb",
@@ -14,13 +14,6 @@ describe Chatterbox::Notification do
14
14
  }.should_not raise_error
15
15
  end
16
16
 
17
- it "should convert exception to notice" do
18
- exception = RuntimeError.new
19
- notification = Chatterbox::Notification.new(exception)
20
- notification.expects(:exception_to_notice).with(exception).returns({})
21
- notification.notice
22
- end
23
-
24
17
  it "should use to_hash if message is not an exception and it responds_to possible" do
25
18
  some_object = mock(:to_hash => {:foo => "bar"})
26
19
  Chatterbox::Notification.new(some_object).notice.should include({:foo => "bar"})
@@ -74,6 +67,22 @@ describe Chatterbox::Notification do
74
67
  data[:backtrace].should == exception.backtrace
75
68
  end
76
69
 
70
+ it "should extract exception info from an exception in a hash" do
71
+ exception = raised_exception
72
+ data = Chatterbox::Notification.new(:exception => exception, :other_info => "yo dawg").notice
73
+ data[:summary].should == "RuntimeError: Your zing bats got mixed up with the snosh frazzles."
74
+ data[:error_class].should == "RuntimeError"
75
+ data[:error_message].should == "Your zing bats got mixed up with the snosh frazzles."
76
+ data[:backtrace].should == exception.backtrace
77
+ data[:other_info].should == "yo dawg"
78
+ end
79
+
80
+ it "should let extra data win over auto extracted exception data" do
81
+ exception = raised_exception
82
+ data = Chatterbox::Notification.new(:exception => exception, :summary => "I know what I'm doing, and we got an error").notice
83
+ data[:summary].should == "I know what I'm doing, and we got an error"
84
+ end
85
+
77
86
  it "merges rails info and ruby info into the exception info" do
78
87
  notification = Chatterbox::Notification.new(raised_exception)
79
88
  rails = stub_everything(:version => "2.0", :root => "/rails/root", :env => "production")
@@ -10,13 +10,14 @@ module Chatterbox
10
10
 
11
11
  def notice
12
12
  hash = normalize_message_to_hash(message)
13
+ hash = exception_to_notice(hash)
13
14
  default_info.merge(hash)
14
15
  end
15
16
 
16
17
  def normalize_message_to_hash(message)
17
18
  case
18
19
  when Exception === message
19
- exception_to_notice(message)
20
+ { :exception => message }
20
21
  when message.respond_to?(:to_hash)
21
22
  message.to_hash
22
23
  when message.respond_to?(:to_s)
@@ -40,13 +41,15 @@ module Chatterbox
40
41
  { :summary => message }
41
42
  end
42
43
 
43
- def exception_to_notice(exception)
44
+ def exception_to_notice(hash)
45
+ return hash unless hash.key?(:exception)
46
+ exception = hash[:exception]
44
47
  {
45
48
  :summary => "#{exception.class.name}: #{exception.message}",
46
49
  :error_class => exception.class.name,
47
50
  :error_message => exception.message,
48
51
  :backtrace => exception.backtrace,
49
- }
52
+ }.merge(hash)
50
53
  end
51
54
 
52
55
  def add_rails_info(data)
data/version.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :major: 0
3
- :minor: 2
4
- :patch: 2
3
+ :minor: 3
4
+ :patch: 0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relevance-chatterbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob Sanheim
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-08-14 00:00:00 -07:00
12
+ date: 2009-08-31 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -44,9 +44,8 @@ files:
44
44
  - todo.markdown
45
45
  - version.yml
46
46
  - views/chatterbox/mailer/exception_notification.erb
47
- has_rdoc: true
47
+ has_rdoc: false
48
48
  homepage: http://github.com/relevance/chatterbox
49
- licenses:
50
49
  post_install_message:
51
50
  rdoc_options:
52
51
  - --charset=UTF-8
@@ -67,7 +66,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
67
66
  requirements: []
68
67
 
69
68
  rubyforge_project:
70
- rubygems_version: 1.3.5
69
+ rubygems_version: 1.2.0
71
70
  signing_key:
72
71
  specification_version: 3
73
72
  summary: TODO