gemtronics 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/gemtronics/grouper.rb +18 -6
  2. metadata +1 -1
@@ -32,13 +32,13 @@ module Gemtronics
32
32
  def initialize(options = {})
33
33
  self.gems = []
34
34
  options = {} if options.nil?
35
- deps = options.delete(:dependencies)
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
- g = self.group_options.merge({:name => name.to_s, :require => [name.to_s]}.merge(options))
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 << g
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
- self.gems << group.gems.dup
121
- self.gems.flatten!
131
+ group.gems.dup.each do |gemdef|
132
+ self.add(gemdef[:name], gemdef)
133
+ end
122
134
  end
123
135
  end
124
136
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gemtronics
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - markbates