class GitRecent::BranchChooser

Attributes

choices[R]
input_stream[R]
output_stream[R]

Public Class Methods

new(choices, input_stream=$stdin, output_stream=$stdout) click to toggle source
# File lib/git_recent/branch_chooser.rb, line 9
def initialize(choices, input_stream=$stdin, output_stream=$stdout)
  @choices = choices
  @input_stream = input_stream
  @output_stream = output_stream
end

Public Instance Methods

request_choice() click to toggle source
# File lib/git_recent/branch_chooser.rb, line 15
def request_choice
  display_choices

  output_stream.print 'Please select a branch: '
  input = input_stream.gets.strip
  choice_index = input.to_i - 1

  return choices.fetch(choice_index) if valid_choice?(choice_index)
  nil
end

Private Instance Methods

display_choices() click to toggle source
# File lib/git_recent/branch_chooser.rb, line 28
def display_choices
  choices.each_with_index do |branch, i|
    output_stream.puts "[#{i+1}] #{branch}"
  end
end
valid_choice?(choice_index) click to toggle source
# File lib/git_recent/branch_chooser.rb, line 34
def valid_choice?(choice_index)
  (0..choices.length-1).cover? choice_index
end