class HighLine::Paginator
Take the task of paginating some piece of text given a HighLine context
def continue_paging?
type "q" to cancel the paging process.
Ask user if they wish to continue paging output. Allows them to
def continue_paging? command = highline.new_scope.ask( "-- press enter/return to continue or q to stop -- " ) { |q| q.character = true } command !~ /\A[qQ]\Z/ # Only continue paging if Q was not hit. end
def initialize(highline)
-
highline
(HighLine
) -- context
def initialize(highline) @highline = highline end
def page_print(text)
-
(String)
- last line if paging is aborted
Parameters:
-
text
(String
) -- text to be paginated
def page_print(text) return text unless highline.page_at lines = text.lines.to_a while lines.size > highline.page_at highline.puts lines.slice!(0...highline.page_at).join highline.puts # Return last line if user wants to abort paging return "...\n#{lines.last}" unless continue_paging? end lines.join end