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
Public Class Methods
# File lib/pry/pager.rb, line 12 def initialize(_pry_) @_pry_ = _pry_ end
Public Instance Methods
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
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
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
# File lib/pry/pager.rb, line 41 def enabled?; !!@enabled; end
# File lib/pry/pager.rb, line 43 def output; @output; end