PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
| Dir : /opt/puppetlabs/puppet/lib/ruby/vendor_gems/gems/highline-2.1.0/lib/highline/ |
| Server: Linux server1.ngambekcore.com 4.18.0-553.51.1.el8_10.x86_64 #1 SMP Wed Apr 30 04:00:07 EDT 2025 x86_64 IP: 159.198.77.92 |
| Dir : //opt/puppetlabs/puppet/lib/ruby/vendor_gems/gems/highline-2.1.0/lib/highline/paginator.rb |
# coding: utf-8
class HighLine
# Take the task of paginating some piece of text given a HighLine context
class Paginator
# @return [HighLine] HighLine context
attr_reader :highline
# Returns a HighLine::Paginator instance where you can
# call {#page_print} on it.
# @param highline [HighLine] context
# @example
# HighLine::Paginator.new(highline).page_print(statement)
def initialize(highline)
@highline = highline
end
#
# Page print a series of at most _page_at_ lines for _output_. After each
# page is printed, HighLine will pause until the user presses enter/return
# then display the next page of data.
#
# Note that the final page of _output_ is *not* printed, but returned
# instead. This is to support any special handling for the final sequence.
#
# @param text [String] text to be paginated
# @return [String] last line if paging is aborted
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
#
# Ask user if they wish to continue paging output. Allows them to
# type "q" to cancel the paging process.
#
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
end
end