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 54
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 26
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 37
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 31
def printn(*opts) print opts.join(" "), "\n" end
#puts(*objs)
Calls #print on each element in the given objs
, followed by a newline character.