Module: EC2::Platform
- Defined in:
- lib/ec2/platform/base/pipeline.rb,
lib/ec2/platform.rb,
lib/ec2/platform/base.rb,
lib/ec2/platform/linux.rb,
lib/ec2/platform/current.rb,
lib/ec2/platform/solaris.rb,
lib/ec2/platform/linux/tar.rb,
lib/ec2/platform/linux/mtab.rb,
lib/ec2/platform/linux/fstab.rb,
lib/ec2/platform/linux/image.rb,
lib/ec2/platform/linux/rsync.rb,
lib/ec2/platform/linux/uname.rb,
lib/ec2/platform/solaris/tar.rb,
lib/ec2/platform/solaris/mtab.rb,
lib/ec2/platform/solaris/fstab.rb,
lib/ec2/platform/solaris/image.rb,
lib/ec2/platform/solaris/rsync.rb,
lib/ec2/platform/solaris/uname.rb,
lib/ec2/platform/base/constants.rb,
lib/ec2/platform/linux/identity.rb,
lib/ec2/platform/linux/pipeline.rb,
lib/ec2/platform/linux/constants.rb,
lib/ec2/platform/solaris/identity.rb,
lib/ec2/platform/solaris/pipeline.rb,
lib/ec2/platform/base/architecture.rb,
lib/ec2/platform/solaris/constants.rb,
lib/ec2/platform/linux/architecture.rb,
lib/ec2/platform/solaris/architecture.rb
Overview
Defined Under Namespace
Modules: Base, Linux, Solaris Classes: PartitionType, Unknown, Unsupported
Constant Summary collapse
- IMPLEMENTATIONS =
[ [/darwin/i, :unix, :macosx ], [/linux/i, :unix, :linux ], [/freebsd/i, :unix, :freebsd], [/netbsd/i, :unix, :netbsd ], [/solaris/i, :unix, :solaris], [/irix/i, :unix, :irix ], [/cygwin/i, :unix, :cygwin ], [/mswin/i, :win32, :mswin ], [/mingw/i, :win32, :mingw ], [/bccwin/i, :win32, :bccwin ], [/wince/i, :win32, :wince ], [/vms/i, :vms, :vms ], [/os2/i, :os2, :os2 ], [nil, :unknown, :unknown], ]
- ARCHITECTURES =
[ [/(i\d86)/i, :i386 ], [/x86_64/i, :x86_64 ], [/ia64/i, :ia64 ], [/alpha/i, :alpha ], [/sparc/i, :sparc ], [/mips/i, :mips ], [/powerpc/i, :powerpc ], [nil, :unknown ], ]
- Current =
initialize
- PEER =
EC2::Platform::Solaris
Class Method Summary collapse
Class Method Details
.guess ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/ec2/platform.rb', line 42 def self.guess os = :unknown impl = :unknown arch = :unknown IMPLEMENTATIONS.each do |r, o, i| if r and RUBY_PLATFORM =~ r os, impl = [o, i] break end end ARCHITECTURES.each do |r, a| if r and RUBY_PLATFORM =~ r arch = a break end end return [os, impl, arch] end |
.initialize ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/ec2/platform/current.rb', line 33 def self.initialize return EC2::Platform::PEER if defined? EC2::Platform::PEER impl = Platform::IMPL base = impl.to_s # must be a known architecture raise Unknown.new(base), caller if base.nil? or impl == :unknown # base file must exist in same directory as this one file = Pathname.new(__FILE__).dirname + base raise Unsupported.new(base), caller unless File.exists? file # a require statement must succeed implemented = require "ec2/platform/#{base}" rescue false raise Unsupported.new(impl), caller unless implemented # cross fingers and hope the 'required' peer set the PEER constant raise Unsupported.new(impl), caller unless defined? EC2::Platform::PEER EC2::Platform::PEER end |