This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
# An extended rendition of the Ruby's standard RbConfig module.
|
||||
module RbConfig
|
||||
|
||||
#
|
||||
def self.inspect
|
||||
CONFIG.inspect
|
||||
end
|
||||
|
||||
# Methodized lookup of config.
|
||||
def self.method_missing(s,*a,&b)
|
||||
s = s.to_s
|
||||
if CONFIG.key?(s)
|
||||
CONFIG[s]
|
||||
elsif CONFIG.key?(s.upcase)
|
||||
CONFIG[s.upcase]
|
||||
else
|
||||
super(s,*a,&b)
|
||||
end
|
||||
end
|
||||
|
||||
# TODO: parse configure_args into methods too?
|
||||
|
||||
# In case rubygems has already defined it.
|
||||
unless method_defined?(:datadir)
|
||||
# Return the path to the data directory associated with the
|
||||
# given library/package name. Normally this is just
|
||||
#
|
||||
# "#{Config::CONFIG['datadir']}/#{name}"
|
||||
#
|
||||
# but may be modified by tools like RubyGems to handle
|
||||
# versioned data directories.
|
||||
def self.datadir(package_name)
|
||||
File.join(CONFIG['datadir'], package_name)
|
||||
end
|
||||
end
|
||||
|
||||
#
|
||||
def self.host_os
|
||||
CONFIG['host_os']
|
||||
end
|
||||
|
||||
def linux?
|
||||
host_os =~ /linux|cygwin/
|
||||
end
|
||||
|
||||
def mac?
|
||||
host_os =~ /mac|darwin/
|
||||
end
|
||||
|
||||
def bsd?
|
||||
host_os =~ /bsd/
|
||||
end
|
||||
|
||||
def windows?
|
||||
host_os =~ /mswin|mingw/
|
||||
end
|
||||
|
||||
def solaris?
|
||||
host_os =~ /solaris|sunos/
|
||||
end
|
||||
|
||||
# TODO: who knows what symbian returns?
|
||||
def symbian?
|
||||
host_os =~ /symbian/
|
||||
end
|
||||
|
||||
#
|
||||
def posix?
|
||||
linux? or mac? or bsd? or solaris? or begin
|
||||
fork do end
|
||||
true
|
||||
rescue NotImplementedError, NoMethodError
|
||||
false
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user