libgems 0.0.2 → 0.0.3
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.
- data/lib/libgems.rb +17 -22
- data/lib/libgems/commands/build_command.rb +1 -1
- data/lib/libgems/custom_require.rb +5 -2
- data/lib/libgems/requirement.rb +4 -0
- data/lib/libgems/source_index.rb +1 -1
- data/lib/libgems/specification.rb +6 -2
- data/lib/libgems/version.rb +5 -0
- data/test/simple_gem.rb +2 -2
- data/test/test_gem_commands_specification_command.rb +5 -5
- data/test/test_gem_indexer.rb +1 -1
- data/test/test_gem_installer.rb +1 -1
- data/test/test_gem_server.rb +5 -5
- data/test/test_gem_specification.rb +18 -18
- metadata +3 -3
data/lib/libgems.rb
CHANGED
@@ -98,7 +98,7 @@ require 'thread'
|
|
98
98
|
module LibGems
|
99
99
|
NAME = 'LibGems'
|
100
100
|
GEM_NAME = 'libgems'
|
101
|
-
VERSION = '0.0.
|
101
|
+
VERSION = '0.0.3'
|
102
102
|
GEM_VERSION = '1.3.8'
|
103
103
|
|
104
104
|
##
|
@@ -173,40 +173,33 @@ module LibGems
|
|
173
173
|
@pre_uninstall_hooks ||= []
|
174
174
|
@pre_install_hooks ||= []
|
175
175
|
|
176
|
+
|
177
|
+
def self.rubygems_compat?
|
178
|
+
@using_rubygems_compat
|
179
|
+
end
|
180
|
+
|
176
181
|
##
|
177
|
-
#
|
182
|
+
# Run code with Gem = LibGems
|
178
183
|
|
179
|
-
def self.
|
180
|
-
|
184
|
+
def self.with_rubygems_compat
|
185
|
+
unless LibGems.rubygems_compat?
|
181
186
|
begin
|
187
|
+
@using_rubygems_compat = true
|
182
188
|
libgems_original_gem = nil
|
183
189
|
if Object.const_defined?(:Gem)
|
184
190
|
libgems_original_gem = Object::Gem
|
185
191
|
Object.send(:remove_const, :Gem)
|
186
192
|
end
|
187
193
|
Object.const_set(:Gem, LibGems)
|
188
|
-
|
194
|
+
yield
|
189
195
|
ensure
|
190
196
|
Object.send(:remove_const, :Gem)
|
191
197
|
Object.const_set(:Gem, libgems_original_gem) if libgems_original_gem
|
198
|
+
@using_rubygems_compat = false
|
192
199
|
end
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
##
|
197
|
-
# Run code with Gem = LibGems
|
198
|
-
|
199
|
-
def self.with_rubygems_compat
|
200
|
-
libgems_original_gem = nil
|
201
|
-
if Object.const_defined?(:Gem)
|
202
|
-
libgems_original_gem = Object::Gem
|
203
|
-
Object.send(:remove_const, :Gem)
|
200
|
+
else
|
201
|
+
yield
|
204
202
|
end
|
205
|
-
Object.const_set(:Gem, LibGems)
|
206
|
-
yield
|
207
|
-
ensure
|
208
|
-
Object.send(:remove_const, :Gem)
|
209
|
-
Object.const_set(:Gem, libgems_original_gem) if libgems_original_gem
|
210
203
|
end
|
211
204
|
|
212
205
|
##
|
@@ -471,7 +464,7 @@ module LibGems
|
|
471
464
|
base = File.basename(gp)
|
472
465
|
specfn = File.join(dir, "specifications", base + ".gemspec")
|
473
466
|
if File.exist?(specfn)
|
474
|
-
spec =
|
467
|
+
spec = with_rubygems_compat{ eval(File.read(specfn)) }
|
475
468
|
spec.require_paths.each do |rp|
|
476
469
|
yield(File.join(gp, rp))
|
477
470
|
end
|
@@ -1251,5 +1244,7 @@ class << LibGems
|
|
1251
1244
|
end
|
1252
1245
|
end
|
1253
1246
|
|
1247
|
+
require 'libgems/custom_require'
|
1248
|
+
|
1254
1249
|
LibGems.clear_paths
|
1255
1250
|
LibGems.load_configuration
|
@@ -47,7 +47,7 @@ class LibGems::Commands::BuildCommand < LibGems::Command
|
|
47
47
|
|
48
48
|
def yaml?(filename)
|
49
49
|
line = open(filename) { |f| line = f.gets }
|
50
|
-
result = line =~ %r{!ruby/object:
|
50
|
+
result = line =~ %r{!ruby/object:Gem::Specification}
|
51
51
|
result
|
52
52
|
end
|
53
53
|
end
|
@@ -26,11 +26,14 @@ module Kernel
|
|
26
26
|
# that file has already been loaded is preserved.
|
27
27
|
|
28
28
|
def require(path) # :doc:
|
29
|
-
|
29
|
+
# If we're using rubygems compat mode we don't want to call the original RubyGems require
|
30
|
+
require_method = (LibGems.rubygems_compat? && defined?(gem_original_require)) ?
|
31
|
+
:gem_original_require : :libgems_original_require
|
32
|
+
send(require_method, path)
|
30
33
|
rescue LoadError => load_error
|
31
34
|
if load_error.message.end_with?(path)
|
32
35
|
if LibGems.try_activate(path)
|
33
|
-
return
|
36
|
+
return send(require_method, path)
|
34
37
|
end
|
35
38
|
end
|
36
39
|
|
data/lib/libgems/requirement.rb
CHANGED
data/lib/libgems/source_index.rb
CHANGED
@@ -92,7 +92,7 @@ class LibGems::SourceIndex
|
|
92
92
|
end.untaint
|
93
93
|
|
94
94
|
begin
|
95
|
-
gemspec = LibGems.
|
95
|
+
gemspec = LibGems.with_rubygems_compat{ eval(spec_code, binding, file_name) }
|
96
96
|
|
97
97
|
if gemspec.is_a?(LibGems::Specification)
|
98
98
|
gemspec.loaded_from = file_name
|
@@ -505,7 +505,7 @@ class LibGems::Specification
|
|
505
505
|
raise "NESTED Specification.load calls not allowed!" if @@gather
|
506
506
|
@@gather = proc { |gs| gemspec = gs }
|
507
507
|
data = File.read filename
|
508
|
-
LibGems.
|
508
|
+
LibGems.with_rubygems_compat{ eval(data, nil, filename) }
|
509
509
|
gemspec
|
510
510
|
ensure
|
511
511
|
@@gather = nil
|
@@ -708,10 +708,14 @@ class LibGems::Specification
|
|
708
708
|
encode_with map
|
709
709
|
end
|
710
710
|
end
|
711
|
-
ret.gsub("!ruby/object:LibGems", "!ruby/object:Gem")
|
711
|
+
ret #.to_s.gsub("!ruby/object:LibGems", "!ruby/object:Gem").to_yaml
|
712
712
|
end
|
713
713
|
end
|
714
714
|
|
715
|
+
def to_yaml_type
|
716
|
+
"!ruby/object:Gem::Specification"
|
717
|
+
end
|
718
|
+
|
715
719
|
def init_with coder # :nodoc:
|
716
720
|
yaml_initialize coder.tag, coder.map
|
717
721
|
end
|
data/lib/libgems/version.rb
CHANGED
data/test/simple_gem.rb
CHANGED
@@ -23,10 +23,10 @@ SIMPLE_GEM = <<-GEMDATA
|
|
23
23
|
end
|
24
24
|
|
25
25
|
__END__
|
26
|
-
--- !ruby/object:
|
26
|
+
--- !ruby/object:Gem::Specification
|
27
27
|
rubygems_version: "1.0"
|
28
28
|
name: testing
|
29
|
-
version: !ruby/object:
|
29
|
+
version: !ruby/object:Gem::Version
|
30
30
|
version: 1.2.3
|
31
31
|
date: 2004-03-18 22:01:52.859121 -05:00
|
32
32
|
platform:
|
@@ -19,7 +19,7 @@ class TestGemCommandsSpecificationCommand < RubyGemTestCase
|
|
19
19
|
@cmd.execute
|
20
20
|
end
|
21
21
|
|
22
|
-
assert_match %r|
|
22
|
+
assert_match %r|Gem::Specification|, @ui.output
|
23
23
|
assert_match %r|name: foo|, @ui.output
|
24
24
|
assert_equal '', @ui.error
|
25
25
|
end
|
@@ -35,7 +35,7 @@ class TestGemCommandsSpecificationCommand < RubyGemTestCase
|
|
35
35
|
@cmd.execute
|
36
36
|
end
|
37
37
|
|
38
|
-
assert_match %r|
|
38
|
+
assert_match %r|Gem::Specification|, @ui.output
|
39
39
|
assert_match %r|name: foo|, @ui.output
|
40
40
|
assert_match %r|version: 0.0.1|, @ui.output
|
41
41
|
assert_match %r|version: 0.0.2|, @ui.output
|
@@ -65,7 +65,7 @@ class TestGemCommandsSpecificationCommand < RubyGemTestCase
|
|
65
65
|
@cmd.execute
|
66
66
|
end
|
67
67
|
|
68
|
-
assert_match %r|
|
68
|
+
assert_match %r|Gem::Specification|, @ui.output
|
69
69
|
assert_match %r|name: foo|, @ui.output
|
70
70
|
assert_equal '', @ui.error
|
71
71
|
end
|
@@ -115,7 +115,7 @@ class TestGemCommandsSpecificationCommand < RubyGemTestCase
|
|
115
115
|
@cmd.execute
|
116
116
|
end
|
117
117
|
|
118
|
-
assert_match %r|\A--- !ruby/object:
|
118
|
+
assert_match %r|\A--- !ruby/object:Gem::Specification|, @ui.output
|
119
119
|
assert_match %r|name: foo|, @ui.output
|
120
120
|
end
|
121
121
|
|
@@ -130,7 +130,7 @@ class TestGemCommandsSpecificationCommand < RubyGemTestCase
|
|
130
130
|
@cmd.execute
|
131
131
|
end
|
132
132
|
|
133
|
-
assert_match %r|
|
133
|
+
assert_match %r|Gem::Specification.new|, @ui.output
|
134
134
|
assert_match %r|s.name = %q\{foo\}|, @ui.output
|
135
135
|
assert_equal '', @ui.error
|
136
136
|
end
|
data/test/test_gem_indexer.rb
CHANGED
@@ -520,7 +520,7 @@ eighty characters.</pre>
|
|
520
520
|
yaml_path = File.join @tempdir, 'yaml'
|
521
521
|
dump_path = File.join @tempdir, "Marshal.#{@marshal_version}"
|
522
522
|
|
523
|
-
yaml_index = YAML.load_file yaml_path
|
523
|
+
yaml_index = LibGems.with_rubygems_compat{ YAML.load_file yaml_path }
|
524
524
|
dump_index = Marshal.load LibGems.read_binary(dump_path)
|
525
525
|
|
526
526
|
dump_index.each do |_,gem|
|
data/test/test_gem_installer.rb
CHANGED
@@ -840,7 +840,7 @@ load LibGems.bin_path('a', 'my_exec', version)
|
|
840
840
|
@installer.write_spec
|
841
841
|
|
842
842
|
assert File.exist?(spec_file)
|
843
|
-
assert_equal @spec, LibGems.
|
843
|
+
assert_equal @spec, LibGems.with_rubygems_compat{ eval(File.read(spec_file)) }
|
844
844
|
end
|
845
845
|
|
846
846
|
def old_ruby_required
|
data/test/test_gem_server.rb
CHANGED
@@ -119,7 +119,7 @@ class TestGemServer < RubyGemTestCase
|
|
119
119
|
assert @res['date']
|
120
120
|
assert_equal 'application/x-deflate', @res['content-type']
|
121
121
|
|
122
|
-
spec = YAML.load LibGems.inflate(@res.body)
|
122
|
+
spec = LibGems.with_rubygems_compat{ YAML.load LibGems.inflate(@res.body) }
|
123
123
|
assert_equal 'a', spec.name
|
124
124
|
assert_equal LibGems::Version.new(1), spec.version
|
125
125
|
end
|
@@ -136,7 +136,7 @@ class TestGemServer < RubyGemTestCase
|
|
136
136
|
assert @res['date']
|
137
137
|
assert_equal 'application/x-deflate', @res['content-type']
|
138
138
|
|
139
|
-
spec = YAML.load LibGems.inflate(@res.body)
|
139
|
+
spec = LibGems.with_rubygems_compat{ YAML.load LibGems.inflate(@res.body) }
|
140
140
|
assert_equal 'a', spec.name
|
141
141
|
assert_equal LibGems::Version.new(1), spec.version
|
142
142
|
assert_equal LibGems::Platform.local, spec.platform
|
@@ -154,7 +154,7 @@ class TestGemServer < RubyGemTestCase
|
|
154
154
|
assert @res['date']
|
155
155
|
assert_equal 'application/x-deflate', @res['content-type']
|
156
156
|
|
157
|
-
spec = YAML.load LibGems.inflate(@res.body)
|
157
|
+
spec = LibGems.with_rubygems_compat{ YAML.load LibGems.inflate(@res.body) }
|
158
158
|
assert_equal 'a', spec.name
|
159
159
|
assert_equal LibGems::Version.new(1), spec.version
|
160
160
|
end
|
@@ -318,7 +318,7 @@ class TestGemServer < RubyGemTestCase
|
|
318
318
|
si = LibGems::SourceIndex.new
|
319
319
|
si.add_specs @a1, @a2
|
320
320
|
|
321
|
-
assert_equal si, YAML.load(@res.body)
|
321
|
+
assert_equal si, LibGems.with_rubygems_compat{ YAML.load(@res.body) }
|
322
322
|
end
|
323
323
|
|
324
324
|
def test_yaml_Z
|
@@ -334,7 +334,7 @@ class TestGemServer < RubyGemTestCase
|
|
334
334
|
si = LibGems::SourceIndex.new
|
335
335
|
si.add_specs @a1, @a2
|
336
336
|
|
337
|
-
assert_equal si, YAML.load(LibGems.inflate(@res.body))
|
337
|
+
assert_equal si, LibGems.with_rubygems_compat{ YAML.load(LibGems.inflate(@res.body)) }
|
338
338
|
end
|
339
339
|
|
340
340
|
def util_listen
|
@@ -152,7 +152,7 @@ EOF
|
|
152
152
|
end
|
153
153
|
|
154
154
|
def test_self_load_legacy_ruby
|
155
|
-
spec = LibGems.
|
155
|
+
spec = LibGems.with_rubygems_compat{ eval LEGACY_RUBY_SPEC }
|
156
156
|
assert_equal 'keyedlist', spec.name
|
157
157
|
assert_equal '0.4.0', spec.version.to_s
|
158
158
|
assert_equal true, spec.has_rdoc?
|
@@ -162,7 +162,7 @@ EOF
|
|
162
162
|
end
|
163
163
|
|
164
164
|
def test_self_load_rubygems_style
|
165
|
-
spec = LibGems.
|
165
|
+
spec = LibGems.with_rubygems_compat{ eval RUBYGEMS_SPEC }
|
166
166
|
assert_equal LibGems::Specification, spec.class
|
167
167
|
assert_equal 'rubygems-compatible', spec.name
|
168
168
|
assert_equal '1.0', spec.version.to_s
|
@@ -811,11 +811,11 @@ EOF
|
|
811
811
|
expected = <<-SPEC
|
812
812
|
# -*- encoding: utf-8 -*-
|
813
813
|
|
814
|
-
|
814
|
+
Gem::Specification.new do |s|
|
815
815
|
s.name = %q{a}
|
816
816
|
s.version = \"2\"
|
817
817
|
|
818
|
-
s.required_rubygems_version =
|
818
|
+
s.required_rubygems_version = Gem::Requirement.new(\"> 0\") if s.respond_to? :required_rubygems_version=
|
819
819
|
s.authors = [\"A User\"]
|
820
820
|
s.date = %q{#{LibGems::Specification::TODAY.strftime "%Y-%m-%d"}}
|
821
821
|
s.description = %q{This is a test description}
|
@@ -827,9 +827,9 @@ LibGems::Specification.new do |s|
|
|
827
827
|
s.summary = %q{this is a summary}
|
828
828
|
|
829
829
|
if s.respond_to? :specification_version then
|
830
|
-
s.specification_version = #{
|
830
|
+
s.specification_version = #{Gem::Specification::CURRENT_SPECIFICATION_VERSION}
|
831
831
|
|
832
|
-
if
|
832
|
+
if Gem::Version.new(Gem::GEM_VERSION) >= Gem::Version.new('1.2.0') then
|
833
833
|
s.add_runtime_dependency(%q<b>, [\"= 1\"])
|
834
834
|
else
|
835
835
|
s.add_dependency(%q<b>, [\"= 1\"])
|
@@ -842,7 +842,7 @@ end
|
|
842
842
|
|
843
843
|
assert_equal expected, ruby_code
|
844
844
|
|
845
|
-
same_spec = LibGems.
|
845
|
+
same_spec = LibGems.with_rubygems_compat{ eval ruby_code }
|
846
846
|
|
847
847
|
assert_equal @a2, same_spec
|
848
848
|
end
|
@@ -857,12 +857,12 @@ end
|
|
857
857
|
expected = <<-SPEC
|
858
858
|
# -*- encoding: utf-8 -*-
|
859
859
|
|
860
|
-
|
860
|
+
Gem::Specification.new do |s|
|
861
861
|
s.name = %q{a}
|
862
862
|
s.version = \"1\"
|
863
|
-
s.platform =
|
863
|
+
s.platform = Gem::Platform.new(#{expected_platform})
|
864
864
|
|
865
|
-
s.required_rubygems_version =
|
865
|
+
s.required_rubygems_version = Gem::Requirement.new(\">= 0\") if s.respond_to? :required_rubygems_version=
|
866
866
|
s.authors = [\"A User\"]
|
867
867
|
s.date = %q{#{LibGems::Specification::TODAY.strftime "%Y-%m-%d"}}
|
868
868
|
s.default_executable = %q{exec}
|
@@ -884,7 +884,7 @@ LibGems::Specification.new do |s|
|
|
884
884
|
if s.respond_to? :specification_version then
|
885
885
|
s.specification_version = 3
|
886
886
|
|
887
|
-
if
|
887
|
+
if Gem::Version.new(Gem::GEM_VERSION) >= Gem::Version.new('1.2.0') then
|
888
888
|
s.add_runtime_dependency(%q<rake>, [\"> 0.4\"])
|
889
889
|
s.add_runtime_dependency(%q<jabber4r>, [\"> 0.0.0\"])
|
890
890
|
s.add_runtime_dependency(%q<pqa>, [\"> 0.4\", \"<= 0.6\"])
|
@@ -903,15 +903,15 @@ end
|
|
903
903
|
|
904
904
|
assert_equal expected, ruby_code
|
905
905
|
|
906
|
-
same_spec = LibGems.
|
906
|
+
same_spec = LibGems.with_rubygems_compat{ eval ruby_code }
|
907
907
|
|
908
908
|
assert_equal @a1, same_spec
|
909
909
|
end
|
910
910
|
|
911
911
|
def test_to_ruby_legacy
|
912
|
-
gemspec1 = LibGems.
|
912
|
+
gemspec1 = LibGems.with_rubygems_compat{ eval LEGACY_RUBY_SPEC }
|
913
913
|
ruby_code = gemspec1.to_ruby
|
914
|
-
gemspec2 = LibGems.
|
914
|
+
gemspec2 = LibGems.with_rubygems_compat{ eval ruby_code }
|
915
915
|
|
916
916
|
assert_equal gemspec1, gemspec2
|
917
917
|
end
|
@@ -922,7 +922,7 @@ end
|
|
922
922
|
|
923
923
|
ruby_code = @a2.to_ruby
|
924
924
|
|
925
|
-
same_spec = LibGems.
|
925
|
+
same_spec = LibGems.with_rubygems_compat{ eval ruby_code }
|
926
926
|
|
927
927
|
assert_equal 'old_platform', same_spec.original_platform
|
928
928
|
end
|
@@ -932,7 +932,7 @@ end
|
|
932
932
|
|
933
933
|
refute_match '!!null', yaml_str
|
934
934
|
|
935
|
-
same_spec = YAML.load(yaml_str)
|
935
|
+
same_spec = LibGems.with_rubygems_compat{ YAML.load(yaml_str) }
|
936
936
|
|
937
937
|
assert_equal @a1, same_spec
|
938
938
|
end
|
@@ -941,7 +941,7 @@ end
|
|
941
941
|
@a1.platform = LibGems::Platform.local
|
942
942
|
yaml_str = @a1.to_yaml
|
943
943
|
|
944
|
-
same_spec = YAML.load(yaml_str)
|
944
|
+
same_spec = LibGems.with_rubygems_compat{ YAML.load(yaml_str) }
|
945
945
|
|
946
946
|
assert_equal LibGems::Platform.local, same_spec.platform
|
947
947
|
|
@@ -960,7 +960,7 @@ end
|
|
960
960
|
|
961
961
|
yaml_str = @a1.to_yaml
|
962
962
|
|
963
|
-
same_spec = YAML.load yaml_str
|
963
|
+
same_spec = LibGems.with_rubygems_compat{ YAML.load yaml_str }
|
964
964
|
|
965
965
|
assert_equal LibGems::Platform.new('powerpc-darwin7'), same_spec.platform
|
966
966
|
assert_equal 'powerpc-darwin7.9.0', same_spec.original_platform
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: libgems
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Jim Weirich
|
@@ -13,7 +13,7 @@ autorequire:
|
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
15
|
|
16
|
-
date: 2011-06-
|
16
|
+
date: 2011-06-14 00:00:00 Z
|
17
17
|
dependencies: []
|
18
18
|
|
19
19
|
description: |
|
@@ -290,7 +290,7 @@ files:
|
|
290
290
|
homepage: http://rubygems.org
|
291
291
|
licenses: []
|
292
292
|
|
293
|
-
post_install_message: "Upgraded from LibGems to LibGems 0.0.
|
293
|
+
post_install_message: "Upgraded from LibGems to LibGems 0.0.3\n\
|
294
294
|
\xEF\xBB\xBF=== 1.3.8 / 2011-05-16\n\n\
|
295
295
|
SlimGems is born! SlimGems is a fork of RubyGems, see README.md for more.\n\n"
|
296
296
|
rdoc_options: []
|