Class: Pry::Pager

Inherits:
Object show all
Defined in:
lib/pry/pager.rb

Overview

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.

Defined Under Namespace

Classes: NullPager, PageTracker, SimplePager, StopPaging, SystemPager

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(_pry_) ⇒ Pager

Returns a new instance of Pager



12
13
14
# File 'lib/pry/pager.rb', line 12

def initialize(_pry_)
  @_pry_ = _pry_
end

Instance Attribute Details

#_pry_Object (readonly)

Returns the value of attribute pry



10
11
12
# File 'lib/pry/pager.rb', line 10

def _pry_
  @_pry_
end

Instance Method Details

#openObject

Yields a pager object (`NullPager`, `SimplePager`, or `SystemPager`). All pagers accept output with `#puts`, `#print`, `#write`, and `#<<`.

Parameters:

  • output (IO)

    (`$stdout`) An object to send output to.



31
32
33
34
35
36
37
# File 'lib/pry/pager.rb', line 31

def open
  pager = best_available
  yield pager
rescue StopPaging
ensure
  pager.close if pager
end

#page(text) ⇒ Object

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.

Parameters:

  • text (String)

    A piece of text to run through a pager.

  • output (IO)

    (`$stdout`) An object to send output to.



22
23
24
25
26
# File 'lib/pry/pager.rb', line 22

def page(text)
  open do |pager|
    pager << text
  end
end