From 0e2073b4300d6e6c880c1788300a5c2c1ad7ec65 Mon Sep 17 00:00:00 2001 From: Aman Gupta Date: Wed, 11 Feb 2015 17:56:18 -0800 Subject: make ruby_exe resolution lazy --- lib/systemu.rb | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/lib/systemu.rb b/lib/systemu.rb index c32b9bc..bc5b577 100644 --- a/lib/systemu.rb +++ b/lib/systemu.rb @@ -29,16 +29,20 @@ class SystemUniversal @pid = Process.pid @turd = ENV['SYSTEMU_TURD'] - c = begin; ::RbConfig::CONFIG; rescue NameError; ::Config::CONFIG; end - ruby = File.join(c['bindir'], c['ruby_install_name']) << c['EXEEXT'] - @ruby = if system('%s -e 42' % ruby) - ruby - else - system('%s -e 42' % 'ruby') ? 'ruby' : warn('no ruby in PATH/CONFIG') + def self.ruby + return @ruby if @ruby + + c = begin; ::RbConfig::CONFIG; rescue NameError; ::Config::CONFIG; end + ruby = File.join(c['bindir'], c['ruby_install_name']) << c['EXEEXT'] + @ruby = if system('%s -e 42' % ruby) + ruby + else + system('%s -e 42' % 'ruby') ? 'ruby' : warn('no ruby in PATH/CONFIG') + end end class << SystemUniversal - %w( host ppid pid ruby turd ).each{|a| attr_accessor a} + %w( host ppid pid turd ).each{|a| attr_accessor a} def quote(*words) words.map{|word| word.inspect}.join(' ') -- cgit v1.2.1 From b8f8b78a3e72a9dc4ce2ac885cc5cdb742f81d3b Mon Sep 17 00:00:00 2001 From: Aman Gupta Date: Wed, 18 Mar 2015 11:59:24 -0700 Subject: initialize variable --- lib/systemu.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/systemu.rb b/lib/systemu.rb index bc5b577..f3e419c 100644 --- a/lib/systemu.rb +++ b/lib/systemu.rb @@ -28,6 +28,7 @@ class SystemUniversal @ppid = Process.ppid @pid = Process.pid @turd = ENV['SYSTEMU_TURD'] + @ruby = nil def self.ruby return @ruby if @ruby -- cgit v1.2.1