Equivalent to ColdFusion's CFDUMP tag in Ruby on Rails?


#1

One of ColdFusion’s best features is it’s CFDUMP tag with awesome
visual representation of data, especially for objects, arrays, etc.
For PHP there is a class called dBug created by Kwaku Otchere
(http://dbug.ospinto.com). It is basically a port of cfdump to PHP
with an identical visual style.

So I was wondering … has anyone done this for Ruby on Rails? Or is
there anything similar?

-Kenric


#2

Dont know of anything similar, but you could just:

require ‘yaml’

variable = {
“first”=> “1”,
“second” => nil,
“third”=> {
“inner third 1” => nil,
“inner third 2”=>“yeah”
},
“fourth” => nil
}

<%= variable.to_yaml %>

Not nearly as fancy though :slight_smile:


#3

arg… You made me do it. It sucks, but it works for basic types.
You must use it with an Array or Hash otherwise you get no headers:

class Object
def to_html(value = self.to_s);
return “#{value}
end
end

class String
def to_html; super(self) end
end

class Symbol
def to_html; super(’:’ + self.to_s) end
end

class NilClass
def to_html; super(‘nil’) end
end

class Hash
def to_html
html = “


self.each_pair do |k, v|
html += “#{k.to_html}”
end
html += “
#{self.class}
#{v.to_html}

super(html)
end
end

class Array
def to_html
html = “


self.size.times do |index|
html += “#{index}”
end
html += “
#{self.class}
#{self[index]}

super(html)
end
end

variable = {
“first”=> “1”,
:a23 => “second”,
“third”=> {
nil => “inner third 1”,
“inner third 2”=>“yeah”
},
:values => [1, 2, 3, 4],
nil => “fourth”
}

Then you can do:

<%= variable.to_html %>

To get output that looks very similar to the dBug stuff for Php. I
used the styles that were at the link you provided, but I had to change
up the names to fit better:

table.RdBug_Array,table.RdBug_Object,table.RdBug_Hash,table.RdBug_String,table.RdBug_Symbol { font-family:Verdana, Arial, Helvetica, sans-serif; color:#000000; font-size:12px; } .RdBug_ArrayHeader, .RdBug_ObjectHeader, .RdBug_HashHeader, .RdBug_StringCHeader, .RdBug_SymbolHeader { font-weight:bold; color:#FFFFFF; } /* array */ table.RdBug_Array { background-color:#006600; } table.RdBug_Array td { background-color:#FFFFFF; } table.RdBug_Array td.RdBug_ArrayHeader { background-color:#009900; } table.RdBug_Array td.RdBug_ArrayKey { background-color:#CCFFCC; } /* resource */ table.RdBug_Hash { background-color:#006600; } table.RdBug_Hash td { background-color:#FFFFFF; } table.RdBug_Hash td.RdBug_HashHeader { background-color:#009900; } table.RdBug_Hash td.RdBug_HashKey { background-color:#CCFFCC; }

#4

One of ColdFusion’s best features is it’s CFDUMP tag with awesome
visual representation of data, especially for objects, arrays, etc.
For PHP there is a class called dBug created by Kwaku Otchere
(http://dbug.ospinto.com). It is basically a port of cfdump to PHP
with an identical visual style.

So I was wondering … has anyone done this for Ruby on Rails? Or is
there anything similar?

<%=debug the_object_you_want_to_inspect %>

Also, ask Rails questions to the Rails list rather than here; you’ll get
better answers.

Cheers,
Dave