77 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
require 'rbconfig'
 | 
						|
 | 
						|
class SystemWrapper
 | 
						|
 | 
						|
  # static method for use in defaults
 | 
						|
  def self.windows?
 | 
						|
    return ((RbConfig::CONFIG['host_os'] =~ /mswin|mingw/) ? true : false) if defined?(RbConfig)
 | 
						|
    return ((Config::CONFIG['host_os'] =~ /mswin|mingw/) ? true : false)
 | 
						|
  end
 | 
						|
 | 
						|
  # class method so as to be mockable for tests
 | 
						|
  def windows?
 | 
						|
    return SystemWrapper.windows?
 | 
						|
  end
 | 
						|
  
 | 
						|
  def module_eval(string)
 | 
						|
    return Object.module_eval("\"" + string + "\"")
 | 
						|
  end
 | 
						|
 | 
						|
  def eval(string)
 | 
						|
    return eval(string)
 | 
						|
  end
 | 
						|
 | 
						|
  def search_paths
 | 
						|
    return ENV['PATH'].split(File::PATH_SEPARATOR)
 | 
						|
  end
 | 
						|
 | 
						|
  def cmdline_args
 | 
						|
    return ARGV
 | 
						|
  end
 | 
						|
 | 
						|
  def env_set(name, value)
 | 
						|
    ENV[name] = value
 | 
						|
  end
 | 
						|
  
 | 
						|
  def env_get(name)
 | 
						|
    return ENV[name]
 | 
						|
  end
 | 
						|
 | 
						|
  def time_now
 | 
						|
    return Time.now.asctime
 | 
						|
  end
 | 
						|
 | 
						|
  def shell_backticks(command)
 | 
						|
    return {
 | 
						|
      :output    => `#{command}`.freeze,
 | 
						|
      :exit_code => ($?.exitstatus).freeze
 | 
						|
    }
 | 
						|
  end
 | 
						|
 | 
						|
  def shell_system(command)
 | 
						|
    system( command )
 | 
						|
    return {
 | 
						|
      :output    => ''.freeze,
 | 
						|
      :exit_code => ($?.exitstatus).freeze
 | 
						|
    }
 | 
						|
  end
 | 
						|
  
 | 
						|
  def add_load_path(path)
 | 
						|
    $LOAD_PATH.unshift(path)
 | 
						|
  end
 | 
						|
  
 | 
						|
  def require_file(path)
 | 
						|
    require(path)
 | 
						|
  end
 | 
						|
 | 
						|
  def ruby_success
 | 
						|
    return ($!.nil? || $!.is_a?(SystemExit) && $!.success?)
 | 
						|
  end
 | 
						|
 | 
						|
  def constants_include?(item)
 | 
						|
    # forcing to strings provides consistency across Ruby versions
 | 
						|
    return Object.constants.map{|constant| constant.to_s}.include?(item.to_s)
 | 
						|
  end
 | 
						|
  
 | 
						|
end
 |