mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
2bf58aa782
* Rails::GemDependency was missing definitions for hash and eql?, causing Array#uniq to not work. * If several versions of a gem are unpacked in vendor, now chooses the highest if no version is specified. * streamlined add_load_path. Now sets up Rubygems correctly to allow 'gem' to find frozen gems, with gems frozen to vendor/gems and specifications in vendor/gems/<gem-name>/.specification * Rails::GemDependency#specification would return a spec for the highest installed version, even for frozen gems and/or previously loaded lower versions. See in part ticket #1123. * removed vendor from default_load_paths - it was causing autoloading to append Gems::Gems::<gem-dir> to constant names * added additional tests for loading frozen gems. * incorporates the fix from #1107 for vendor rails * defers to freeze:gems for handling the Rails framework. gems:unpack WILL NOT place a copy of Rails in vendor/gems. Should close #1123 completely. * incorporates, via using the gem loader for frozen gems, fixes corresponding to #227, #324, #362, #527, and #742. * gem plugins now work the same whether frozen or not. Correctness of the behavior is a matter for another ticket... Signed-off-by: rick <technoweenie@gmail.com>
21 lines
478 B
Ruby
21 lines
478 B
Ruby
require 'rubygems'
|
|
require 'rubygems/installer'
|
|
|
|
module Rails
|
|
|
|
# this class hijacks the functionality of Gem::Installer by overloading its
|
|
# initializer to only provide the information needed by
|
|
# Gem::Installer#build_extensions (which happens to be what we have)
|
|
class GemBuilder < Gem::Installer
|
|
|
|
def initialize(spec, gem_dir)
|
|
@spec = spec
|
|
@gem_dir = gem_dir
|
|
end
|
|
|
|
# silence the underlying builder
|
|
def say(message)
|
|
end
|
|
|
|
end
|
|
end
|