123456789_123456789_123456789_123456789_123456789_

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

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 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.

[ GitHub ]

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

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 78

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 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.

[ GitHub ]

  
# 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.

[ GitHub ]

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

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