rubygems-update 1.8.9 → 1.8.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of rubygems-update might be problematic. Click here for more details.
- data.tar.gz.sig +0 -0
- data/History.txt +17 -0
- data/lib/rubygems.rb +10 -2
- data/lib/rubygems/commands/uninstall_command.rb +2 -0
- data/lib/rubygems/path_support.rb +7 -14
- data/lib/rubygems/requirement.rb +3 -0
- data/lib/rubygems/specification.rb +5 -5
- data/test/rubygems/test_gem.rb +7 -10
- data/test/rubygems/test_gem_commands_specification_command.rb +1 -1
- data/test/rubygems/test_gem_commands_uninstall_command.rb +13 -0
- data/test/rubygems/test_gem_gem_runner.rb +1 -1
- data/test/rubygems/test_gem_path_support.rb +30 -4
- data/test/rubygems/test_gem_specification.rb +119 -39
- metadata +6 -6
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/History.txt
CHANGED
@@ -1,5 +1,22 @@
|
|
1
1
|
# coding: UTF-8
|
2
2
|
|
3
|
+
=== 1.8.10 / 2011-08-25
|
4
|
+
|
5
|
+
RubyGems 1.8.10 contains a security fix that prevents malicious gems from
|
6
|
+
executing code when their specification is loaded. See
|
7
|
+
https://github.com/rubygems/rubygems/pull/165 for details.
|
8
|
+
|
9
|
+
* 5 bug fixes:
|
10
|
+
|
11
|
+
* RubyGems escapes strings in ruby-format specs using #dump instead of #to_s
|
12
|
+
and %q to prevent code injection. Issue #165 by Postmodern
|
13
|
+
* RubyGems attempt to activate the psych gem now to obtain bugfixes from
|
14
|
+
psych.
|
15
|
+
* Gem.dir has been restored to the front of Gem.path. Fixes remaining
|
16
|
+
problem with Issue #115
|
17
|
+
* Fixed Syck DefaultKey infecting ruby-format specifications.
|
18
|
+
* `gem uninstall a b` no longer stops if gem "a" is not installed.
|
19
|
+
|
3
20
|
=== 1.8.9 / 2011-08-23
|
4
21
|
|
5
22
|
* Bug fixes:
|
data/lib/rubygems.rb
CHANGED
@@ -118,7 +118,7 @@ require "rubygems/deprecate"
|
|
118
118
|
# -The RubyGems Team
|
119
119
|
|
120
120
|
module Gem
|
121
|
-
VERSION = '1.8.
|
121
|
+
VERSION = '1.8.10'
|
122
122
|
|
123
123
|
##
|
124
124
|
# Raised when RubyGems is unable to load or activate a gem. Contains the
|
@@ -644,7 +644,15 @@ module Gem
|
|
644
644
|
|
645
645
|
def self.load_yaml
|
646
646
|
begin
|
647
|
-
|
647
|
+
gem 'psych', '~> 1.2', '>= 1.2.1' unless ENV['TEST_SYCK']
|
648
|
+
rescue Gem::LoadError
|
649
|
+
# It's OK if the user does not have the psych gem installed. We will
|
650
|
+
# attempt to require the stdlib version
|
651
|
+
end
|
652
|
+
|
653
|
+
begin
|
654
|
+
# Try requiring the gem version *or* stdlib version of psych.
|
655
|
+
require 'psych' unless ENV['TEST_SYCK']
|
648
656
|
rescue ::LoadError
|
649
657
|
ensure
|
650
658
|
require 'yaml'
|
@@ -78,6 +78,8 @@ class Gem::Commands::UninstallCommand < Gem::Command
|
|
78
78
|
get_all_gem_names.each do |gem_name|
|
79
79
|
begin
|
80
80
|
Gem::Uninstaller.new(gem_name, options).uninstall
|
81
|
+
rescue Gem::InstallError => e
|
82
|
+
alert e.message
|
81
83
|
rescue Gem::GemNotInHomeException => e
|
82
84
|
spec = e.spec
|
83
85
|
alert("In order to remove #{spec.name}, please execute:\n" \
|
@@ -1,5 +1,4 @@
|
|
1
1
|
##
|
2
|
-
#
|
3
2
|
# Gem::PathSupport facilitates the GEM_HOME and GEM_PATH environment settings
|
4
3
|
# to the rest of RubyGems.
|
5
4
|
#
|
@@ -43,18 +42,16 @@ class Gem::PathSupport
|
|
43
42
|
# Set the Gem search path (as reported by Gem.path).
|
44
43
|
|
45
44
|
def path=(gpaths)
|
46
|
-
|
47
|
-
|
48
|
-
gem_path = []
|
45
|
+
gem_path = [@home]
|
49
46
|
|
50
47
|
# FIX: I can't tell wtf this is doing.
|
51
48
|
gpaths ||= (ENV['GEM_PATH'] || "").empty? ? nil : ENV["GEM_PATH"]
|
52
49
|
|
53
|
-
if gpaths
|
54
|
-
if gpaths.kind_of?(Array)
|
55
|
-
gem_path
|
50
|
+
if gpaths then
|
51
|
+
if gpaths.kind_of?(Array) then
|
52
|
+
gem_path.push(*gpaths)
|
56
53
|
else
|
57
|
-
gem_path
|
54
|
+
gem_path.push(*gpaths.split(File::PATH_SEPARATOR))
|
58
55
|
end
|
59
56
|
|
60
57
|
if File::ALT_SEPARATOR then
|
@@ -62,14 +59,10 @@ class Gem::PathSupport
|
|
62
59
|
this_path.gsub File::ALT_SEPARATOR, File::SEPARATOR
|
63
60
|
end
|
64
61
|
end
|
65
|
-
|
66
|
-
gem_path << @home
|
67
62
|
else
|
68
|
-
gem_path
|
63
|
+
gem_path.push(*Gem.default_path)
|
69
64
|
|
70
|
-
if defined?(APPLE_GEM_HOME)
|
71
|
-
gem_path << APPLE_GEM_HOME
|
72
|
-
end
|
65
|
+
gem_path << APPLE_GEM_HOME if defined?(APPLE_GEM_HOME)
|
73
66
|
end
|
74
67
|
|
75
68
|
@path = gem_path.uniq
|
data/lib/rubygems/requirement.rb
CHANGED
@@ -1459,7 +1459,7 @@ class Gem::Specification
|
|
1459
1459
|
# TODO: do we need these?? Kill it
|
1460
1460
|
glob = File.join(self.lib_dirs_glob, glob)
|
1461
1461
|
|
1462
|
-
Dir[glob].map { |f| f.untaint } # FIX our tests are
|
1462
|
+
Dir[glob].map { |f| f.untaint } # FIX our tests are broken, run w/ SAFE=1
|
1463
1463
|
end
|
1464
1464
|
|
1465
1465
|
##
|
@@ -1690,11 +1690,11 @@ class Gem::Specification
|
|
1690
1690
|
|
1691
1691
|
def ruby_code(obj)
|
1692
1692
|
case obj
|
1693
|
-
when String then
|
1693
|
+
when String then obj.dump
|
1694
1694
|
when Array then '[' + obj.map { |x| ruby_code x }.join(", ") + ']'
|
1695
|
-
when Gem::Version then obj.to_s.
|
1696
|
-
when Date then
|
1697
|
-
when Time then
|
1695
|
+
when Gem::Version then obj.to_s.dump
|
1696
|
+
when Date then obj.strftime('%Y-%m-%d').dump
|
1697
|
+
when Time then obj.strftime('%Y-%m-%d').dump
|
1698
1698
|
when Numeric then obj.inspect
|
1699
1699
|
when true, false, nil then obj.inspect
|
1700
1700
|
when Gem::Platform then "Gem::Platform.new(#{obj.to_a.inspect})"
|
data/test/rubygems/test_gem.rb
CHANGED
@@ -733,7 +733,7 @@ class TestGem < Gem::TestCase
|
|
733
733
|
|
734
734
|
Gem.instance_variable_set :@paths, nil
|
735
735
|
|
736
|
-
assert_equal [Gem.
|
736
|
+
assert_equal [Gem.dir, *Gem.default_path].uniq, Gem.path
|
737
737
|
ensure
|
738
738
|
Object.const_set :APPLE_GEM_HOME, orig_APPLE_GEM_HOME if orig_APPLE_GEM_HOME
|
739
739
|
end
|
@@ -772,11 +772,10 @@ class TestGem < Gem::TestCase
|
|
772
772
|
|
773
773
|
ENV['GEM_PATH'] = @additional.join(File::PATH_SEPARATOR)
|
774
774
|
|
775
|
-
assert_equal
|
775
|
+
assert_equal [Gem.dir, *@additional], Gem.path
|
776
776
|
|
777
777
|
assert_equal path_count + @additional.size, Gem.path.size,
|
778
778
|
"extra path components: #{Gem.path[2..-1].inspect}"
|
779
|
-
assert_equal Gem.dir, Gem.path.last
|
780
779
|
end
|
781
780
|
|
782
781
|
def test_self_path_duplicate
|
@@ -789,8 +788,7 @@ class TestGem < Gem::TestCase
|
|
789
788
|
|
790
789
|
assert_equal @gemhome, Gem.dir
|
791
790
|
|
792
|
-
|
793
|
-
assert_equal @additional + paths, Gem.path
|
791
|
+
assert_equal [Gem.dir, *@additional], Gem.path
|
794
792
|
end
|
795
793
|
|
796
794
|
def test_self_path_overlap
|
@@ -802,8 +800,7 @@ class TestGem < Gem::TestCase
|
|
802
800
|
|
803
801
|
assert_equal @gemhome, Gem.dir
|
804
802
|
|
805
|
-
|
806
|
-
assert_equal @additional + paths, Gem.path
|
803
|
+
assert_equal [Gem.dir, *@additional], Gem.path
|
807
804
|
end
|
808
805
|
|
809
806
|
def test_self_platforms
|
@@ -923,7 +920,7 @@ class TestGem < Gem::TestCase
|
|
923
920
|
ENV["GEM_HOME"] = @gemhome
|
924
921
|
Gem.paths = { "GEM_PATH" => path }
|
925
922
|
|
926
|
-
assert_equal [@userhome, other
|
923
|
+
assert_equal [@gemhome, @userhome, other], Gem.path
|
927
924
|
end
|
928
925
|
|
929
926
|
def test_self_paths_eq_nonexistent_home
|
@@ -936,7 +933,7 @@ class TestGem < Gem::TestCase
|
|
936
933
|
|
937
934
|
Gem.paths = { "GEM_PATH" => other }
|
938
935
|
|
939
|
-
assert_equal [
|
936
|
+
assert_equal [@gemhome, other], Gem.path
|
940
937
|
end
|
941
938
|
|
942
939
|
def test_self_source_index
|
@@ -983,7 +980,7 @@ class TestGem < Gem::TestCase
|
|
983
980
|
Gem.use_paths @gemhome, @additional
|
984
981
|
|
985
982
|
assert_equal @gemhome, Gem.dir
|
986
|
-
assert_equal
|
983
|
+
assert_equal [Gem.dir, *@additional], Gem.path
|
987
984
|
end
|
988
985
|
|
989
986
|
def test_self_user_dir
|
@@ -135,7 +135,7 @@ class TestGemCommandsSpecificationCommand < Gem::TestCase
|
|
135
135
|
end
|
136
136
|
|
137
137
|
assert_match %r|Gem::Specification.new|, @ui.output
|
138
|
-
assert_match %r|s.name =
|
138
|
+
assert_match %r|s.name = "foo"|, @ui.output
|
139
139
|
assert_equal '', @ui.error
|
140
140
|
end
|
141
141
|
|
@@ -45,6 +45,19 @@ class TestGemCommandsUninstallCommand < Gem::InstallerTestCase
|
|
45
45
|
assert_includes output, "Successfully uninstalled #{@other.full_name}"
|
46
46
|
end
|
47
47
|
|
48
|
+
def test_execute_mulitple_nonexistent
|
49
|
+
@cmd.options[:args] = %w[x y]
|
50
|
+
|
51
|
+
use_ui @ui do
|
52
|
+
@cmd.execute
|
53
|
+
end
|
54
|
+
|
55
|
+
output = @ui.output.split "\n"
|
56
|
+
|
57
|
+
assert_includes output, 'INFO: gem "x" is not installed'
|
58
|
+
assert_includes output, 'INFO: gem "y" is not installed'
|
59
|
+
end
|
60
|
+
|
48
61
|
def test_execute_removes_executable
|
49
62
|
ui = Gem::MockGemUi.new
|
50
63
|
util_setup_gem ui
|
@@ -25,7 +25,7 @@ class TestGemGemRunner < Gem::TestCase
|
|
25
25
|
gr = Gem::GemRunner.new
|
26
26
|
gr.send :do_configuration, %W[--config-file #{temp_conf}]
|
27
27
|
|
28
|
-
assert_equal [
|
28
|
+
assert_equal [other_gem_home, other_gem_path], Gem.path
|
29
29
|
assert_equal %w[--commands], Gem::Command.extra_args
|
30
30
|
assert_equal %w[--all], Gem::DocManager.configured_args
|
31
31
|
end
|
@@ -22,10 +22,10 @@ class TestGemPathSupport < Gem::TestCase
|
|
22
22
|
def test_initialize_home
|
23
23
|
ps = Gem::PathSupport.new "GEM_HOME" => "#{@tempdir}/foo"
|
24
24
|
|
25
|
-
|
25
|
+
expected = File.join(@tempdir, "foo")
|
26
|
+
assert_equal expected, ps.home
|
26
27
|
|
27
|
-
expected
|
28
|
-
assert_equal expected, ps.path
|
28
|
+
assert_equal [expected, *util_path], ps.path
|
29
29
|
end
|
30
30
|
|
31
31
|
if defined?(File::ALT_SEPARATOR) and File::ALT_SEPARATOR
|
@@ -43,9 +43,9 @@ class TestGemPathSupport < Gem::TestCase
|
|
43
43
|
assert_equal ENV["GEM_HOME"], ps.home
|
44
44
|
|
45
45
|
expected = [
|
46
|
+
ENV["GEM_HOME"],
|
46
47
|
File.join(@tempdir, 'foo'),
|
47
48
|
File.join(@tempdir, 'bar'),
|
48
|
-
ENV["GEM_HOME"],
|
49
49
|
]
|
50
50
|
|
51
51
|
assert_equal expected, ps.path
|
@@ -61,6 +61,32 @@ class TestGemPathSupport < Gem::TestCase
|
|
61
61
|
assert_equal expected, ps.path
|
62
62
|
end
|
63
63
|
|
64
|
+
def test_path_equals
|
65
|
+
ps = Gem::PathSupport.new
|
66
|
+
|
67
|
+
ps.send :path=, ['a', 'b']
|
68
|
+
|
69
|
+
assert_equal [@tempdir, 'a', 'b'], ps.path
|
70
|
+
end
|
71
|
+
|
72
|
+
def test_path_equals_empty
|
73
|
+
ps = Gem::PathSupport.new
|
74
|
+
|
75
|
+
ps.send :path=, nil
|
76
|
+
|
77
|
+
assert_equal [@tempdir, 'something'], ps.path
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_path_equals_empty_no_GEM_PATH
|
81
|
+
ENV.delete 'GEM_PATH'
|
82
|
+
|
83
|
+
ps = Gem::PathSupport.new
|
84
|
+
|
85
|
+
ps.send :path=, nil
|
86
|
+
|
87
|
+
assert_equal [@tempdir, *Gem.default_path], ps.path
|
88
|
+
end
|
89
|
+
|
64
90
|
def util_path
|
65
91
|
ENV["GEM_PATH"].split(File::PATH_SEPARATOR)
|
66
92
|
end
|
@@ -114,7 +114,7 @@ end
|
|
114
114
|
assert_equal @current_version, new_spec.specification_version
|
115
115
|
end
|
116
116
|
|
117
|
-
def
|
117
|
+
def test_self_from_yaml_syck_date_bug
|
118
118
|
# This is equivalent to (and totally valid) psych 1.0 output and
|
119
119
|
# causes parse errors on syck.
|
120
120
|
yaml = @a1.to_yaml
|
@@ -128,6 +128,41 @@ end
|
|
128
128
|
assert_kind_of Time, new_spec.date
|
129
129
|
end
|
130
130
|
|
131
|
+
def test_self_from_yaml_syck_default_key_bug
|
132
|
+
skip 'syck default_key bug is only for ruby 1.8' unless RUBY_VERSION < '1.9'
|
133
|
+
# This is equivalent to (and totally valid) psych 1.0 output and
|
134
|
+
# causes parse errors on syck.
|
135
|
+
yaml = <<-YAML
|
136
|
+
--- !ruby/object:Gem::Specification
|
137
|
+
name: posix-spawn
|
138
|
+
version: !ruby/object:Gem::Version
|
139
|
+
version: 0.3.6
|
140
|
+
prerelease:
|
141
|
+
dependencies:
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
name: rake-compiler
|
144
|
+
requirement: &70243867725240 !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - =
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: 0.7.6
|
150
|
+
type: :development
|
151
|
+
prerelease: false
|
152
|
+
version_requirements: *70243867725240
|
153
|
+
platform: ruby
|
154
|
+
files: []
|
155
|
+
test_files: []
|
156
|
+
bindir:
|
157
|
+
YAML
|
158
|
+
|
159
|
+
new_spec = with_syck do
|
160
|
+
Gem::Specification.from_yaml yaml
|
161
|
+
end
|
162
|
+
|
163
|
+
refute_match %r%DefaultKey%, new_spec.to_ruby
|
164
|
+
end
|
165
|
+
|
131
166
|
def test_self_load
|
132
167
|
full_path = @a2.spec_file
|
133
168
|
write_file full_path do |io|
|
@@ -141,6 +176,51 @@ end
|
|
141
176
|
assert_equal @a2, spec
|
142
177
|
end
|
143
178
|
|
179
|
+
def test_self_load_escape_curly
|
180
|
+
@a2.name = 'a};raise "improper escaping";%q{'
|
181
|
+
|
182
|
+
full_path = @a2.spec_file
|
183
|
+
write_file full_path do |io|
|
184
|
+
io.write @a2.to_ruby_for_cache
|
185
|
+
end
|
186
|
+
|
187
|
+
spec = Gem::Specification.load full_path
|
188
|
+
|
189
|
+
@a2.files.clear
|
190
|
+
|
191
|
+
assert_equal @a2, spec
|
192
|
+
end
|
193
|
+
|
194
|
+
def test_self_load_escape_interpolation
|
195
|
+
@a2.name = 'a#{raise %<improper escaping>}'
|
196
|
+
|
197
|
+
full_path = @a2.spec_file
|
198
|
+
write_file full_path do |io|
|
199
|
+
io.write @a2.to_ruby_for_cache
|
200
|
+
end
|
201
|
+
|
202
|
+
spec = Gem::Specification.load full_path
|
203
|
+
|
204
|
+
@a2.files.clear
|
205
|
+
|
206
|
+
assert_equal @a2, spec
|
207
|
+
end
|
208
|
+
|
209
|
+
def test_self_load_escape_quote
|
210
|
+
@a2.name = 'a";raise "improper escaping";"'
|
211
|
+
|
212
|
+
full_path = @a2.spec_file
|
213
|
+
write_file full_path do |io|
|
214
|
+
io.write @a2.to_ruby_for_cache
|
215
|
+
end
|
216
|
+
|
217
|
+
spec = Gem::Specification.load full_path
|
218
|
+
|
219
|
+
@a2.files.clear
|
220
|
+
|
221
|
+
assert_equal @a2, spec
|
222
|
+
end
|
223
|
+
|
144
224
|
def test_self_load_legacy_ruby
|
145
225
|
spec = Deprecate.skip_during do
|
146
226
|
eval LEGACY_RUBY_SPEC
|
@@ -754,19 +834,19 @@ end
|
|
754
834
|
# -*- encoding: utf-8 -*-
|
755
835
|
|
756
836
|
Gem::Specification.new do |s|
|
757
|
-
s.name =
|
758
|
-
s.version =
|
837
|
+
s.name = "a"
|
838
|
+
s.version = "2"
|
759
839
|
|
760
840
|
s.required_rubygems_version = Gem::Requirement.new(\"> 0\") if s.respond_to? :required_rubygems_version=
|
761
|
-
s.authors = [
|
762
|
-
s.date =
|
763
|
-
s.description =
|
764
|
-
s.email =
|
765
|
-
s.files = [
|
766
|
-
s.homepage =
|
767
|
-
s.require_paths = [
|
768
|
-
s.rubygems_version =
|
769
|
-
s.summary =
|
841
|
+
s.authors = ["A User"]
|
842
|
+
s.date = "#{Gem::Specification::TODAY.strftime "%Y-%m-%d"}"
|
843
|
+
s.description = "This is a test description"
|
844
|
+
s.email = "example@example.com"
|
845
|
+
s.files = ["lib/code.rb"]
|
846
|
+
s.homepage = "http://example.com"
|
847
|
+
s.require_paths = ["lib"]
|
848
|
+
s.rubygems_version = "#{Gem::VERSION}"
|
849
|
+
s.summary = "this is a summary"
|
770
850
|
|
771
851
|
if s.respond_to? :specification_version then
|
772
852
|
s.specification_version = #{Gem::Specification::CURRENT_SPECIFICATION_VERSION}
|
@@ -801,18 +881,18 @@ end
|
|
801
881
|
# -*- encoding: utf-8 -*-
|
802
882
|
|
803
883
|
Gem::Specification.new do |s|
|
804
|
-
s.name =
|
805
|
-
s.version =
|
884
|
+
s.name = "a"
|
885
|
+
s.version = "2"
|
806
886
|
|
807
887
|
s.required_rubygems_version = Gem::Requirement.new(\"> 0\") if s.respond_to? :required_rubygems_version=
|
808
|
-
s.authors = [
|
809
|
-
s.date =
|
810
|
-
s.description =
|
811
|
-
s.email =
|
812
|
-
s.homepage =
|
813
|
-
s.require_paths = [
|
814
|
-
s.rubygems_version =
|
815
|
-
s.summary =
|
888
|
+
s.authors = ["A User"]
|
889
|
+
s.date = "#{Gem::Specification::TODAY.strftime "%Y-%m-%d"}"
|
890
|
+
s.description = "This is a test description"
|
891
|
+
s.email = "example@example.com"
|
892
|
+
s.homepage = "http://example.com"
|
893
|
+
s.require_paths = ["lib"]
|
894
|
+
s.rubygems_version = "#{Gem::VERSION}"
|
895
|
+
s.summary = "this is a summary"
|
816
896
|
|
817
897
|
if s.respond_to? :specification_version then
|
818
898
|
s.specification_version = #{Gem::Specification::CURRENT_SPECIFICATION_VERSION}
|
@@ -848,26 +928,26 @@ end
|
|
848
928
|
# -*- encoding: utf-8 -*-
|
849
929
|
|
850
930
|
Gem::Specification.new do |s|
|
851
|
-
s.name =
|
852
|
-
s.version =
|
931
|
+
s.name = "a"
|
932
|
+
s.version = "1"
|
853
933
|
s.platform = Gem::Platform.new(#{expected_platform})
|
854
934
|
|
855
935
|
s.required_rubygems_version = Gem::Requirement.new(\">= 0\") if s.respond_to? :required_rubygems_version=
|
856
|
-
s.authors = [
|
857
|
-
s.date =
|
858
|
-
s.description =
|
859
|
-
s.email =
|
860
|
-
s.executables = [
|
861
|
-
s.extensions = [
|
862
|
-
s.files = [
|
863
|
-
s.homepage =
|
864
|
-
s.licenses = [
|
865
|
-
s.require_paths = [
|
866
|
-
s.requirements = [
|
867
|
-
s.rubyforge_project =
|
868
|
-
s.rubygems_version =
|
869
|
-
s.summary =
|
870
|
-
s.test_files = [
|
936
|
+
s.authors = ["A User"]
|
937
|
+
s.date = "#{Gem::Specification::TODAY.strftime "%Y-%m-%d"}"
|
938
|
+
s.description = "This is a test description"
|
939
|
+
s.email = "example@example.com"
|
940
|
+
s.executables = ["exec"]
|
941
|
+
s.extensions = ["ext/a/extconf.rb"]
|
942
|
+
s.files = ["lib/code.rb", "test/suite.rb", "bin/exec", "ext/a/extconf.rb"]
|
943
|
+
s.homepage = "http://example.com"
|
944
|
+
s.licenses = ["MIT"]
|
945
|
+
s.require_paths = ["lib"]
|
946
|
+
s.requirements = ["A working computer"]
|
947
|
+
s.rubyforge_project = "example"
|
948
|
+
s.rubygems_version = "#{Gem::VERSION}"
|
949
|
+
s.summary = "this is a summary"
|
950
|
+
s.test_files = ["test/suite.rb"]
|
871
951
|
|
872
952
|
if s.respond_to? :specification_version then
|
873
953
|
s.specification_version = 3
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubygems-update
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 35
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 8
|
9
|
-
-
|
10
|
-
version: 1.8.
|
9
|
+
- 10
|
10
|
+
version: 1.8.10
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jim Weirich
|
@@ -38,7 +38,7 @@ cert_chain:
|
|
38
38
|
x52qPcexcYZR7w==
|
39
39
|
-----END CERTIFICATE-----
|
40
40
|
|
41
|
-
date: 2011-08-
|
41
|
+
date: 2011-08-27 00:00:00 Z
|
42
42
|
dependencies:
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: minitest
|
@@ -404,7 +404,7 @@ post_install_message:
|
|
404
404
|
rdoc_options:
|
405
405
|
- --main
|
406
406
|
- README.rdoc
|
407
|
-
- --title=RubyGems 1.8.
|
407
|
+
- --title=RubyGems 1.8.10 Documentation
|
408
408
|
require_paths:
|
409
409
|
- hide_lib_for_update
|
410
410
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -430,7 +430,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
430
430
|
requirements: []
|
431
431
|
|
432
432
|
rubyforge_project: rubygems
|
433
|
-
rubygems_version: 1.8.
|
433
|
+
rubygems_version: 1.8.9
|
434
434
|
signing_key:
|
435
435
|
specification_version: 3
|
436
436
|
summary: RubyGems is a package management framework for Ruby
|
metadata.gz.sig
CHANGED
Binary file
|