Lots going on
[lyrix.git] / vendor / rails / actionpack / lib / action_view / helpers / debug_helper.rb
blob20de7e465f0b67b2bb7173bcc9aad51df0315277
1 module ActionView
2   module Helpers
3     # Provides a set of methods for making it easier to debug Rails objects.
4     module DebugHelper
5       # Returns a <pre>-tag that has +object+ dumped by YAML. This creates a very
6       # readable way to inspect an object.
7       #
8       # ==== Example
9       #  my_hash = {'first' => 1, 'second' => 'two', 'third' => [1,2,3]}
10       #  debug(my_hash)
11       #
12       #  => <pre class='debug_dump'>--- 
13       #  first: 1
14       #  second: two
15       #  third: 
16       #  - 1
17       #  - 2
18       #  - 3
19       #  </pre>
20       def debug(object)
21         begin
22           Marshal::dump(object)
23           "<pre class='debug_dump'>#{h(object.to_yaml).gsub("  ", "&nbsp; ")}</pre>"
24         rescue Exception => e  # errors from Marshal or YAML
25           # Object couldn't be dumped, perhaps because of singleton methods -- this is the fallback
26           "<code class='debug_dump'>#{h(object.inspect)}</code>"
27         end
28       end
29     end
30   end
31 end