Platform 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. data/README +52 -0
  2. data/lib/platform.rb +101 -0
  3. metadata +39 -0
data/README ADDED
@@ -0,0 +1,52 @@
1
+ #
2
+ # Platform
3
+ #
4
+ # author: Matt Mower <self@mattmower.com>
5
+ # license: LGPL
6
+ #
7
+ #
8
+ # The Platform library offers a simple, reliable, means of
9
+ # determining what platform Ruby is running on. Underlying
10
+ # Platform is the RUBY_PLATFORM constant. This library is
11
+ # parsing this constant for information. You could easily do
12
+ # this yourself. We've just taken the hassle out of it for
13
+ # you and hopefully covered a few of the more unusual cases
14
+ # you mightn't have thought of yourself.
15
+ #
16
+ # On the other hand, if you've got cases we haven't please
17
+ # mail the authors.
18
+ #
19
+ # ==Use
20
+ #
21
+ # require 'platform'
22
+ #
23
+ # defines
24
+ #
25
+ # Platform::OS
26
+ # :unix
27
+ # :win32
28
+ # :vms
29
+ # :os2
30
+ # :unknown
31
+ #
32
+ # Platform::IMPL
33
+ # :macosx
34
+ # :linux
35
+ # :freebsd
36
+ # :netbsd
37
+ # :mswin
38
+ # :cygwin
39
+ # :mingw
40
+ # :bccwin
41
+ # :wince
42
+ # :vms
43
+ # :os2
44
+ # :unknown
45
+ #
46
+ # Platform::ARCH
47
+ # :x86
48
+ # :ia64
49
+ # :powerpc
50
+ # :alpha
51
+ # :unknown
52
+ #
@@ -0,0 +1,101 @@
1
+ #
2
+ # platform.rb: naive platform detection for Ruby
3
+ # author: Matt Mower <self@mattmower.com>
4
+ #
5
+
6
+ # == Platform
7
+ #
8
+ # Platform is a simple module which parses the Ruby constant
9
+ # RUBY_PLATFORM and works out the OS, it's implementation,
10
+ # and the architecture it's running on.
11
+ #
12
+ # The motivation for writing this was coming across a case where
13
+ #
14
+ # +if RUBY_PLATFORM =~ /win/+
15
+ #
16
+ # didn't behave as expected (i.e. on powerpc-darwin-8.1.0)
17
+ #
18
+ # It is hoped that providing a library for parsing the platform
19
+ # means that we can cover all the cases and have something which
20
+ # works reliably 99% of the time.
21
+ #
22
+ # Please report any anomalies or new combinations to the author(s).
23
+ #
24
+ # == Use
25
+ #
26
+ # require "platform"
27
+ #
28
+ # defines
29
+ #
30
+ # Platform::OS (:unix,:win32,:vms,:os2)
31
+ # Platform::IMPL (:macosx,:linux,:mswin)
32
+ # Platform::ARCH (:powerpc,:x86,:alpha)
33
+ #
34
+ # if an unknown configuration is encountered any (or all) of
35
+ # these constant may have the value :unknown.
36
+ #
37
+ # To display the combination for your setup run
38
+ #
39
+ # ruby platform.rb
40
+ #
41
+ module Platform
42
+
43
+ if RUBY_PLATFORM =~ /darwin/i
44
+ OS = :unix
45
+ IMPL = :macosx
46
+ elsif RUBY_PLATFORM =~ /linux/i
47
+ OS = :unix
48
+ IMPL = :linux
49
+ elsif RUBY_PLATFORM =~ /freebsd/i
50
+ OS = :unix
51
+ IMPL = :freebsd
52
+ elsif RUBY_PLATFORM =~ /netbsd/i
53
+ OS = :unix
54
+ IMPL = :netbsd
55
+ elsif RUBY_PLATFORM =~ /mswin/i
56
+ OS = :win32
57
+ IMPL = :mswin
58
+ elsif RUBY_PLATFORM =~ /cygwin/i
59
+ OS = :unix
60
+ IMPL = :cygwin
61
+ elsif RUBY_PLATFORM =~ /mingw/i
62
+ OS = :win32
63
+ IMPL = :mingw
64
+ elsif RUBY_PLATFORM =~ /bccwin/i
65
+ OS = :win32
66
+ IMPL = :bccwin
67
+ elsif RUBY_PLATFORM =~ /wince/i
68
+ OS = :win32
69
+ IMPL = :wince
70
+ elsif RUBY_PLATFORM =~ /vms/i
71
+ OS = :vms
72
+ IMPL = :vms
73
+ elsif RUBY_PLATFORM =~ /os2/i
74
+ OS = :os2
75
+ IMPL = :os2 # maybe there is some better choice here?
76
+ else
77
+ OS = :unknown
78
+ IMPL = :unknown
79
+ end
80
+
81
+ # whither AIX, SOLARIS, and the other unixen?
82
+
83
+ if RUBY_PLATFORM =~ /(i\d86)/i
84
+ ARCH = :x86
85
+ elsif RUBY_PLATFORM =~ /ia64/i
86
+ ARCH = :ia64
87
+ elsif RUBY_PLATFORM =~ /powerpc/i
88
+ ARCH = :powerpc
89
+ elsif RUBY_PLATFORM =~ /alpha/i
90
+ ARCH = :alpha
91
+ else
92
+ ARCH = :unknown
93
+ end
94
+
95
+ # What about AMD, Turion, Motorola, etc..?
96
+
97
+ end
98
+
99
+ if __FILE__ == $0
100
+ puts "Platform OS=#{Platform::OS}, IMPL=#{Platform::IMPL}, ARCH=#{Platform::ARCH}"
101
+ end
metadata ADDED
@@ -0,0 +1,39 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.8.10
3
+ specification_version: 1
4
+ name: Platform
5
+ version: !ruby/object:Gem::Version
6
+ version: 0.2.0
7
+ date: 2005-06-29
8
+ summary: Hopefully robust platform sensing
9
+ require_paths:
10
+ - lib
11
+ email: self@mattmower.com
12
+ homepage: http://rubyforge.org/projects/platform/
13
+ rubyforge_project:
14
+ description:
15
+ autorequire: platform
16
+ default_executable:
17
+ bindir: bin
18
+ has_rdoc: true
19
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
20
+ requirements:
21
+ -
22
+ - ">"
23
+ - !ruby/object:Gem::Version
24
+ version: 0.0.0
25
+ version:
26
+ platform: ruby
27
+ authors:
28
+ - Matt Mower
29
+ files:
30
+ - lib/platform.rb
31
+ - README
32
+ test_files: []
33
+ rdoc_options: []
34
+ extra_rdoc_files:
35
+ - README
36
+ executables: []
37
+ extensions: []
38
+ requirements: []
39
+ dependencies: []