Sha256: 81b36f179d0d64f81903c9d6f1368f257bbcd4b85e0ac74bc0845163f8db1cef

Contents?: true

Size: 1.44 KB

Versions: 2

Compression:

Stored size: 1.44 KB

Contents

require 'rubygems/command_manager'
require 'rubygems/installer'
require 'rubygems/version'
require 'gem-wrappers'

class WrappersCommand < Gem::Command
  def initialize
    super 'regenerate_binstubs', 'Re run generation of environment wrappers for gems.'
  end

  def arguments # :nodoc:
    "regenerate        regenerate environment wrappers for current Gem.home"
  end

  def usage # :nodoc:
    "#{program_name} [regenerate]"
  end

  def defaults_str # :nodoc:
    ""
  end

  def description # :nodoc:
    <<-DOC
Show (default) or regenerate environment wrappers for current 'GEM_HOME'.
DOC
  end

  def execute
    subcommand = get_one_optional_argument || ''
    case subcommand
    when ''
      execute_show
    when 'regenerate'
      execute_regenerate
    else
      execute_unknown subcommand
    end
  end

  def execute_show
    $stdout.puts description
    $stdout.puts "   Wrappers path: #{GemWrappers.wrappers_path}"
    $stdout.puts "Environment file: #{GemWrappers.environment_file}"
  end

  def execute_unknown(subcommand)
    $stderr.puts "Unknown wrapper subcommand: #{subcommand}"
    $stdout.puts description
    false
  end

  def execute_regenerate
    GemWrappers.install(executables)
  end

private

  def executables
    @executables ||= installed_gems.map(&:executables).inject(&:+)
  end

  def installed_gems
    if Gem::VERSION > '1.8' then
      Gem::Specification.to_a
    else
      Gem.source_index.map{|name,spec| spec}
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
gem-wrappers-0.9.1 lib/gem-wrappers/command.rb
gem-wrappers-0.9.0 lib/gem-wrappers/command.rb