Sha256: 5a683f92c497e9ca1a9d832a4fef1e2ad2abb556f8734ce982e47325790edb79

Contents?: true

Size: 1.42 KB

Versions: 13

Compression:

Stored size: 1.42 KB

Contents

require 'rbconfig'

class SystemWrapper

  # static method for use in defaults
  def self.windows?
    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

13 entries across 13 versions & 1 rubygems

Version Path
ceedling-0.10.0 new_project_template/vendor/ceedling/lib/system_wrapper.rb
ceedling-0.9.4 new_project_template/vendor/ceedling/lib/system_wrapper.rb
ceedling-0.9.2 new_project_template/vendor/ceedling/lib/system_wrapper.rb
ceedling-0.9.0 new_project_template/vendor/ceedling/lib/system_wrapper.rb
ceedling-0.0.18 new_project_template/vendor/ceedling/lib/system_wrapper.rb
ceedling-0.0.17 new_project_template/vendor/ceedling/lib/system_wrapper.rb
ceedling-0.0.16 new_project_template/vendor/ceedling/lib/system_wrapper.rb
ceedling-0.0.15 new_project_template/vendor/ceedling/lib/system_wrapper.rb
ceedling-0.0.14 new_project_template/vendor/ceedling/lib/system_wrapper.rb
ceedling-0.0.13 new_project_template/vendor/ceedling/lib/system_wrapper.rb
ceedling-0.0.12 new_project_template/vendor/ceedling/lib/system_wrapper.rb
ceedling-0.0.8 new_project_template/vendor/ceedling/lib/system_wrapper.rb
ceedling-0.0.7 new_project_template/vendor/ceedling/lib/system_wrapper.rb