Sha256: 5b709184c5a96994dfb2b3be6e1ebf3c2a584959ba9f18467caea3a2b7ff33b4

Contents?: true

Size: 1.44 KB

Versions: 16

Compression:

Stored size: 1.44 KB

Contents

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

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
ceedling-0.24.0 lib/ceedling/system_wrapper.rb
ceedling-0.22.0 lib/ceedling/system_wrapper.rb
ceedling-0.21.0 lib/ceedling/system_wrapper.rb
ceedling-0.20.3 lib/ceedling/system_wrapper.rb
ceedling-0.20.2 lib/ceedling/system_wrapper.rb
ceedling-0.19.0 lib/ceedling/system_wrapper.rb
ceedling-0.18.0 lib/ceedling/system_wrapper.rb
ceedling-0.17.0 lib/ceedling/system_wrapper.rb
ceedling-0.16.0 lib/ceedling/system_wrapper.rb
ceedling-0.15.6 lib/ceedling/system_wrapper.rb
ceedling-0.15.5 lib/ceedling/system_wrapper.rb
ceedling-0.15.4 lib/ceedling/system_wrapper.rb
ceedling-0.15.3 lib/ceedling/system_wrapper.rb
ceedling-0.15.2 lib/ceedling/system_wrapper.rb
ceedling-0.15.1 lib/ceedling/system_wrapper.rb
ceedling-0.15.0 lib/ceedling/system_wrapper.rb