Extended maintenance of Ruby 1.9.3 ended on February 23, 2015. Read more

In Files

  • rubygems/commands/generate_index_command.rb

Parent

Methods

Class/Module Index [+]

Quicksearch

Gem::Commands::GenerateIndexCommand

Generates a index files for use as a gem server.

See `gem help generate_index`

Public Class Methods

new() click to toggle source
 
               # File rubygems/commands/generate_index_command.rb, line 11
def initialize
  super 'generate_index',
        'Generates the index files for a gem server directory',
        :directory => '.', :build_legacy => true, :build_modern => true

  add_option '-d', '--directory=DIRNAME',
             'repository base dir containing gems subdir' do |dir, options|
    options[:directory] = File.expand_path dir
  end

  add_option '--[no-]legacy',
             'Generate Marshal.4.8' do |value, options|
    unless options[:build_modern] or value then
      raise OptionParser::InvalidOption, 'no indicies will be built'
    end

    options[:build_legacy] = value
  end

  add_option '--[no-]modern',
             'Generate indexes for RubyGems newer',
             'than 1.2.0' do |value, options|
    unless options[:build_legacy] or value then
      raise OptionParser::InvalidOption, 'no indicies will be built'
    end

    options[:build_modern] = value
  end

  add_option '--update',
             'Update modern indexes with gems added',
             'since the last update' do |value, options|
    options[:update] = value
  end

  add_option :RSS, '--rss-gems-host=GEM_HOST',
             'Host name where gems are served from,',
             'used for GUID and enclosure values' do |value, options|
    options[:rss_gems_host] = value
  end

  add_option :RSS, '--rss-host=HOST',
             'Host name for more gems information,',
             'used for RSS feed link' do |value, options|
    options[:rss_host] = value
  end

  add_option :RSS, '--rss-title=TITLE',
             'Set title for RSS feed' do |value, options|
    options[:rss_title] = value
  end
end
            

Public Instance Methods

execute() click to toggle source
 
               # File rubygems/commands/generate_index_command.rb, line 101
def execute
  if options[:update] and
     (options[:rss_host] or options[:rss_gems_host]) then
    alert_error '--update not compatible with RSS generation'
    terminate_interaction 1
  end

  if not File.exist?(options[:directory]) or
     not File.directory?(options[:directory]) then
    alert_error "unknown directory name #{directory}."
    terminate_interaction 1
  else
    indexer = Gem::Indexer.new options.delete(:directory), options

    if options[:update] then
      indexer.update_index
    else
      indexer.generate_index
    end
  end
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.