aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/gem_dependency.rb
diff options
context:
space:
mode:
Diffstat (limited to 'railties/lib/rails/gem_dependency.rb')
-rw-r--r--railties/lib/rails/gem_dependency.rb20
1 files changed, 11 insertions, 9 deletions
diff --git a/railties/lib/rails/gem_dependency.rb b/railties/lib/rails/gem_dependency.rb
index 0e39f6fd0a..30bdf416fc 100644
--- a/railties/lib/rails/gem_dependency.rb
+++ b/railties/lib/rails/gem_dependency.rb
@@ -31,13 +31,15 @@ module Rails
args << @requirement.to_s if @requirement
gem *args
else
- $LOAD_PATH << File.join(unpacked_paths.first, 'lib')
+ $LOAD_PATH.unshift File.join(unpacked_paths.first, 'lib')
+ ext = File.join(unpacked_paths.first, 'ext')
+ $LOAD_PATH.unshift(ext) if File.exist?(ext)
@frozen = true
end
@load_paths_added = true
rescue Gem::LoadError
end
-
+
def dependencies
all_dependencies = specification.dependencies.map do |dependency|
GemDependency.new(dependency.name, :requirement => dependency.version_requirements)
@@ -45,7 +47,7 @@ module Rails
all_dependencies += all_dependencies.map(&:dependencies).flatten
all_dependencies.uniq
end
-
+
def gem_dir(base_directory)
File.join(base_directory, specification.full_name)
end
@@ -76,13 +78,13 @@ module Rails
puts cmd
puts %x(#{cmd})
end
-
+
def unpack_to(directory)
FileUtils.mkdir_p directory
Dir.chdir directory do
Gem::GemRunner.new.run(unpack_command)
end
-
+
# copy the gem's specification into GEMDIR/.specification so that
# we can access information about the gem on deployment systems
# without having the gem installed
@@ -101,7 +103,7 @@ private ###################################################################
def specification
@spec ||= Gem.source_index.search(Gem::Dependency.new(@name, @requirement)).sort_by { |s| s.version }.last
end
-
+
def gem_command
RUBY_PLATFORM =~ /win32/ ? 'gem.bat' : 'gem'
end
@@ -112,11 +114,11 @@ private ###################################################################
cmd << "--source" << @source if @source
cmd
end
-
+
def unpack_command
cmd = %w(unpack) << @name
- cmd << "--version" << "#{@requirement.to_s}" if @requirement
+ cmd << "--version" << %("#{@requirement.to_s}") if @requirement
cmd
end
end
-end \ No newline at end of file
+end