gemtronics 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/gemtronics/grouper.rb +18 -6
- metadata +1 -1
data/lib/gemtronics/grouper.rb
CHANGED
@@ -32,13 +32,13 @@ module Gemtronics
|
|
32
32
|
def initialize(options = {})
|
33
33
|
self.gems = []
|
34
34
|
options = {} if options.nil?
|
35
|
-
|
35
|
+
self.group_options = Gemtronics::Manager::GLOBAL_DEFAULT_OPTIONS.merge(options)
|
36
|
+
deps = self.group_options.delete(:dependencies)
|
36
37
|
if deps
|
37
38
|
[deps].flatten.each do |dep|
|
38
39
|
self.dependency(dep)
|
39
40
|
end
|
40
41
|
end
|
41
|
-
self.group_options = Gemtronics::Manager::GLOBAL_DEFAULT_OPTIONS.merge(options)
|
42
42
|
self
|
43
43
|
end
|
44
44
|
|
@@ -69,9 +69,20 @@ module Gemtronics
|
|
69
69
|
# {:name => 'gem4', :version => '>=1.0.0', :source => 'http://gems.rubyforge.org',
|
70
70
|
# :require => ['gemfour']}, :load => false]
|
71
71
|
def add(name, options = {})
|
72
|
-
|
72
|
+
name = name.to_s
|
73
|
+
ind = self.gems.size
|
74
|
+
g = {}
|
75
|
+
self.gems.each_with_index do |gemdef, i|
|
76
|
+
if gemdef[:name] == name
|
77
|
+
g = gemdef
|
78
|
+
ind = i
|
79
|
+
break
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
g = self.group_options.merge({:name => name, :require => [name]}.merge(g).merge(options))
|
73
84
|
g[:require] = [g[:require]].flatten
|
74
|
-
self.gems
|
85
|
+
self.gems[ind] = g
|
75
86
|
end
|
76
87
|
|
77
88
|
# Removes a gem from the group.
|
@@ -117,8 +128,9 @@ module Gemtronics
|
|
117
128
|
def dependency(name)
|
118
129
|
group = Gemtronics::Manager.instance.groups[name.to_sym]
|
119
130
|
if group
|
120
|
-
|
121
|
-
|
131
|
+
group.gems.dup.each do |gemdef|
|
132
|
+
self.add(gemdef[:name], gemdef)
|
133
|
+
end
|
122
134
|
end
|
123
135
|
end
|
124
136
|
|