Skip to content
This repository has been archived by the owner on Mar 27, 2022. It is now read-only.

Commit

Permalink
Render arrays smartly; remove one more :message...
Browse files Browse the repository at this point in the history
  - arrays need to have newlines, otherwise things like backtraces end up completely unusable in emails
  - remove unnecessary :message in ExceptionPresenter
  • Loading branch information
rsanheim committed Nov 26, 2009
1 parent c997a66 commit 0654356
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 7 deletions.
Expand Up @@ -69,6 +69,23 @@
EOL
presenter.render_body.should include(expected)
end

it "renders backtrace cleanly" do
backtrace = ["/codes/file.rb:52:in `some_method'",
"/codes/file.rb:10:in `different_method'",
"/gems/some_gem/gem_name.rb:104:in `main'"]
options = { :backtrace => backtrace }
presenter = Chatterbox::ExceptionNotification::Presenter.new(options)
expected =<<EOL
Backtrace
----------
/codes/file.rb:52:in `some_method'
/codes/file.rb:10:in `different_method'
/gems/some_gem/gem_name.rb:104:in `main'
EOL
presenter.render_body.should == expected
end
end

describe "render_section" do
Expand Down
19 changes: 12 additions & 7 deletions lib/chatterbox/exception_notification/presenter.rb
Expand Up @@ -19,7 +19,8 @@ def summary
end

def to_message
{ :message => { :summary => summary, :body => render_body },
{ :summary => summary,
:body => render_body,
:config => @config }
end

Expand Down Expand Up @@ -54,14 +55,18 @@ def render_section(key, processed_keys = [])
end

def render_obj(object)
if object.is_a?(Hash)
render_hash(object)
else
render_non_hash(object)
case object
when Hash then render_hash(object)
when Array then render_array(object)
else render_object(object)
end
end

def render_non_hash(object)

def render_array(object)
render_object(object.join("\n"))
end

def render_object(object)
"#{object}\n"
end

Expand Down

0 comments on commit 0654356

Please sign in to comment.