Fix up Rubinius specific library specs.
[rbx.git] / lib / rubygems / version_option.rb
blob1374018913d23963f177bc024d3287a4b41b76dd
1 #--
2 # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
3 # All rights reserved.
4 # See LICENSE.txt for permissions.
5 #++
7 require 'rubygems'
9 # Mixin methods for --version and --platform Gem::Command options.
10 module Gem::VersionOption
12   # Add the --platform option to the option parser.
13   def add_platform_option(task = command, *wrap)
14     OptionParser.accept Gem::Platform do |value|
15       if value == Gem::Platform::RUBY then
16         value
17       else
18         Gem::Platform.new value
19       end
20     end
22     add_option('--platform PLATFORM', Gem::Platform,
23                "Specify the platform of gem to #{task}", *wrap) do
24                  |value, options|
25       unless options[:added_platform] then
26         Gem.platforms = [Gem::Platform::RUBY]
27         options[:added_platform] = true
28       end
30       Gem.platforms << value unless Gem.platforms.include? value
31     end
32   end
34   # Add the --version option to the option parser.
35   def add_version_option(task = command, *wrap)
36     OptionParser.accept Gem::Requirement do |value|
37       Gem::Requirement.new value
38     end
40     add_option('-v', '--version VERSION', Gem::Requirement,
41                "Specify version of gem to #{task}", *wrap) do
42                  |value, options|
43       options[:version] = value
44     end
45   end
47 end