ruby-quilt 0.2.3 → 0.2.4
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.
- data/lib/quilt.rb +37 -8
- metadata +2 -2
data/lib/quilt.rb
CHANGED
@@ -17,6 +17,8 @@ class Quilt
|
|
17
17
|
DEBUG_PREFIX_KEY = "debug_prefix"
|
18
18
|
ARCHIVE_SUFFIX = ".tgz"
|
19
19
|
DEFAULT_LRU_SIZE = 10
|
20
|
+
VALID_POSITIONS = ['before_header', 'after_header', 'before_common', 'after_common', 'before_optional',
|
21
|
+
'optional', 'after_optional', 'before_footer', 'after_footer']
|
20
22
|
|
21
23
|
def initialize(config = "quilt", log = Logger.new(STDOUT))
|
22
24
|
@@fetching_versions = {}
|
@@ -95,7 +97,8 @@ class Quilt
|
|
95
97
|
:header => '',
|
96
98
|
:common => '',
|
97
99
|
:optional => {},
|
98
|
-
:footer => ''
|
100
|
+
:footer => '',
|
101
|
+
:base_modules => []
|
99
102
|
}
|
100
103
|
}
|
101
104
|
begin
|
@@ -110,7 +113,8 @@ class Quilt
|
|
110
113
|
:header => '',
|
111
114
|
:common => '',
|
112
115
|
:optional => {},
|
113
|
-
:footer => ''
|
116
|
+
:footer => '',
|
117
|
+
:base_modules => []
|
114
118
|
}
|
115
119
|
end
|
116
120
|
rescue Exception => e
|
@@ -125,6 +129,7 @@ class Quilt
|
|
125
129
|
# "footer" : "<footer file>",
|
126
130
|
# "common" : [
|
127
131
|
# "<module file>",
|
132
|
+
# { <module file> : "<position>" },
|
128
133
|
# ...
|
129
134
|
# ],
|
130
135
|
# "optional" : {
|
@@ -147,11 +152,28 @@ class Quilt
|
|
147
152
|
end
|
148
153
|
if manifest[COMMON_KEY] && manifest[COMMON_KEY].is_a?(Array)
|
149
154
|
manifest[COMMON_KEY].each do |filename|
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
+
if (filename.is_a?(String))
|
156
|
+
begin
|
157
|
+
new_version[prefix][:common] =
|
158
|
+
"#{new_version[prefix][:common]}#{File.open(File.join(dir, filename), "rb").read}"
|
159
|
+
rescue Exception => e
|
160
|
+
log_error(" Could not load #{prefix.to_s} common module: #{filename}", e)
|
161
|
+
end
|
162
|
+
elsif (filename.is_a?(Hash))
|
163
|
+
filename.each do |actual_name, position_str|
|
164
|
+
position = position_str && VALID_POSITIONS.include?(position_str) ?
|
165
|
+
position_str.to_sym : :before_common
|
166
|
+
tmp_module_name = get_module_name(actual_name)
|
167
|
+
if (tmp_module_name)
|
168
|
+
tmp_module = get_module(actual_name, [], position, dir)
|
169
|
+
if (tmp_module)
|
170
|
+
new_version[prefix][:optional][tmp_module_name] = tmp_module
|
171
|
+
new_version[prefix][:base_modules].push(tmp_module_name)
|
172
|
+
end
|
173
|
+
else
|
174
|
+
log_error(" Could not extract #{prefix.to_s} module name from: #{filename}")
|
175
|
+
end
|
176
|
+
end
|
155
177
|
end
|
156
178
|
end
|
157
179
|
end
|
@@ -163,7 +185,8 @@ class Quilt
|
|
163
185
|
dependancies = value
|
164
186
|
elsif (value.is_a?(Hash))
|
165
187
|
dependancies = value[DEPENDANCIES_KEY] || []
|
166
|
-
position = value[POSITION_KEY] ?
|
188
|
+
position = value[POSITION_KEY] && VALID_POSITIONS.include?(value[POSITION_KEY]) ?
|
189
|
+
value[POSITION_KEY].to_sym : :optional
|
167
190
|
end
|
168
191
|
tmp_module_name = get_module_name(filename)
|
169
192
|
if (tmp_module_name)
|
@@ -302,6 +325,12 @@ class Quilt
|
|
302
325
|
elsif (selector.is_a?(Array))
|
303
326
|
modules = selector
|
304
327
|
end
|
328
|
+
base_modules = []
|
329
|
+
outversion[:base_modules].each do |mod|
|
330
|
+
next if modules.include?(mod)
|
331
|
+
base_modules.push(mod)
|
332
|
+
end
|
333
|
+
modules = base_modules.concat(modules)
|
305
334
|
|
306
335
|
# resolve dependancies
|
307
336
|
dynamics = dynamic_modules && dynamic_modules.is_a?(Hash) ? dynamic_modules : {}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-quilt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-07-
|
12
|
+
date: 2012-07-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|