summaryrefslogtreecommitdiff
path: root/lib/systemu.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/systemu.rb')
-rw-r--r--lib/systemu.rb14
1 files changed, 11 insertions, 3 deletions
diff --git a/lib/systemu.rb b/lib/systemu.rb
index 71348bb..9e44d9e 100644
--- a/lib/systemu.rb
+++ b/lib/systemu.rb
@@ -14,7 +14,7 @@ class SystemUniversal
#
# constants
#
- SystemUniversal::VERSION = '2.0.0' unless SystemUniversal.send(:const_defined?, :VERSION)
+ SystemUniversal::VERSION = '2.1.0' unless SystemUniversal.send(:const_defined?, :VERSION)
def SystemUniversal.version() SystemUniversal::VERSION end
def version() SystemUniversal::VERSION end
#
@@ -34,8 +34,12 @@ class SystemUniversal
system('%s -e 42' % 'ruby') ? 'ruby' : warn('no ruby in PATH/CONFIG')
end
- class << self
+ class << SystemUniversal
%w( host ppid pid ruby turd ).each{|a| attr_accessor a}
+
+ def quote(*words)
+ words.map{|word| word.inspect}.join(' ')
+ end
end
#
@@ -69,7 +73,7 @@ class SystemUniversal
thread = nil
quietly{
- IO.popen "#{ @ruby } #{ c['program'] }", 'r+' do |pipe|
+ IO.popen "#{ quote(@ruby) } #{ quote(c['program']) }", 'r+' do |pipe|
line = pipe.gets
case line
when %r/^pid: \d+$/
@@ -113,6 +117,10 @@ class SystemUniversal
end
end
+ def quote *args, &block
+ SystemUniversal.quote(*args, &block)
+ end
+
def new_thread cid, block
q = Queue.new
Thread.new(cid) do |cid|