Class: Gem::Commands::OpenCommand (Ruby 2.3.4)

In Files

  • rubygems/commands/open_command.rb

Class/Module Index [+]

Quicksearch

Gem::Commands::OpenCommand

Public Class Methods

new()
 
               # File rubygems/commands/open_command.rb, line 11
def initialize
  super 'open', 'Open gem sources in editor'

  add_option('-e', '--editor EDITOR', String,
             "Opens gem sources in EDITOR") do |editor, options|
    options[:editor] = editor || get_env_editor
  end
end
            

Public Instance Methods

execute()
 
               # File rubygems/commands/open_command.rb, line 48
def execute
  @version = options[:version] || Gem::Requirement.default
  @editor  = options[:editor] || get_env_editor

  found = open_gem(get_one_gem_name)

  terminate_interaction 1 unless found
end
            
get_env_editor()
 
               # File rubygems/commands/open_command.rb, line 41
def get_env_editor
  ENV['GEM_EDITOR'] ||
    ENV['VISUAL'] ||
    ENV['EDITOR'] ||
    'vi'
end
            
open_editor(path)
 
               # File rubygems/commands/open_command.rb, line 64
def open_editor path
  Dir.chdir(path) do
    system(*@editor.split(/\s+/) + [path])
  end
end
            
open_gem(name)
 
               # File rubygems/commands/open_command.rb, line 57
def open_gem name
  spec = spec_for name
  return false unless spec

  open_editor(spec.full_gem_path)
end
            
spec_for(name)
 
               # File rubygems/commands/open_command.rb, line 70
def spec_for name
  spec = Gem::Specification.find_all_by_name(name, @version).last

  return spec if spec

  say "Unable to find gem '#{name}'"
end