我对 ruby 相当陌生,并且正在配置 IRB。我喜欢漂亮的打印(需要'pp'),但总是输入 pp 让它漂亮地打印它似乎很麻烦。我想做的是在默认情况下让它打印得很漂亮,所以如果我有一个 var ,比如'myvar',然后输入 myvar,它会自动调用 pretty_inspect 而不是常规的检查。我从哪里开始?理想情况下,我可以向我的 .irbrc 文件中添加一个自动调用的方法。有任何想法吗?
谢谢!
我对 ruby 相当陌生,并且正在配置 IRB。我喜欢漂亮的打印(需要'pp'),但总是输入 pp 让它漂亮地打印它似乎很麻烦。我想做的是在默认情况下让它打印得很漂亮,所以如果我有一个 var ,比如'myvar',然后输入 myvar,它会自动调用 pretty_inspect 而不是常规的检查。我从哪里开始?理想情况下,我可以向我的 .irbrc 文件中添加一个自动调用的方法。有任何想法吗?
谢谢!
irb 中默认的漂亮打印对象正是hirb所做的。这些 帖子解释了 hirb 如何将几乎任何东西转换成 ascii 表。尽管 hirb 旨在为每个类配置,但您可以将所有对象显示为表格:
# put this in ~/.irbrc
require 'rubygems'
require 'hirb'
Hirb.enable :output=>{'Object'=>{:class=>:auto_table, :ancestor=>true}}
# in irb
>> %w{three blind mice}
+-------+
| value |
+-------+
| three |
| blind |
| mice |
+-------+
3 rows in set
>> 1..5
+-------+
| value |
+-------+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
+-------+
5 rows in set
>> {:a=>1, :b=>2}
+---+---+
| 0 | 1 |
+---+---+
| a | 1 |
| b | 2 |
+---+---+
2 rows in set
这个相关的溢出解决方案也有一个 hirb 的例子。
当 irb 启动时,它会从您的 $HOME 目录中读取 .irbrc。如果您编辑(或创建)该文件并添加
require 'pp'
每次启动 irb 时都会加载它。
也可以查看一下pretty_print 方法列表的新增内容。把它扔到你的 .irbrc 中,你可以这样做:
>> 5.pm
%(arg1) Fixnum
&(arg1) Fixnum
*(arg1) Fixnum
**(arg1) Fixnum
+(arg1) Fixnum
+@() Fixnum(Numeric)
-(arg1) Fixnum
-@() Fixnum
/(arg1) Fixnum
<<(arg1) Fixnum
>>(arg1) Fixnum
[](arg1) Fixnum
^(arg1) Fixnum
abs() Fixnum
ago(arg1, ...) Fixnum(ActiveSupport::CoreExtensions::Numeric::Time)
between?(arg1, arg2) Fixnum(Comparable)
byte() Fixnum(ActiveSupport::CoreExtensions::Numeric::Bytes)
bytes() Fixnum(ActiveSupport::CoreExtensions::Numeric::Bytes