Skip to content
This repository has been archived by the owner on Apr 14, 2021. It is now read-only.

Commit

Permalink
Allow Bundler::Dependency to have multiple groups
Browse files Browse the repository at this point in the history
  • Loading branch information
Carl Lerche committed Feb 4, 2010
1 parent f50ccd9 commit 4582d39
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 8 deletions.
2 changes: 1 addition & 1 deletion lib/bundler/dependency.rb
Expand Up @@ -7,7 +7,7 @@ class Dependency < Gem::Dependency
def initialize(name, version, options = {}, &blk)
super(name, version)

@group = options["group"] || :default
@groups = Array(options["group"] || :default)
@source = options["source"]
@autorequire = options["require"] || name
@autorequire = [@autorequire] unless @autorequire.is_a?(Array)
Expand Down
4 changes: 2 additions & 2 deletions lib/bundler/environment.rb
Expand Up @@ -61,7 +61,7 @@ def dependencies_for(*groups)
if groups.empty?
dependencies
else
dependencies.select { |d| groups.include?(d.group) }
dependencies.select { |d| (groups & d.groups).any? }
end
end

Expand Down Expand Up @@ -172,7 +172,7 @@ def details
end

def autorequires_for_groups(*groups)
groups = dependencies.map { |dep| dep.group }.uniq if groups.empty?
groups = dependencies.map { |dep| dep.groups }.flatten.uniq if groups.empty?
groups.inject({}) do |hash, group|
hash[group] = dependencies_for(group).map { |dep| dep.autorequire }.flatten
hash
Expand Down
8 changes: 4 additions & 4 deletions lib/bundler/installer.rb
Expand Up @@ -85,17 +85,17 @@ def resolve_remotely
def group_specs(specs)
dependencies.each do |d|
spec = specs.find { |s| s.name == d.name }
group_spec(specs, spec, d.group)
group_spec(specs, spec, d.groups)
end
specs
end

def group_spec(specs, spec, group)
spec.groups << group
def group_spec(specs, spec, groups)
spec.groups.concat(groups)
spec.groups.uniq!
spec.dependencies.select { |d| d.type != :development }.each do |d|
spec = specs.find { |s| s.name == d.name }
group_spec(specs, spec, group)
group_spec(specs, spec, groups)
end
end

Expand Down
2 changes: 1 addition & 1 deletion lib/bundler/rubygems.rb
Expand Up @@ -17,6 +17,6 @@ def groups
end

class Dependency
attr_accessor :source, :group
attr_accessor :source, :groups
end
end

0 comments on commit 4582d39

Please sign in to comment.