类 PP
Ruby 对象的漂亮打印器。
PP
的作用¶ ↑
标准输出由 p
返回
#<PP:0x81fedf0 @genspace=#<Proc:0x81feda0>, @group_queue=#<PrettyPrint::GroupQueue:0x81fed3c @queue=[[#<PrettyPrint::Group:0x81fed78 @breakables=[], @depth=0, @break=false>], []]>, @buffer=[], @newline="\n", @group_stack=[#<PrettyPrint::Group:0x81fed78 @breakables=[], @depth=0, @break=false>], @buffer_width=0, @indent=0, @maxwidth=79, @output_width=2, @output=#<IO:0x8114ee4>>
漂亮打印输出返回
#<PP:0x81fedf0 @buffer=[], @buffer_width=0, @genspace=#<Proc:0x81feda0>, @group_queue= #<PrettyPrint::GroupQueue:0x81fed3c @queue= [[#<PrettyPrint::Group:0x81fed78 @break=false, @breakables=[], @depth=0>], []]>, @group_stack= [#<PrettyPrint::Group:0x81fed78 @break=false, @breakables=[], @depth=0>], @indent=0, @maxwidth=79, @newline="\n", @output=#<IO:0x8114ee4>, @output_width=2>
用法¶ ↑
pp(obj) #=> obj pp obj #=> obj pp(obj1, obj2, ...) #=> [obj1, obj2, ...] pp() #=> nil
以漂亮打印格式将 obj(s)
输出到 $>
。
它返回 obj(s)
。
输出自定义¶ ↑
要为您的类定义自定义漂亮打印函数,请在类中重新定义方法 #pretty_print(pp)
。请注意,在重新定义 #pretty_print(pp)
之前需要 require 'pp'
。
#pretty_print
接受 pp
参数,它是 PP
类的实例。该方法使用 text
、breakable
、nest
、group
和 pp
来打印对象。
漂亮打印 JSON
¶ ↑
要漂亮打印 JSON
,请参考 JSON#pretty_generate
。
作者¶ ↑
Tanaka Akira <[email protected]>
常量
- VERSION
公共类方法
pp(obj, out=$>, width=width_for(out)) 点击切换源代码
sharing_detection() 点击切换源代码
返回共享检测标志作为布尔值。默认情况下为 false(nil)。
# File lib/pp.rb, line 124 def sharing_detection Ractor.current[:pp_sharing_detection] end
sharing_detection=(b) 点击切换源代码
将共享检测标志设置为 b。
# File lib/pp.rb, line 128 def sharing_detection=(b) Ractor.current[:pp_sharing_detection] = b end
singleline_pp(obj, out=$>) 点击切换源代码
将 obj
输出到 out
,类似于 PP.pp
,但没有缩进和换行。
PP.singleline_pp
返回 out
。
# File lib/pp.rb, line 107 def PP.singleline_pp(obj, out=$>) q = SingleLine.new(out) q.guard_inspect_key {q.pp obj} q.flush out end
width_for(out) 点击切换源代码
返回 out
的可用宽度。作为 out
的宽度
-
如果
out
被分配给 tty 设备,则使用其宽度。 -
否则,或者无法获取值,则假设
COLUMN
环境变量设置为宽度。 -
如果
COLUMN
未设置为非零数字,则假设为 80。
最后,返回上述宽度值 - 1。
-
此 -1 用于 Windows 命令提示符,如果它到达最后一列,它会将光标移动到下一行。
# File lib/pp.rb, line 78 def PP.width_for(out) begin require 'io/console' _, width = out.winsize rescue LoadError, NoMethodError, SystemCallError end (width || ENV['COLUMNS']&.to_i&.nonzero? || 80) - 1 end