Ruby on Rails: pretty print for variable.hash_set.inspect ... is there a way to pretty print .inpsect in the console?
I findy myself doing a lot of puts .inpsect s in my functional testing to make sure I know how the data is formatted... but hashes are hard to read when there is no new lines after each entry in a hash object. Is there anyway, maybe a gem?, to pretty print hashes?
So that it looks something like this:
{
entry1 => {
entrey1.1 => 1,开发者_运维百科
entry1.2 => 3
},
entry2 => 3
}
instead of: { entry1 => { entrey1.1 => 1, entry1.2 => 3}, entry2 => 3 }
?
Thanks!
you could use the awesome_print gem for that.
https://github.com/michaeldv/awesome_print
require 'awesome_print' # if you like to have it in irb by default, add it to your irbrc
>> ap({:a => 1, :b => [1,2,3], :c => :d})
{
:b => [
[0] 1,
[1] 2,
[2] 3
],
:a => 1,
:c => :d
}
btw, instead of puts object.inspect
you can also just use p object
which calls inspect in the object before printing it.
another way to print objects a little nicer than the default puts is to use pp
from the ruby stdlib ( http://ruby-doc.org/stdlib/libdoc/pp/rdoc/index.html )
You could always redefine Hash#inspect
in your .irbrc
file if you'd like, format them any way you want. That will only affect your interactive environment. An alternative is to express them as YAML which is often more readable. For instance:
def y(object)
puts object.to_yaml
return
end
This way you can run y
on objects as you might p
today.
精彩评论