sml-rubber 0.9.7 → 0.9.8
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/VERSION +1 -1
- data/generators/vulcanize/templates/base/config/deploy.rb +2 -0
- data/lib/rubber/recipes/rubber/setup.rb +54 -19
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.9.
|
1
|
+
0.9.8
|
@@ -247,36 +247,71 @@ namespace :rubber do
|
|
247
247
|
def gem_helper(update=false)
|
248
248
|
cmd = update ? "update" : "install"
|
249
249
|
|
250
|
-
|
251
|
-
#
|
252
|
-
# first do the gems that the user specified versions for
|
250
|
+
|
253
251
|
opts = get_host_options('gems') do |gem_list|
|
254
252
|
expanded_gem_list = []
|
255
253
|
gem_list.each do |gem_spec|
|
256
254
|
if gem_spec.is_a?(Array)
|
257
|
-
expanded_gem_list << "#{gem_spec[0]}
|
255
|
+
expanded_gem_list << "#{gem_spec[0]}:#{gem_spec[1]}"
|
256
|
+
else
|
257
|
+
expanded_gem_list << gem_spec
|
258
258
|
end
|
259
259
|
end
|
260
260
|
expanded_gem_list.join(' ')
|
261
261
|
end
|
262
|
+
|
262
263
|
if opts.size > 0
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
264
|
+
# Rubygems always installs even if the gem is already installed
|
265
|
+
# When providing versions, rubygems fails unless versions are provided for all gems
|
266
|
+
# This helper script works around these issues by installing gems only if they
|
267
|
+
# aren't already installed, and separates versioned/unversioned into two separate
|
268
|
+
# calls to rubygems
|
269
|
+
script = prepare_script 'gem_helper', <<-'ENDSCRIPT'
|
270
|
+
ruby - $@ <<-'EOF'
|
267
271
|
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
272
|
+
gem_cmd = ARGV[0]
|
273
|
+
gems = ARGV[1..-1]
|
274
|
+
cmd = "gem #{gem_cmd} --no-rdoc --no-ri"
|
275
|
+
|
276
|
+
to_install = {}
|
277
|
+
to_install_ver = {}
|
278
|
+
# gem list passed in, possibly with versions, as "gem1 gem2:1.2 gem3"
|
279
|
+
gems.each do |gem_spec|
|
280
|
+
parts = gem_spec.split(':')
|
281
|
+
if parts[1]
|
282
|
+
to_install_ver[parts[0]] = parts[1]
|
283
|
+
else
|
284
|
+
to_install[parts[0]] = true
|
285
|
+
end
|
274
286
|
end
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
287
|
+
|
288
|
+
installed = {}
|
289
|
+
`gem list --local`.each do |line|
|
290
|
+
parts = line.scan(/(.*) \((.*)\)/).first
|
291
|
+
next unless parts && parts.size == 2
|
292
|
+
installed[parts[0]] = parts[1].split(",")
|
293
|
+
end
|
294
|
+
|
295
|
+
to_install.delete_if {|g, v| installed.has_key?(g) } if gem_cmd == 'install'
|
296
|
+
to_install_ver.delete_if {|g, v| installed.has_key?(g) && installed[g].include?(v) }
|
297
|
+
|
298
|
+
# when versions are provided for a gem, rubygems fails unless versions
|
299
|
+
# are provided for all gems so we need to do the two groups separately
|
300
|
+
if to_install.size > 0
|
301
|
+
gem_list = to_install.keys.join(' ')
|
302
|
+
system "#{cmd} #{gem_list}"
|
303
|
+
fail "Unable to install gems" if $?.exitstatus > 0
|
304
|
+
end
|
305
|
+
if to_install_ver.size > 0
|
306
|
+
gem_list = to_install_ver.collect {|g, v| "#{g} -v #{v}"}.join(' ')
|
307
|
+
system "#{cmd} #{gem_list}"
|
308
|
+
fail "Unable to install versioned gems" if $?.exitstatus > 0
|
309
|
+
end
|
310
|
+
|
311
|
+
'EOF'
|
312
|
+
ENDSCRIPT
|
313
|
+
|
314
|
+
sudo "sh #{script} #{cmd} $CAPISTRANO:VAR$", opts do |ch, str, data|
|
280
315
|
handle_gem_prompt(ch, data, str)
|
281
316
|
end
|
282
317
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sml-rubber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Conway
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-08-
|
12
|
+
date: 2009-08-24 00:00:00 -07:00
|
13
13
|
default_executable: vulcanize
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|