faster_rubygems 0.11.1 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -11,11 +11,10 @@ faster_rubygems installed into your site_ruby directory.
11
11
 
12
12
  If you're on 1.9 please set your RUBYOPT env. variable thus, to use it:
13
13
 
14
- $ export RUBYOPT=--disable-gems -rfaster_rubygems
15
-
16
- or (windows)
17
-
18
- C:\>set RUBYOPT=--disable-gems -rfaster_rubygems
14
+ 1.9 only:
15
+ $ export RUBYOPT=--disable-gems -rfaster_rubygems
16
+ or (windows)
17
+ C:\>set RUBYOPT=--disable-gems -rfaster_rubygems
19
18
 
20
19
  "
21
20
  s.add_development_dependency 'test-unit', '=1.2.3'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.11.1
1
+ 0.12.0
@@ -0,0 +1,2 @@
1
+ puts 'faster_rubygems: attempting to recreate all caches'
2
+ require "faster_rubygems/create_cache_for_all"
@@ -161,8 +161,7 @@ if defined?(Gem) then
161
161
  end
162
162
 
163
163
  $".delete path_to_full_rubygems_library
164
- path = nil
165
- if $".any? {|path| path =~ Regexp.new('/rubygems.rb$')}
164
+ if path = $".detect {|path2| path2 =~ Regexp.new('/rubygems.rb$')}
166
165
  raise LoadError, "another rubygems is already loaded from #{path}"
167
166
  end
168
167
  require 'rubygems'
@@ -292,15 +291,17 @@ if defined?(Gem) then
292
291
 
293
292
  if !current_version or (current_version <=> new_version) < 0 then
294
293
  GemVersions[gem_name] = new_version
295
- GemPaths[gem_name] = File.join(gems_directory, gem_directory_name)
294
+ GemPaths[gem_name] = File.join(gems_directory, gem_directory_name) # TODO lazy load these, too...why not?
296
295
  end
297
296
  end
298
297
  end
299
298
  end
299
+ # TODO don't require iterating over all these, since you can extrapolate them from the cache files...
300
300
 
301
301
  return unless load_them_into_the_require_path
302
302
 
303
- # load them into $: now
303
+
304
+ # load all lib dirs into $:...
304
305
  require_paths = []
305
306
 
306
307
  GemPaths.each_value do |path|
@@ -358,7 +359,11 @@ if defined?(Gem) then
358
359
  }
359
360
 
360
361
  # we will use a clear cache as an indication of "non success" loading caches
361
- AllCaches.clear if AllCaches.index(nil)
362
+ if AllCaches.index(nil)
363
+ AllCaches.clear
364
+ else
365
+ # success
366
+ end
362
367
 
363
368
  end
364
369
 
@@ -369,10 +374,10 @@ if defined?(Gem) then
369
374
 
370
375
  begin
371
376
  if !Gem::QuickLoader::AllCaches.empty?
372
- puts 'faster_rubygems using caches', Gem::QuickLoader::AllCaches.map{|fn, contents| fn} if $VERBOSE
377
+ puts 'faster_rubygems using caches ' + Gem::QuickLoader::AllCaches.map{|fn, contents| fn + "/.faster_rubygems_cache"}.join(' ') if $VERBOSE
373
378
  Gem.calculate_all_highest_version_gems false
374
- # use cached load instead of loading lib paths into the load path here
375
- require File.expand_path(File.dirname(__FILE__)) + "/prelude_cached_load"
379
+ # use cached loader instead of loading lib paths into the load path here (what prelude does by default)
380
+ require File.expand_path(File.dirname(__FILE__)) + "/prelude_cached_load.rb"
376
381
  else
377
382
  puts 'faster_rubygems not using caches!' if $VERBOSE
378
383
  Gem.calculate_all_highest_version_gems true
@@ -44,13 +44,13 @@ module Gem
44
44
  bin_path(gem_name, exec_name, *version_requirements)
45
45
  end
46
46
 
47
- # 1.9.1's gem_prelude doesn't have this for some reason...
47
+ # 1.9.1's gem_prelude doesn't seem to have this for some reason...
48
48
  def integers_for(gem_version)
49
49
  numbers = gem_version.split(".").collect {|n| n.to_i}
50
50
  numbers.pop while numbers.last == 0
51
51
  numbers << 0 if numbers.empty?
52
52
  numbers
53
- end
53
+ end unless Gem.respond_to?(:integers_for)
54
54
 
55
55
  end
56
56
 
@@ -1,46 +1,46 @@
1
- module Gem
2
- module QuickLoader
3
- module PreludeRequire
4
- def require_prelude lib
5
- begin
6
- require_pre_prelude lib
7
- rescue ::LoadError => e
8
- if Gem.push_all_gems_that_might_match_and_reload_files(lib, e)
9
- require_pre_prelude lib
10
- else
11
- # re-raise
12
- raise e
13
- end
14
- end
15
- end
16
- end
17
-
18
- def push_all_gems_that_might_match_and_reload_files lib, error
19
- sub_lib = lib.gsub("\\", '/').split('/')[-1].split('.')[0]
20
- success = false
21
- raise if AllCaches.empty? # should never be empty...
22
- AllCaches.each{|path, gem_list|
23
- for gem_name, long_file_list in gem_list
24
- if long_file_list[sub_lib.downcase]
25
- puts 'activating' + gem_name + ' ' + sub_lib.to_s if $DEBUG
26
- if gem(gem_name)
27
- puts 'gem activated ' + gem_name + ' ' + sub_lib if $VERBOSE || $DEBUG
28
- success = true
29
- end
30
- puts 'done activeating' + gem_name + ' ' + sub_lib if $DEBUG
31
- end
32
-
33
- end
34
- }
35
- success
1
+ module Gem
2
+ module QuickLoader
3
+ module PreludeRequire
4
+ def require_prelude lib
5
+ begin
6
+ require_pre_prelude lib
7
+ rescue ::LoadError => e
8
+ if Gem.push_all_gems_that_might_match_and_reload_files(lib, e)
9
+ require_pre_prelude lib
10
+ else
11
+ # re-raise
12
+ raise e
13
+ end
14
+ end
36
15
  end
37
-
38
- end
39
- end
40
-
41
- module Kernel
42
- include Gem::QuickLoader::PreludeRequire
43
- alias :require_pre_prelude :require
44
- alias :require :require_prelude
45
- end
46
-
16
+ end
17
+
18
+ def push_all_gems_that_might_match_and_reload_files lib, error
19
+ sub_lib = lib.gsub("\\", '/').split('/')[-1].split('.')[0]
20
+ success = false
21
+ raise if AllCaches.empty? # should never be empty...
22
+ AllCaches.each{|path, gem_list|
23
+ for gem_name, long_file_list in gem_list
24
+ if long_file_list[sub_lib.downcase]
25
+ puts 'activating' + gem_name + ' ' + sub_lib.to_s if $DEBUG
26
+ if gem(gem_name)
27
+ puts 'gem activated ' + gem_name + ' ' + sub_lib if $VERBOSE || $DEBUG
28
+ success = true
29
+ end
30
+ puts 'done activeating' + gem_name + ' ' + sub_lib if $DEBUG
31
+ end
32
+
33
+ end
34
+ }
35
+ success
36
+ end
37
+
38
+ end
39
+ end
40
+
41
+ module Kernel
42
+ include Gem::QuickLoader::PreludeRequire
43
+ alias :require_pre_prelude :require
44
+ alias :require :require_prelude
45
+ end
46
+
@@ -3,7 +3,7 @@ require File.dirname(__FILE__) + "/prelude_bin_path" # Gem.integers_for, for 1.9
3
3
  module Gem
4
4
  module QuickLoader
5
5
  def create_cache gems_paths
6
- puts 'faster_rubygems: creating all caches'
6
+ puts 'faster_rubygems: creating caches'
7
7
  gems_paths.each do |path|
8
8
  gem_versions = {}
9
9
  gem_paths = {}
@@ -9,6 +9,10 @@ Gem.post_uninstall {
9
9
  Gem.pre_uninstall { |gem_installer_instance, gem_spec|
10
10
 
11
11
  if gem_installer_instance.spec.name == 'faster_rubygems' && RUBY_VERSION[0..2] == '1.8'
12
- require "faster_rubygems/unoverride" # just in case
12
+ begin
13
+ require "faster_rubygems/unoverride" # just in case
14
+ rescue Errno::ENOENT
15
+ puts 'warning: unable to unoverride faster_rubygems--might be expected if you had several versions installed'
16
+ end
13
17
  end
14
18
  }
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: faster_rubygems
3
3
  version: !ruby/object:Gem::Version
4
- hash: 49
4
+ hash: 47
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 11
9
- - 1
10
- version: 0.11.1
8
+ - 12
9
+ - 0
10
+ version: 0.12.0
11
11
  platform: ruby
12
12
  authors: []
13
13
 
@@ -15,8 +15,8 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-06-29 00:00:00 -06:00
19
- default_executable:
18
+ date: 2010-07-01 00:00:00 -06:00
19
+ default_executable: faster_rubygems
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  name: test-unit
@@ -98,8 +98,8 @@ dependencies:
98
98
  version_requirements: *id005
99
99
  description:
100
100
  email:
101
- executables: []
102
-
101
+ executables:
102
+ - faster_rubygems
103
103
  extensions:
104
104
  - ext/mkrf_conf.rb
105
105
  extra_rdoc_files:
@@ -109,6 +109,7 @@ files:
109
109
  - Rakefile
110
110
  - VERSION
111
111
  - benchmarks.txt
112
+ - bin/faster_rubygems
112
113
  - ext/mkrf_conf.rb
113
114
  - internalize.rb
114
115
  - lib/faster_rubygems.rb
@@ -141,11 +142,10 @@ post_install_message: |+
141
142
 
142
143
  If you're on 1.9 please set your RUBYOPT env. variable thus, to use it:
143
144
 
144
- $ export RUBYOPT=--disable-gems -rfaster_rubygems
145
-
146
- or (windows)
147
-
148
- C:>set RUBYOPT=--disable-gems -rfaster_rubygems
145
+ 1.9 only:
146
+ $ export RUBYOPT=--disable-gems -rfaster_rubygems
147
+ or (windows)
148
+ C:>set RUBYOPT=--disable-gems -rfaster_rubygems
149
149
 
150
150
  rdoc_options:
151
151
  - --charset=UTF-8