Class: IRB::OutputMethod (Ruby 2.7.3)
Description: Class : IRB::OutputMethod - Ruby 2.7.3

### Home Classes Methods

### In Files

- irb/output-method.rb

### Parent

Object

### Namespace

- CLASS IRB::OutputMethod::NotImplementedError

### Methods

- #parse_printf_format
- #pp
- #ppx
- #print
- #printf
- #printn
- #puts

### Class/Module Index

Quicksearch

- Binding
- IRB::Abort
- IRB::Canvas
- IRB::Color
- IRB::Color::SymbolState
- IRB::Context
- IRB::ContextExtender
- IRB::ExtendCommandBundle
- IRB::FileInputMethod
- IRB::Frame
- IRB::Frame::FrameOverflow
- IRB::Frame::FrameUnderflow
- IRB::History
- IRB::InputMethod
- IRB::Inspector
- IRB::Irb
- IRB::IrbLoader
- IRB::JobManager
- IRB::LoadAbort
- IRB::MethodExtender
- IRB::Notifier
- IRB::Notifier::AbstractNotifier
- IRB::Notifier::CompositeNotifier
- IRB::Notifier::ErrUndefinedNotifier
- IRB::Notifier::ErrUnrecognizedLevel
- IRB::Notifier::LeveledNotifier
- IRB::Notifier::NoMsgNotifier
- IRB::OutputMethod
- IRB::OutputMethod::NotImplementedError
- IRB::ReadlineInputMethod
- IRB::ReidlineInputMethod
- IRB::RubyModel
- IRB::StdioInputMethod
- IRB::StdioOutputMethod
- IRB::Vec
- IRB::WorkSpace
- Object
- XMP
- XMP::StringInputMethod

No matching classes.

# IRB::OutputMethod

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`

### Public Instance Methods

parse_printf_format(format, opts) click to toggle source

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 irb/output-method.rb, line 54
    def parse_printf_format(format, opts)
      return format, opts if $1.size % 2 == 1
    end

pp(*objs) click to toggle source

Prints the given `objs` calling Object#inspect on each.

See `puts` for more detail.

                   # File irb/output-method.rb, line 70
    def pp(*objs)
      puts(*objs.collect{|obj| obj.inspect})
    end

ppx(prefix, *objs) click to toggle source

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

See `puts` for more detail.

                   # File irb/output-method.rb, line 78
    def ppx(prefix, *objs)
      puts(*objs.collect{|obj| prefix+obj.inspect})
    end

print(*opts) click to toggle source

Open this method to implement your own output method, raises a `NotImplementedError` if you don't define `print` in your own class.

                   # File irb/output-method.rb, line 26
    def print(*opts)
      raise NotImplementedError, "print"
    end

printf(format, *opts) click to toggle source

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

                   # File 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) click to toggle source

Prints the given `opts`, with a newline delimiter.

                   # File irb/output-method.rb, line 31
    def printn(*opts)
      print opts.join(" "), "\n"
    end

puts(*objs) click to toggle source

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

                   # File irb/output-method.rb, line 60
    def puts(*objs)
      for obj in objs
        print(*obj)
        print "\n"
      end
    end