class Pry::Pager

A pager is an `IO`-like object that accepts text and either prints it immediately, prints it one page at a time, or streams it to an external program to print one page at a time.

Attributes

_pry_[R]

Public Class Methods

new(_pry_) click to toggle source
# File lib/pry/pager.rb, line 12
def initialize(_pry_)
  @_pry_ = _pry_
end

Public Instance Methods

open() { |pager| ... } click to toggle source

Yields a pager object (`NullPager`, `SimplePager`, or `SystemPager`). All pagers accept output with `#puts`, `#print`, `#write`, and `#<<`. @param [IO] output (`$stdout`) An object to send output to.

# File lib/pry/pager.rb, line 31
def open
  pager = best_available
  yield pager
rescue StopPaging
ensure
  pager.close if pager
end
page(text) click to toggle source

Send the given text through the best available pager (if `Pry.config.pager` is enabled). If you want to send text through in chunks as you generate it, use `open` to get a writable object instead. @param [String] text A piece of text to run through a pager. @param [IO] output (`$stdout`) An object to send output to.

# File lib/pry/pager.rb, line 22
def page(text)
  open do |pager|
    pager << text
  end
end

Private Instance Methods

best_available() click to toggle source

Return an instance of the “best” available pager class – `SystemPager` if possible, `SimplePager` if `SystemPager` isn't available, and `NullPager` if the user has disabled paging. All pagers accept output with `#puts`, `#print`, `#write`, and `#<<`. You must call `#close` when you're done writing output to a pager, and you must rescue `Pry::Pager::StopPaging`. These requirements can be avoided by using `.open` instead. @param [#<<] output ($stdout) An object to send output to.

# File lib/pry/pager.rb, line 52
def best_available
  if !_pry_.config.pager
    NullPager.new(_pry_.output)
  elsif !SystemPager.available? || Pry::Helpers::BaseHelpers.jruby?
    SimplePager.new(_pry_.output)
  else
    SystemPager.new(_pry_.output)
  end
end
enabled?() click to toggle source
# File lib/pry/pager.rb, line 41
def enabled?; !!@enabled; end
output() click to toggle source
# File lib/pry/pager.rb, line 43
def output; @output; end