Sha256: 883c5e2bbd652f8a6dda2094437c09834ebb8a2b23352f3139c947a915d1de88

Contents?: true

Size: 1 KB

Versions: 2

Compression:

Stored size: 1 KB

Contents

require "grub/options"

module Grub
  class CLI
    def run(args)
      options = Options.new.parse!(args)
      if args.empty?
        run_for_gemfile(options)
      else
        run_for_gem(args.pop, options)
      end
    end

    def run_for_gemfile(options = {})
      Bundler.configure
      gemfile = Gemfile.new(Bundler.default_gemfile, options)
      gemfile.parse
      unless gemfile.gem_lines.empty?
        SpecFinder.find_specs_for(gemfile.gem_lines, &self.method(:print_progress))
        gemfile.write_comments
      end
    end

    def run_for_gem(gem_name, options = {})
      gem_line = GemLine.new(name: gem_name, options: options)
      SpecFinder.find_specs_for(gem_line, &self.method(:print_progress))

      info = gem_line.info
      info = "No information to show" if info.strip.empty?
      puts info
    end

    private

    def print_progress(processing, total)
      print "Fetching gem metadata..." if processing.zero?
      print "."
      print "\n" if processing == total
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
grub-0.0.8 lib/grub/cli.rb
grub-0.0.7 lib/grub/cli.rb