aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/gem_dependency.rb
diff options
context:
space:
mode:
authorMatt Jones <al2o3cr@gmail.com>2009-03-01 11:53:58 +0000
committerPratik Naik <pratiknaik@gmail.com>2009-03-01 11:53:58 +0000
commita3ac1e1621506a6519b265ef6ec6abc70f6c8a27 (patch)
tree21770cd0ac52bfb034da9195b412236ddb893176 /railties/lib/rails/gem_dependency.rb
parent3b169cd693f45911ee71e26708fb9267811c8d83 (diff)
downloadrails-a3ac1e1621506a6519b265ef6ec6abc70f6c8a27.tar.gz
rails-a3ac1e1621506a6519b265ef6ec6abc70f6c8a27.tar.bz2
rails-a3ac1e1621506a6519b265ef6ec6abc70f6c8a27.zip
Display gem dependencies correctly and unpack exactly once [#2097 state:resolved]
Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
Diffstat (limited to 'railties/lib/rails/gem_dependency.rb')
-rw-r--r--railties/lib/rails/gem_dependency.rb11
1 files changed, 7 insertions, 4 deletions
diff --git a/railties/lib/rails/gem_dependency.rb b/railties/lib/rails/gem_dependency.rb
index 5a07841be8..2dd659032f 100644
--- a/railties/lib/rails/gem_dependency.rb
+++ b/railties/lib/rails/gem_dependency.rb
@@ -72,13 +72,14 @@ module Rails
rescue Gem::LoadError
end
- def dependencies
- return [] if framework_gem?
- return [] if specification.nil?
+ def dependencies(options = {})
+ return [] if framework_gem? || specification.nil?
+
all_dependencies = specification.dependencies.map do |dependency|
GemDependency.new(dependency.name, :requirement => dependency.version_requirements)
end
- all_dependencies += all_dependencies.map(&:dependencies).flatten
+
+ all_dependencies += all_dependencies.map { |d| d.dependencies(options) }.flatten if options[:flatten]
all_dependencies.uniq
end
@@ -149,6 +150,8 @@ module Rails
end
def unpack_to(directory)
+ return if specification.nil? || File.directory?(gem_dir(directory)) || framework_gem?
+
FileUtils.mkdir_p directory
Dir.chdir directory do
Gem::GemRunner.new.run(unpack_command)