Module: Gem::VersionOption

Overview

Mixin methods for –version and –platform Gem::Command options.

Instance Method Summary collapse

Instance Method Details

#add_platform_option(task = command, *wrap) ⇒ Object

Add the –platform option to the option parser.



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/rubygems/version_option.rb', line 18

def add_platform_option(task = command, *wrap)
  OptionParser.accept Gem::Platform do |value|
    if value == Gem::Platform::RUBY
      value
    else
      Gem::Platform.new value
    end
  end

  add_option('--platform PLATFORM', Gem::Platform,
             "Specify the platform of gem to #{task}", *wrap) do
               |value, options|
    unless options[:added_platform]
      Gem.platforms = [Gem::Platform::RUBY]
      options[:added_platform] = true
    end

    Gem.platforms << value unless Gem.platforms.include? value
  end
end

#add_prerelease_option(*wrap) ⇒ Object

Add the –prerelease option to the option parser.



42
43
44
45
46
47
48
# File 'lib/rubygems/version_option.rb', line 42

def add_prerelease_option(*wrap)
  add_option("--[no-]prerelease",
             "Allow prerelease versions of a gem", *wrap) do |value, options|
    options[:prerelease] = value
    options[:explicit_prerelease] = true
  end
end

#add_version_option(task = command, *wrap) ⇒ Object

Add the –version option to the option parser.



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/rubygems/version_option.rb', line 53

def add_version_option(task = command, *wrap)
  OptionParser.accept Gem::Requirement do |value|
    Gem::Requirement.new(*value.split(/\s*,\s*/))
  end

  add_option('-v', '--version VERSION', Gem::Requirement,
             "Specify version of gem to #{task}", *wrap) do
               |value, options|
    # Allow handling for multiple --version operators
    if options[:version] && !options[:version].none?
      options[:version].concat([value])
    else
      options[:version] = value
    end

    explicit_prerelease_set = !options[:explicit_prerelease].nil?
    options[:explicit_prerelease] = false unless explicit_prerelease_set

    options[:prerelease] = value.prerelease? unless
      options[:explicit_prerelease]
  end
end