Class: IRB::OutputMethod
Relationships & Source Files | |
Extension / Inclusion / Inheritance Descendants | |
Subclasses:
|
|
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
Exception2MessageMapper
|
|
Inherits: | Object |
Defined in: | lib/irb/output-method.rb |
Overview
An abstract output class for IO in irb. This is mainly used internally by Notifier. You can define your own output method to use with Irb.new, or Context.new
Instance Method Summary
-
#parse_printf_format(format, opts)
Returns an array of the given
format
andopts
to be used byKernel.sprintf
, if there was a successful Regexp match in the givenformat
from #printf -
#pp(*objs)
Prints the given
objs
callingObject#inspect
on each. -
#ppx(prefix, *objs)
Prints the given
objs
callingObject#inspect
on each and appending the givenprefix
. -
#print(*opts)
Open this method to implement your own output method, raises a NotImplementedError if you don't define #print in your own class.
-
#printf(format, *opts)
Extends
IO#printf
to format the givenopts
forKernel.sprintf
using #parse_printf_format -
#printn(*opts)
Prints the given
opts
, with a newline delimiter. -
#puts(*objs)
Calls #print on each element in the given
objs
, followed by a newline character.
Instance Method Details
#parse_printf_format(format, opts)
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 'lib/irb/output-method.rb', line 53
def parse_printf_format(format, opts) return format, opts if $1.size % 2 == 1 end
#pp(*objs)
Prints the given objs
calling Object#inspect
on each.
See #puts for more detail.
#ppx(prefix, *objs)
Prints the given objs
calling Object#inspect
on each and appending the given prefix
.
See #puts for more detail.
#print(*opts)
Open this method to implement your own output method, raises a NotImplementedError if you don't define #print
in your own class.
# File 'lib/irb/output-method.rb', line 25
def print(*opts) OutputMethod.Raise NotImplementedError, "print" end
#printf(format, *opts)
Extends IO#printf
to format the given opts
for Kernel.sprintf
using #parse_printf_format
# File 'lib/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
#printn(*opts)
Prints the given opts
, with a newline delimiter.
# File 'lib/irb/output-method.rb', line 30
def printn(*opts) print opts.join(" "), "\n" end
#puts(*objs)
Calls #print on each element in the given objs
, followed by a newline character.