Class: IRB::OutputMethod
- Extended by:
- Exception2MessageMapper
- Defined in:
- lib/irb/output-method.rb
Overview
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.new, or Context.new
Direct Known Subclasses
Instance Method Summary collapse
-
#parse_printf_format(format, opts) ⇒ Object
Returns an array of the given
format
andopts
to be used by Kernel#sprintf, if there was a successful Regexp match in the givenformat
from #printf. -
#pp(*objs) ⇒ Object
Prints the given
objs
calling Object#inspect on each. -
#ppx(prefix, *objs) ⇒ Object
Prints the given
objs
calling Object#inspect on each and appending the givenprefix
. -
#print(*opts) ⇒ Object
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) ⇒ Object
Extends IO#printf to format the given
opts
for Kernel#sprintf using #parse_printf_format. -
#printn(*opts) ⇒ Object
Prints the given
opts
, with a newline delimiter. -
#puts(*objs) ⇒ Object
Calls #print on each element in the given
objs
, followed by a newline character.
Instance Method Details
#parse_printf_format(format, opts) ⇒ Object
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%]
54 55 56 |
# 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) ⇒ Object
Prints the given objs
calling Object#inspect on each.
See #puts for more detail.
70 71 72 |
# File 'lib/irb/output-method.rb', line 70 def pp(*objs) puts(*objs.collect{|obj| obj.inspect}) end |
#ppx(prefix, *objs) ⇒ Object
Prints the given objs
calling Object#inspect on each and appending the given prefix
.
See #puts for more detail.
78 79 80 |
# File 'lib/irb/output-method.rb', line 78 def ppx(prefix, *objs) puts(*objs.collect{|obj| prefix+obj.inspect}) end |
#print(*opts) ⇒ Object
Open this method to implement your own output method, raises a NotImplementedError if you don’t define #print in your own class.
26 27 28 |
# File 'lib/irb/output-method.rb', line 26 def print(*opts) OutputMethod.Raise NotImplementedError, "print" end |
#printf(format, *opts) ⇒ Object
Extends IO#printf to format the given opts
for Kernel#sprintf using #parse_printf_format
37 38 39 40 41 42 |
# 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) ⇒ Object
Prints the given opts
, with a newline delimiter.
31 32 33 |
# File 'lib/irb/output-method.rb', line 31 def printn(*opts) print opts.join(" "), "\n" end |
#puts(*objs) ⇒ Object
Calls #print on each element in the given objs
, followed by a newline character.
60 61 62 63 64 65 |
# File 'lib/irb/output-method.rb', line 60 def puts(*objs) for obj in objs print(*obj) print "\n" end end |