diff options
Diffstat (limited to 'lib/systemu.rb')
-rw-r--r-- | lib/systemu.rb | 14 |
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| |