類別 IRB::OutputMethod

irb 中 IO 的抽象輸出類別。這主要由 IRB::Notifier 內部使用。您可以定義自己的輸出方法,以搭配 Irb.newContext.new 使用

公開實例方法

parse_printf_format(format, opts) 按一下以切換來源

如果在 printf 給定的 format 中有成功的 Regexp 比對,傳回一個陣列,包含要由 Kernel#sprintf 使用的給定 formatopts

%
<flag>  [#0- +]
<minimum field width> (\*|\*[1-9][0-9]*\$|[1-9][0-9]*)
<precision>.(\*|\*[1-9][0-9]*\$|[1-9][0-9]*|)?
#<length modifier>(hh|h|l|ll|L|q|j|z|t)
<conversion specifier>[diouxXeEfgGcsb%]
# File lib/irb/output-method.rb, line 48
def parse_printf_format(format, opts)
  return format, opts if $1.size % 2 == 1
end
pp(*objs) 按一下以切換來源

列印給定的 objs,對每個呼叫 Object#inspect

請參閱 puts 以取得更多詳細資料。

# File lib/irb/output-method.rb, line 64
def pp(*objs)
  puts(*objs.collect{|obj| obj.inspect})
end
ppx(prefix, *objs) 按一下以切換來源

列印給定的 objs,對每個呼叫 Object#inspect,並附加給定的 prefix

請參閱 puts 以取得更多詳細資料。

# File lib/irb/output-method.rb, line 72
def ppx(prefix, *objs)
  puts(*objs.collect{|obj| prefix+obj.inspect})
end
print(*opts) 按一下以切換來源

開啟此方法以實作您自己的輸出方法,如果您未在自己的類別中定義 print,則會引發 NotImplementedError

printf(format, *opts) 按一下以切換來源

延伸 IO#printf 以使用 parse_printf_formatKernel#sprintf 格式化指定的 opts

# File lib/irb/output-method.rb, line 31
def printf(format, *opts)
  if /(%*)%I/ =~ format
    format, opts = parse_printf_format(format, opts)
  end
  print sprintf(format, *opts)
end
printn(*opts) 按一下以切換來源

列印指定的 opts,並加上換行符號作為分隔符號。

# File lib/irb/output-method.rb, line 25
def printn(*opts)
  print opts.join(" "), "\n"
end
puts(*objs) 按一下以切換來源

對指定的 objs 中的每個元素呼叫 print,然後加上換行字元。

# File lib/irb/output-method.rb, line 54
def puts(*objs)
  for obj in objs
    print(*obj)
    print "\n"
  end
end