Sha256: c622f3eeb51ffd6a01fc36e2c437b5f86f0ecc5f198c0bbd1e89002dcb92fe89

Contents?: true

Size: 1007 Bytes

Versions: 1

Compression:

Stored size: 1007 Bytes

Contents

require "rbconfig"
require "rps/cli"
require "rps/runner"
require "rps/ui"

module RPS
  PLATFORMS = {
    :linux  => "LinuxProcess",
    :macosx => "MacOSXProcess"
  }

  def self.platform
    @platform ||= (
      host_os = RbConfig::CONFIG['host_os']
      case host_os
      when /mswin|msys|mingw32/
        :windows
      when /darwin|mac os/
        :macosx
      when /linux/
        :linux
      when /bsd/
        :bsd
      when /solaris/
        :solaris
      else
        raise "unknown os: #{host_os.inspect}"
      end
    )
  end

  def self.check_platform
    unless PLATFORMS.has_key? platform
      abort platform_message
    end
  end

  def self.all
    clazz = PLATFORMS[platform] or raise platform_message
    const_get(clazz).all
  end

  def self.platform_message
    "rps only works on #{SUPPORTED_PLATFORMS.inspect} at the moment"
  end

  autoload :LinuxProcess, "rps/linux_process"
  autoload :BsdProcess, "rps/bsd_process"
  autoload :MacOSXProcess, "rps/macosx_process"

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rps-0.0.3 lib/rps.rb