Class: GemMaintainer::Prompt
- Inherits:
-
Object
- Object
- GemMaintainer::Prompt
- Defined in:
- lib/gem_maintainer/prompt.rb
Overview
Drives the interactive per-gem loop.
Constant Summary collapse
- DIVIDER =
("━" * 50).freeze
Instance Method Summary collapse
-
#initialize(session, pastel, inline_changelog: false) ⇒ Prompt
constructor
A new instance of Prompt.
- #run ⇒ Object
Constructor Details
#initialize(session, pastel, inline_changelog: false) ⇒ Prompt
Returns a new instance of Prompt.
10 11 12 13 14 15 16 17 |
# File 'lib/gem_maintainer/prompt.rb', line 10 def initialize(session, pastel, inline_changelog: false) @session = session @pastel = pastel @inline_changelog = inline_changelog @tty = TTY::Prompt.new(interrupt: :exit) @fetcher = ChangelogFetcher.new @renderer = ChangelogRenderer.new end |
Instance Method Details
#run ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/gem_maintainer/prompt.rb', line 19 def run gems = @session.remaining total = @session.candidates.size offset = total - gems.size gems.each_with_index do |gem, idx| display_gem(gem, offset + idx + 1, total) choice = @tty.select("", choices, cycle: true, per_page: 3, show_help: :never) case choice when :approve @session.approve(gem) puts @pastel.green(" Queued for upgrade.") when :skip @session.skip(gem) puts @pastel.yellow(" Skipped.") when :quit puts @pastel.cyan("\nSession saved. Run with --resume to continue.") break end puts end end |