123456789_123456789_123456789_123456789_123456789_

Class: IRB::OutputMethod

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Subclasses:
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

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%]
[ GitHub ]

  
# File 'lib/irb/output-method.rb', line 42

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.

[ GitHub ]

  
# File 'lib/irb/output-method.rb', line 58

def pp(*objs)
  puts(*objs.collect{|obj| obj.inspect})
end

#ppx(prefix, *objs)

Prints the given objs calling Object#inspect on each and appending the given prefix.

See #puts for more detail.

[ GitHub ]

  
# File 'lib/irb/output-method.rb', line 66

def ppx(prefix, *objs)
  puts(*objs.collect{|obj| prefix+obj.inspect})
end

#printf(format, *opts)

Extends IO#printf to format the given opts for Kernel.sprintf using #parse_printf_format

[ GitHub ]

  
# File 'lib/irb/output-method.rb', line 25

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.

[ GitHub ]

  
# File 'lib/irb/output-method.rb', line 19

def printn(*opts)
  print opts.join(" "), "\n"
end

#puts(*objs)

Calls #print on each element in the given objs, followed by a newline character.

[ GitHub ]

  
# File 'lib/irb/output-method.rb', line 48

def puts(*objs)
  for obj in objs
    print(*obj)
    print "\n"
  end
end