Sha256: d67721c76e3d2a8fc4bf0a1cd0088719ff17484058c4a1bed4bcd1dd24d81800
Contents?: true
Size: 1.21 KB
Versions: 3
Compression:
Stored size: 1.21 KB
Contents
module Retest class Prompt include Observable def self.ask_which_test_to_use(path, files) new.ask_which_test_to_use(path, files) end def self.puts(*args) new.puts(*args) end attr_accessor :input, :output def initialize(input: nil, output: nil) @input = input || $stdin @output = output || $stdout end def ask_which_test_to_use(path, files) changed notify_observers(:question) options = options(files) output.puts(<<~QUESTION) We found few tests matching: #{path} #{list_options(options.keys)} Which file do you want to use? Enter the file number now: QUESTION output.print("> ") options.values[input.gets.chomp.to_i] end def puts(*args) output.puts(*args) end def read_output output.tap(&:rewind).read end private def options(files, blank_option: 'none') result = {} files.each { |file| result[file] = file } result[blank_option] = nil # blank option last result end def list_options(options) options .map .with_index { |file, index| "[#{index}] - #{file}" } .join("\n") end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
retest-1.13.2 | lib/retest/prompt.rb |
retest-1.13.1 | lib/retest/prompt.rb |
retest-1.13.0 | lib/retest/prompt.rb |