In Files

  • rubygems/commands/open_command.rb

Class/Module Index [+]

Quicksearch

Gem::Commands::OpenCommand

Public Class Methods

new() click to toggle source
 
               # File rubygems/commands/open_command.rb, line 10
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() click to toggle source
 
               # File rubygems/commands/open_command.rb, line 47
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() click to toggle source
 
               # File rubygems/commands/open_command.rb, line 40
def get_env_editor
  ENV['GEM_EDITOR'] ||
    ENV['VISUAL'] ||
    ENV['EDITOR'] ||
    'vi'
end
            
open_editor(path) click to toggle source
 
               # File rubygems/commands/open_command.rb, line 63
def open_editor path
  system(*@editor.split(/\s+/) + [path])
end
            
open_gem(name) click to toggle source
 
               # File rubygems/commands/open_command.rb, line 56
def open_gem name
  spec = spec_for name
  return false unless spec

  open_editor(spec.full_gem_path)
end
            
spec_for(name) click to toggle source
 
               # File rubygems/commands/open_command.rb, line 67
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
            

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.