gemtronics 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/gemtronics/grouper.rb +11 -1
- data/lib/gemtronics/manager.rb +6 -2
- metadata +2 -2
data/lib/gemtronics/grouper.rb
CHANGED
@@ -5,10 +5,14 @@ module Gemtronics
|
|
5
5
|
#
|
6
6
|
# See Gemtronics::Manager for more details on creating a group.
|
7
7
|
class Grouper
|
8
|
+
# The name of this group
|
9
|
+
attr_accessor :name
|
8
10
|
# The Array of gems belonging to this group.
|
9
11
|
attr_accessor :gems
|
10
12
|
# A Hash representing the default options for this group.
|
11
13
|
attr_accessor :group_options
|
14
|
+
# An Array containing the names of the dependents of this group.
|
15
|
+
attr_accessor :dependents
|
12
16
|
|
13
17
|
# Creates a new Gemtronics::Grouper class. It takes a Hash
|
14
18
|
# of options that will be applied to all gems added to the group.
|
@@ -29,8 +33,10 @@ module Gemtronics
|
|
29
33
|
#
|
30
34
|
# In this example the <tt>:test</tt> group would
|
31
35
|
# now have the following gems: <tt>gem1, gem2, gem3</tt>
|
32
|
-
def initialize(options = {})
|
36
|
+
def initialize(name, options = {})
|
37
|
+
self.name = name
|
33
38
|
self.gems = []
|
39
|
+
self.dependents = []
|
34
40
|
options = {} if options.nil?
|
35
41
|
self.group_options = Gemtronics::Manager::GLOBAL_DEFAULT_OPTIONS.merge(options)
|
36
42
|
deps = self.group_options.delete(:dependencies)
|
@@ -83,6 +89,9 @@ module Gemtronics
|
|
83
89
|
g = self.group_options.merge({:name => name, :require => [name]}.merge(g).merge(options))
|
84
90
|
g[:require] = [g[:require]].flatten
|
85
91
|
self.gems[ind] = g
|
92
|
+
self.dependents.each do |dep|
|
93
|
+
Gemtronics.group(dep).add(name, options)
|
94
|
+
end
|
86
95
|
end
|
87
96
|
|
88
97
|
# Removes a gem from the group.
|
@@ -128,6 +137,7 @@ module Gemtronics
|
|
128
137
|
def dependency(name)
|
129
138
|
group = Gemtronics::Manager.instance.groups[name.to_sym]
|
130
139
|
if group
|
140
|
+
Gemtronics.group(name.to_sym).dependents << self.name
|
131
141
|
group.gems.dup.each do |gemdef|
|
132
142
|
self.add(gemdef[:name], gemdef)
|
133
143
|
end
|
data/lib/gemtronics/manager.rb
CHANGED
@@ -28,8 +28,12 @@ module Gemtronics
|
|
28
28
|
def group(name, options = {})
|
29
29
|
name = name.to_sym
|
30
30
|
options = GLOBAL_DEFAULT_OPTIONS.merge(options)
|
31
|
-
g = (self.groups[name] ||= Gemtronics::Grouper.new(options))
|
32
|
-
|
31
|
+
g = (self.groups[name] ||= Gemtronics::Grouper.new(name, options))
|
32
|
+
if block_given?
|
33
|
+
yield g
|
34
|
+
else
|
35
|
+
return g
|
36
|
+
end
|
33
37
|
end
|
34
38
|
|
35
39
|
# Aliases one gem group to another group.
|
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.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- markbates
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-08-
|
12
|
+
date: 2009-08-14 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|