我有一个大哈希嵌套数组和哈希。我想简单地打印出来,所以它'可读'的用户。
我希望它有点像to_yaml -这是相当可读的-但仍然太高科技看起来。
最终需要读取这些数据块的将是最终用户,因此它们需要被清晰地格式化。
有什么建议吗?
我有一个大哈希嵌套数组和哈希。我想简单地打印出来,所以它'可读'的用户。
我希望它有点像to_yaml -这是相当可读的-但仍然太高科技看起来。
最终需要读取这些数据块的将是最终用户,因此它们需要被清晰地格式化。
有什么建议吗?
当前回答
下面是使用json和rouge的另一种方法:
require 'json'
require 'rouge'
formatter = Rouge::Formatters::Terminal256.new
json_lexer = Rouge::Lexers::JSON.new
puts formatter.format(json_lexer.lex(JSON.pretty_generate(JSON.parse(response))))
(解析来自RestClient的响应)
其他回答
另一个解决方案比pp或awesome_print更适合我:
require 'pry' # must install the gem... but you ALWAYS want pry installed anyways
Pry::ColorPrinter.pp(obj)
在Rails中,Ruby中的数组和哈希有内置的to_json函数。我会使用JSON,因为它在web浏览器中是非常可读的,例如谷歌Chrome。
也就是说,如果你担心它看起来太“科技”,你可能应该写自己的函数,用空格和其他字符替换散列和数组中的花括号和方括号。
在gsub函数中找到一个很好的方法。继续使用不同的字符和不同数量的空白,直到你找到一些看起来有吸引力的东西。http://ruby-doc.org/core-1.9.3/String.html#method-i-gsub
如果要打印给用户,请使用上面的答案。
如果你只想在控制台为自己打印,我建议使用撬宝石而不是irb。除了漂亮的印刷,撬还有很多其他功能(查看下面的railscast)
宝石安装撬
看看这个铁路广播:
http://railscasts.com/episodes/280-pry-with-rails
下面是使用json和rouge的另一种方法:
require 'json'
require 'rouge'
formatter = Rouge::Formatters::Terminal256.new
json_lexer = Rouge::Lexers::JSON.new
puts formatter.format(json_lexer.lex(JSON.pretty_generate(JSON.parse(response))))
(解析来自RestClient的响应)
在我尝试的所有宝石中,show_data宝石对我来说工作得最好,我现在广泛地使用它来记录Rails中的参数散列