gemtronics 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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