Class: GemMaintainer::Prompt

Inherits:
Object
  • Object
show all
Defined in:
lib/gem_maintainer/prompt.rb

Overview

Drives the interactive per-gem loop.

Constant Summary collapse

DIVIDER =
("" * 50).freeze

Instance Method Summary collapse

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

#runObject



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