An abstract output class for IO in irb. This is mainly used internally by IRB::Notifier. You can define your own output method to use with IRB::Irb.new, or IRB::Context.new
Returns an array of the given format and opts to
be used by Kernel#sprintf, if there was a successful Regexp match in the
given format from printf
% <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 irb/output-method.rb, line 53
def parse_printf_format(format, opts)
return format, opts if $1.size % 2 == 1
end
Prints the given objs calling Object#inspect on each.
See puts for more detail.
# File irb/output-method.rb, line 69
def pp(*objs)
puts(*objs.collect{|obj| obj.inspect})
end
Prints the given objs calling Object#inspect on each and
appending the given prefix.
See puts for more detail.
# File irb/output-method.rb, line 77
def ppx(prefix, *objs)
puts(*objs.collect{|obj| prefix+obj.inspect})
end
Open this method to implement your own output method, raises a NotImplementedError if you don’t define print in your own class.
# File irb/output-method.rb, line 25
def print(*opts)
OutputMethod.Raise NotImplementedError, "print"
end
Extends IO#printf to format the given opts for Kernel#sprintf
using parse_printf_format
# File irb/output-method.rb, line 36
def printf(format, *opts)
if /(%*)%I/ =~ format
format, opts = parse_printf_format(format, opts)
end
print sprintf(format, *opts)
end
Prints the given opts, with a newline delimiter.
# File irb/output-method.rb, line 30
def printn(*opts)
print opts.join(" "), "\n"
end
Calls print on each element
in the given objs, followed by a newline character.
# File irb/output-method.rb, line 59
def puts(*objs)
for obj in objs
print(*obj)
print "\n"
end
end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please see Improve the docs, or visit Documenting-ruby.org.