0
@@ -8,11 +8,17 @@ module Rails
0
def initialize(name, options = {})
0
require 'rubygems' unless Object.const_defined?(:Gem)
0
+ if options[:requirement]
0
+ @requirement = options[:requirement]
0
+ elsif options[:version]
0
@requirement = Gem::Requirement.create(options[:version])
0
- @version = @requirement.instance_variable_get("@requirements").first.last
0
+ raise ArgumentError.new('Must pass either :version or :requirement')
0
+ @version = @requirement.instance_variable_get("@requirements").first.last if @requirement
0
@source = options[:source]
0
@loaded = @frozen = @load_paths_added = false
0
@@ -35,6 +41,14 @@ module Rails
0
+ all_dependencies = specification.dependencies.map do |dependency|
0
+ GemDependency.new(dependency.name, :requirement => dependency.version_requirements)
0
+ all_dependencies += all_dependencies.map(&:dependencies).flatten
0
def gem_dir(base_directory)
0
File.join(base_directory, specification.full_name)
0
@@ -64,10 +78,6 @@ module Rails
0
Gem::GemRunner.new.run(install_command)
0
- @spec ||= Gem.source_index.search(Gem::Dependency.new(@name, @requirement)).sort_by { |s| s.version }.last
0
def unpack_to(directory)
0
FileUtils.mkdir_p directory
0
@@ -83,6 +93,16 @@ module Rails
0
+ self.name == other.name && self.requirement == other.requirement
0
+private ###################################################################
0
+ @spec ||= Gem.source_index.search(Gem::Dependency.new(@name, @requirement)).sort_by { |s| s.version }.last
0
cmd = %w(install) << @name
0
cmd << "--version" << "#{@requirement.to_s}" if @requirement
Comments
No one has commented yet.