rubygems-update 1.3.2 → 1.3.3

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rubygems-update might be problematic. Click here for more details.

data.tar.gz.sig CHANGED
Binary file
data/ChangeLog CHANGED
@@ -1,5 +1,66 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
+ 2009-05-04 Eric Hodel <drbrain@segment7.net>
4
+
5
+ * lib/rubygems/rubygems_version.rb: 1.3.3.
6
+ * doc/release_notes/rel_1_3_3.rdoc: RubyGems 1.3.3 release notes.
7
+ * lib/rubygems/specification.rb: Default has_rdoc to true, ignore
8
+ its value.
9
+ * lib/rubygems/doc_manager.rb: Always generate RDoc regardless of
10
+ #has_rdoc?
11
+ * lib/rubygems.rb: Raise Gem::LoadError if Kernel#gem fails due to
12
+ previously-loaded gem. Bug reported by Alf Mikula.
13
+
14
+ 2009-05-02 Eric Hodel <drbrain@segment7.net>
15
+
16
+ * lib/rubygems/commands/server_command.rb: Allow port names with
17
+ --port.
18
+ * lib/rubygems/requirement.rb: Match prerelease versions and ~>
19
+ correctly. Patch #25759 by Yossef Mendelssohn.
20
+
21
+ 2009-05-01 Eric Hodel <drbrain@segment7.net>
22
+
23
+ * lib/rubygems/specification.rb: Check bindir for executables, not
24
+ root. Bug reported by David Chelimsky. Remove Time.today, no way
25
+ to override it before RubyGems loads. Bug #25564 by Emanuele
26
+ Vicentini. Raise Gem::Exception for #installation_path when not
27
+ installed. Bug #25741 by Daniel Berger. Don't error in #validate
28
+ when homepage is nil. Bug #25677 by Mike Burrows.
29
+ * lib/rubygems/commands/cleanup_command.rb: Clean up --user-install
30
+ gems. Bug #25516 by Brett Eisenberg.
31
+ * lib/rubygems/uninstaller.rb: Uninstall executables from the correct
32
+ directory. Bug #25555 by Brett Eisenberg.
33
+ * lib/rubygems/server.rb: Add search that jumps to RDoc. Patch
34
+ #22959 by Vladimir Dobriakov.
35
+
36
+ 2009-05-01 James Tucker <jftucker@gmail.com>
37
+
38
+ * lib/rubygems.rb: Gem.bin_path now escapes paths with spaces.
39
+
40
+ 2009-04-30 Daniel Berger <djberg96@gmail.com>
41
+
42
+ * lib/rubygems/commands/install_command.rb: Replaced deprecated
43
+ Gem::SourceIndex method 'search' with 'find_name' when using
44
+ the -t option. Fixes bug # 25632 by Daniel Berger.
45
+
46
+ 2009-04-30 James Tucker <jftucker@gmail.com>
47
+
48
+ * lib/rubygems/ext/rake_builder.rb: Use explicit ruby command loading
49
+ rubygems to invoke rake.
50
+
51
+ 2009-04-24 Eric Hodel <drbrain@segment7.net>
52
+
53
+ * lib/rubygems/commands/specification_command.rb: Added requesting
54
+ single fields from a spec.
55
+
56
+ 2009-04-23 James Tucker <jftucker@gmail.com>
57
+
58
+ * lib/rubygems/ext/configure_builder.rb: Support Gem::Command.build_args.
59
+
60
+ 2009-04-15 Eric Hodel <drbrain@segment7.net>
61
+
62
+ * lib/rubygems/rubygems_version.rb: 1.3.2.
63
+
3
64
  2009-04-14 Eric Hodel <drbrain@segment7.net>
4
65
 
5
66
  * lib/rubygems/specification.rb: Complain when summary and
@@ -37,6 +37,7 @@ doc/release_notes/rel_1_2_0.rdoc
37
37
  doc/release_notes/rel_1_3_0.rdoc
38
38
  doc/release_notes/rel_1_3_1.rdoc
39
39
  doc/release_notes/rel_1_3_2.rdoc
40
+ doc/release_notes/rel_1_3_3.rdoc
40
41
  lib/gauntlet_rubygems.rb
41
42
  lib/rbconfig/datadir.rb
42
43
  lib/rubygems.rb
@@ -0,0 +1,95 @@
1
+ = Announce: RubyGems Release 1.3.3
2
+
3
+ NOTE: RubyGems 1.1 and 1.2 have problems upgrading when there is no
4
+ rubygems-update installed. You will need to follow the second set of update
5
+ instructions if you see "Nothing to update".
6
+
7
+ Release 1.3.3 fixes some bugs and adds some features.
8
+
9
+ New Features:
10
+
11
+ * `gem server` allows port names (from /etc/services) with --port.
12
+ * `gem server` now has search that jumps to RDoc. Patch #22959 by Vladimir
13
+ Dobriakov.
14
+ * `gem spec` can retrieve single fields from a spec (like `gem spec rake
15
+ authors`).
16
+ * Gem::Specification#has_rdoc= is deprecated and ignored (defaults to true)
17
+ * RDoc is now generated regardless of Gem::Specification#has_rdoc?
18
+
19
+ Bug Fixes:
20
+
21
+ * `gem clean` now cleans up --user-install gems. Bug #25516 by Brett
22
+ Eisenberg.
23
+ * Gem.bin_path now escapes paths with spaces.
24
+ * Rake extension builder uses explicit correctly loads rubygems when invoking
25
+ rake.
26
+ * Prerelease versions now match "~>" correctly. Patch #25759 by Yossef
27
+ Mendelssohn.
28
+ * Check bindir for executables, not root when validating. Bug reported by
29
+ David Chelimsky.
30
+ * Remove Time.today, no way to override it before RubyGems loads. Bug #25564
31
+ by Emanuele Vicentini
32
+ * Raise Gem::Exception for #installation_path when not installed. Bug #25741
33
+ by Daniel Berger.
34
+ * Don't raise in Gem::Specification#validate when homepage is nil. Bug #25677
35
+ by Mike Burrows.
36
+ * Uninstall executables from the correct directory. Bug #25555 by Brett
37
+ Eisenberg.
38
+ * Raise Gem::LoadError if Kernel#gem fails due to previously-loaded gem. Bug
39
+ reported by Alf Mikula.
40
+
41
+ Deprecation Notices:
42
+
43
+ * Gem::manage_gems has been removed.
44
+ * Time::today has been removed early. There was no way to make it warn and be
45
+ easy to override with user code.
46
+
47
+ For a full list of changes to RubyGems and the contributor for each change, see
48
+ the ChangeLog file.
49
+
50
+ == How can I get RubyGems?
51
+
52
+ NOTE: If you have installed RubyGems using a package system you may want to
53
+ install a new RubyGems through the same packaging system.
54
+
55
+ If you have a recent version of RubyGems (0.8.5 or later), then all
56
+ you need to do is:
57
+
58
+ $ gem update --system (you might need to be admin/root)
59
+
60
+ NOTE: RubyGems 1.1 and 1.2 have problems upgrading when there is no
61
+ rubygems-update installed. You will need to follow the second set of update
62
+ instructions if you see "Nothing to update".
63
+
64
+ NOTE: You may have to run the command twice if you have any previosly
65
+ installed rubygems-update gems.
66
+
67
+ If you have an older version of RubyGems installed, then you can still
68
+ do it in two steps:
69
+
70
+ $ gem install rubygems-update (again, might need to be admin/root)
71
+ $ update_rubygems (... here too)
72
+
73
+ If you don't have any gems install, there is still the pre-gem
74
+ approach to getting software ... doing it manually:
75
+
76
+ 1. DOWNLOAD FROM: http://rubyforge.org/frs/?group_id=126
77
+ 2. UNPACK INTO A DIRECTORY AND CD THERE
78
+ 3. INSTALL WITH: ruby setup.rb (you may need admin/root privilege)
79
+
80
+ == To File Bugs
81
+
82
+ The RubyGems bug tracker can be found on RubyForge at:
83
+ http://rubyforge.org/tracker/?func=add&group_id=126&atid=575
84
+
85
+ When filing a bug, `gem env` output will be helpful in diagnosing the issue.
86
+
87
+ If you find a bug where RubyGems crashes, please provide debug output. You can
88
+ do that with `gem --debug the_command`.
89
+
90
+ == Thanks
91
+
92
+ Keep those gems coming!
93
+
94
+ -- The RubyGems team
95
+
@@ -11,9 +11,26 @@ require 'thread'
11
11
  require 'etc'
12
12
 
13
13
  module Gem
14
+
15
+ ##
16
+ # Raised when RubyGems is unable to load or activate a gem. Contains the
17
+ # name and version requirements of the gem that either conflicts with
18
+ # already activated gems or that RubyGems is otherwise unable to activate.
19
+
14
20
  class LoadError < ::LoadError
15
- attr_accessor :name, :version_requirement
21
+
22
+ ##
23
+ # Name of gem
24
+
25
+ attr_accessor :name
26
+
27
+ ##
28
+ # Version requirement of gem
29
+
30
+ attr_accessor :version_requirement
31
+
16
32
  end
33
+
17
34
  end
18
35
 
19
36
  module Kernel
@@ -249,13 +266,17 @@ module Gem
249
266
 
250
267
  unless matches.any? { |spec| spec.version == existing_spec.version } then
251
268
  sources_message = sources.map { |spec| spec.full_name }
252
- stack_message = @loaded_stacks[gem.name].map { |spec| spec.full_name }
269
+ stack_message = @loaded_stacks[gem.name].map { |spec| spec.full_name }
253
270
 
254
271
  msg = "can't activate #{gem} for #{sources_message.inspect}, "
255
272
  msg << "already activated #{existing_spec.full_name} for "
256
273
  msg << "#{stack_message.inspect}"
257
274
 
258
- raise Gem::Exception, msg
275
+ e = Gem::LoadError.new msg
276
+ e.name = gem.name
277
+ e.version_requirement = gem.version_requirements
278
+
279
+ raise e
259
280
  end
260
281
 
261
282
  return false
@@ -362,7 +383,7 @@ module Gem
362
383
  raise Gem::Exception, msg
363
384
  end
364
385
 
365
- File.join spec.full_gem_path, spec.bindir, exec_name
386
+ File.join(spec.full_gem_path, spec.bindir, exec_name).sub(/.*\s.*/m, '"\&"')
366
387
  end
367
388
 
368
389
  ##
@@ -30,14 +30,14 @@ require 'rubygems/user_interaction'
30
30
  class Gem::CommandManager
31
31
 
32
32
  include Gem::UserInteraction
33
-
33
+
34
34
  ##
35
35
  # Return the authoritative instance of the command manager.
36
36
 
37
37
  def self.instance
38
38
  @command_manager ||= new
39
39
  end
40
-
40
+
41
41
  ##
42
42
  # Register all the subcommands supported by the gem command.
43
43
 
@@ -71,14 +71,14 @@ class Gem::CommandManager
71
71
  register_command :update
72
72
  register_command :which
73
73
  end
74
-
74
+
75
75
  ##
76
76
  # Register the command object.
77
77
 
78
78
  def register_command(command_obj)
79
79
  @commands[command_obj] = false
80
80
  end
81
-
81
+
82
82
  ##
83
83
  # Return the registered command from the command name.
84
84
 
@@ -87,14 +87,14 @@ class Gem::CommandManager
87
87
  return nil if @commands[command_name].nil?
88
88
  @commands[command_name] ||= load_and_instantiate(command_name)
89
89
  end
90
-
90
+
91
91
  ##
92
92
  # Return a sorted list of all command names (as strings).
93
93
 
94
94
  def command_names
95
95
  @commands.keys.collect {|key| key.to_s}.sort
96
96
  end
97
-
97
+
98
98
  ##
99
99
  # Run the config specified by +args+.
100
100
 
@@ -115,7 +115,7 @@ class Gem::CommandManager
115
115
  if args.size == 0
116
116
  say Gem::Command::HELP
117
117
  terminate_interaction(1)
118
- end
118
+ end
119
119
  case args[0]
120
120
  when '-h', '--help'
121
121
  say Gem::Command::HELP
@@ -149,7 +149,7 @@ class Gem::CommandManager
149
149
 
150
150
  command_names.select { |n| cmd_name == n[0, len] }
151
151
  end
152
-
152
+
153
153
  private
154
154
 
155
155
  def load_and_instantiate(command_name)
@@ -77,15 +77,21 @@ installed elsewhere in GEM_PATH the cleanup command won't touch it.
77
77
  say "Attempting to uninstall #{spec.full_name}"
78
78
 
79
79
  options[:args] = [spec.name]
80
- options[:version] = "= #{spec.version}"
81
- options[:executables] = false
82
80
 
83
- uninstaller = Gem::Uninstaller.new spec.name, options
81
+ uninstall_options = {
82
+ :executables => false,
83
+ :version => "= #{spec.version}",
84
+ }
85
+
86
+ if Gem.user_dir == spec.installation_path then
87
+ uninstall_options[:install_dir] = spec.installation_path
88
+ end
89
+
90
+ uninstaller = Gem::Uninstaller.new spec.name, uninstall_options
84
91
 
85
92
  begin
86
93
  uninstaller.uninstall
87
- rescue Gem::DependencyRemovalException,
88
- Gem::InstallError,
94
+ rescue Gem::DependencyRemovalException, Gem::InstallError,
89
95
  Gem::GemNotInHomeException => e
90
96
  say "Unable to uninstall #{spec.full_name}:"
91
97
  say "\t#{e.class}: #{e.message}"
@@ -115,7 +115,7 @@ version is also installed.
115
115
 
116
116
  if options[:test] then
117
117
  installed_gems.each do |spec|
118
- gem_spec = Gem::SourceIndex.from_installed_gems.search(spec.name, spec.version.version).first
118
+ gem_spec = Gem::SourceIndex.from_installed_gems.find_name(spec.name, spec.version.version).first
119
119
  result = Gem::Validator.new.unit_test(gem_spec)
120
120
  if result and not result.passed?
121
121
  unless ask_yes_no("...keep Gem?", true)
@@ -7,7 +7,23 @@ class Gem::Commands::ServerCommand < Gem::Command
7
7
  super 'server', 'Documentation and gem repository HTTP server',
8
8
  :port => 8808, :gemdir => Gem.dir, :daemon => false
9
9
 
10
- add_option '-p', '--port=PORT', Integer,
10
+ OptionParser.accept :Port do |port|
11
+ if port =~ /\A\d+\z/ then
12
+ port = Integer port
13
+ raise OptionParser::InvalidArgument, "#{port}: not a port number" if
14
+ port > 65535
15
+
16
+ port
17
+ else
18
+ begin
19
+ Socket.getservbyname port
20
+ rescue SocketError => e
21
+ raise OptionParser::InvalidArgument, "#{port}: no such named service"
22
+ end
23
+ end
24
+ end
25
+
26
+ add_option '-p', '--port=PORT', :Port,
11
27
  'port to listen on' do |port, options|
12
28
  options[:port] = port
13
29
  end
@@ -37,6 +53,12 @@ for gem installation.
37
53
 
38
54
  To install gems from a running server, use `gem install GEMNAME --source
39
55
  http://gem_server_host:8808`
56
+
57
+ You can set up a shortcut to gem server documentation using the URL:
58
+
59
+ http://localhost:8808/rdoc?q=%s - Firefox
60
+ http://localhost:8808/rdoc?q=* - LaunchBar
61
+
40
62
  EOF
41
63
  end
42
64
 
@@ -39,7 +39,10 @@ class Gem::Commands::SpecificationCommand < Gem::Command
39
39
  end
40
40
 
41
41
  def arguments # :nodoc:
42
- "GEMFILE name of gem to show the gemspec for"
42
+ <<-ARGS
43
+ GEMFILE name of gem to show the gemspec for
44
+ FIELD name of gemspec field to show
45
+ ARGS
43
46
  end
44
47
 
45
48
  def defaults_str # :nodoc:
@@ -47,14 +50,35 @@ class Gem::Commands::SpecificationCommand < Gem::Command
47
50
  end
48
51
 
49
52
  def usage # :nodoc:
50
- "#{program_name} [GEMFILE]"
53
+ "#{program_name} [GEMFILE] [FIELD]"
51
54
  end
52
55
 
53
56
  def execute
54
57
  specs = []
55
- gem = get_one_gem_name
58
+ gem = options[:args].shift
59
+
60
+ unless gem then
61
+ raise Gem::CommandLineError,
62
+ "Please specify a gem name or file on the command line"
63
+ end
64
+
56
65
  dep = Gem::Dependency.new gem, options[:version]
57
66
 
67
+ field = get_one_optional_argument
68
+
69
+ if field then
70
+ field = field.intern
71
+
72
+ if options[:format] == :ruby then
73
+ raise Gem::CommandLineError, "--ruby and FIELD are mutually exclusive"
74
+ end
75
+
76
+ unless Gem::Specification.attribute_names.include? field then
77
+ raise Gem::CommandLineError,
78
+ "no field %p on Gem::Specification" % field.to_s
79
+ end
80
+ end
81
+
58
82
  if local? then
59
83
  if File.exist? gem then
60
84
  specs << Gem::Format.from_file_by_path(gem).spec rescue nil
@@ -77,11 +101,14 @@ class Gem::Commands::SpecificationCommand < Gem::Command
77
101
  end
78
102
 
79
103
  output = lambda do |s|
104
+ s = s.send field if field
105
+
80
106
  say case options[:format]
81
107
  when :ruby then s.to_ruby
82
108
  when :marshal then Marshal.dump s
83
109
  else s.to_yaml
84
110
  end
111
+
85
112
  say "\n"
86
113
  end
87
114
 
@@ -105,10 +105,8 @@ class Gem::DocManager
105
105
  # RI docs generation to fail if run after RDoc).
106
106
 
107
107
  def generate_ri
108
- if @spec.has_rdoc then
109
- setup_rdoc
110
- install_ri # RDoc bug, ri goes first
111
- end
108
+ setup_rdoc
109
+ install_ri # RDoc bug, ri goes first
112
110
 
113
111
  FileUtils.mkdir_p @doc_dir unless File.exist?(@doc_dir)
114
112
  end
@@ -121,10 +119,8 @@ class Gem::DocManager
121
119
  # RI docs generation to fail if run after RDoc).
122
120
 
123
121
  def generate_rdoc
124
- if @spec.has_rdoc then
125
- setup_rdoc
126
- install_rdoc
127
- end
122
+ setup_rdoc
123
+ install_rdoc
128
124
 
129
125
  FileUtils.mkdir_p @doc_dir unless File.exist?(@doc_dir)
130
126
  end