Sha256: ffb6ab2f2476cd4d4cd406d7a0e7200d37e8db967b8127d029510a3c7fe389ba
Contents?: true
Size: 1.06 KB
Versions: 2
Compression:
Stored size: 1.06 KB
Contents
# frozen_string_literal: true require "dry/monads" module Gemsmith module Gems # Picks a gem specification. class Picker include Dry::Monads[:result] def self.call(name, ...) = new(...).call name def initialize finder: Finder.new, kernel: Kernel warn "[DEPRECATION]: Picker is deprecated, use Spek gem instead." @finder = finder @kernel = kernel end def call name specifications = finder.call name case specifications.size when 1 then Success specifications.first when 2.. then Success choose(specifications) else Failure "Unknown gem or gem is not installed: #{name}." end end def choose specifications specifications.each.with_index 1 do |specification, index| kernel.puts "#{index}. #{specification.named_version}" end kernel.puts "\nPlease enter gem selection:" ARGV.clear specifications[kernel.gets.chomp.to_i - 1] end private attr_reader :finder, :kernel end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
gemsmith-16.2.0 | lib/gemsmith/gems/picker.rb |
gemsmith-16.1.0 | lib/gemsmith/gems/picker.rb |