which_osx 1.0.4 → 1.0.5
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.
- data/README.md +28 -18
- data/Rakefile +11 -11
- data/bin/which_osx +5 -0
- data/lib/version.rb +1 -1
- data/lib/which_osx.rb +55 -1
- data/spec/which_osx_spec.rb +9 -7
- metadata +41 -6
data/README.md
CHANGED
@@ -1,12 +1,10 @@
|
|
1
1
|
# which_osx
|
2
2
|
|
3
|
-

|
4
|
-
|
5
3
|
- http://github.com/imkmf/which_osx
|
6
4
|
|
7
5
|
## DESCRIPTION:
|
8
6
|
|
9
|
-
A simple ruby program for outputting some information about your Mac.
|
7
|
+
A simple ruby program for outputting some information about your Mac's version, as well as some clever ways of intepreting it.
|
10
8
|
|
11
9
|
## FEATURES/PROBLEMS:
|
12
10
|
|
@@ -16,36 +14,48 @@ A simple ruby program for outputting some information about your Mac.
|
|
16
14
|
|
17
15
|
## USAGE:
|
18
16
|
|
19
|
-
|
17
|
+
By requiring which_osx, you gain access to a couple useful methods:
|
18
|
+
|
19
|
+
### WhichOSX.version
|
20
|
+
|
21
|
+
puts WhichOSX.version
|
22
|
+
=> 10.8.2
|
20
23
|
|
21
|
-
|
24
|
+
### WhichOSX.full_name
|
25
|
+
|
26
|
+
puts WhichOSX.full_name
|
27
|
+
=> Mac OS X 10.8.2
|
22
28
|
|
23
|
-
|
24
|
-
def self.test
|
25
|
-
who_am_i = WhichOSX.version
|
26
|
-
end
|
27
|
-
end
|
29
|
+
### WhichOSX.short_name
|
28
30
|
|
29
|
-
|
31
|
+
puts WhichOSX.short_name
|
32
|
+
=> Mountain Lion
|
30
33
|
|
31
|
-
|
32
|
-
=> Mac OS X 10.7.3
|
34
|
+
WhichOSX version 1.0.5 introduces boolean methods for checking the operating system:
|
33
35
|
|
34
|
-
|
35
|
-
|
36
|
+
### WhichOSX.is_mountain_lion
|
37
|
+
|
38
|
+
WhichOSX.is_mountain_lion
|
39
|
+
=> true
|
40
|
+
|
41
|
+
Includes `is_mountain_lion`, `is_lion`, `is_snow_leopard`, `is_leopard`, and `is_tiger`.
|
42
|
+
|
43
|
+
### Binary
|
36
44
|
|
37
45
|
Running from the command line returns the OS version by default:
|
38
46
|
|
39
47
|
$ which_osx
|
40
|
-
=> 10.
|
48
|
+
=> This Mac is currently running 10.8.2.
|
41
49
|
|
42
50
|
## REQUIREMENTS:
|
43
51
|
|
44
|
-
-
|
52
|
+
- [Rspec](http://rspec.info)
|
53
|
+
- [YARD](http://yardoc.org) (and [redcarpet](http://yardoc.org) for Markdown formatting)
|
54
|
+
|
45
55
|
|
46
56
|
## INSTALL:
|
47
57
|
|
48
|
-
|
58
|
+
gem install which_osx
|
49
59
|
|
50
60
|
## DEVELOPERS:
|
51
61
|
|
data/Rakefile
CHANGED
@@ -3,24 +3,24 @@ require 'rubygems/package_task'
|
|
3
3
|
require 'rake/rdoctask' unless RUBY_VERSION >= '1.9.0'
|
4
4
|
require 'rdoc/task' unless RUBY_VERSION <= '1.9.0'
|
5
5
|
require 'rubygems/specification'
|
6
|
-
require '
|
6
|
+
require 'rspec/core/rake_task'
|
7
|
+
require 'yard'
|
7
8
|
|
8
9
|
spec = Gem::Specification.load("#{File.dirname(__FILE__)}/which_osx.gemspec")
|
9
10
|
|
10
11
|
task :default => :spec
|
11
12
|
|
12
|
-
|
13
|
-
|
14
|
-
t.
|
15
|
-
t.
|
16
|
-
t.libs << ["spec", '.']
|
13
|
+
# Generate docs
|
14
|
+
YARD::Rake::YardocTask.new do |t|
|
15
|
+
t.files = ['lib/**/*.rb'] # optional
|
16
|
+
t.options = ['--any', '--extra', '--opts'] # optional
|
17
17
|
end
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
19
|
+
# Run specs
|
20
|
+
desc "Run specs"
|
21
|
+
RSpec::Core::RakeTask.new(:core) do |spec|
|
22
|
+
spec.pattern = 'spec/*_spec.rb'
|
23
|
+
spec.rspec_opts = ['--backtrace']
|
24
24
|
end
|
25
25
|
|
26
26
|
# Gem tasks
|
data/bin/which_osx
ADDED
data/lib/version.rb
CHANGED
data/lib/which_osx.rb
CHANGED
@@ -7,7 +7,13 @@ output = `sw_vers`.scan(/\d\d\.\d\.\d/).flatten.to_s
|
|
7
7
|
output.delete! "[]\""
|
8
8
|
VERSION = output
|
9
9
|
|
10
|
-
|
10
|
+
class WhichOSX
|
11
|
+
|
12
|
+
# Get the version of OS X currently running.
|
13
|
+
# This method returns something in the format of
|
14
|
+
# "XX.X.X" - it is used to help the rest of the commands
|
15
|
+
# execute properly.
|
16
|
+
|
11
17
|
def self.version
|
12
18
|
short_version = VERSION
|
13
19
|
return short_version
|
@@ -17,11 +23,17 @@ module WhichOSX
|
|
17
23
|
|
18
24
|
end
|
19
25
|
|
26
|
+
# Get the full name including version.
|
27
|
+
# Will always return "Mac OS X XX.X.X"
|
28
|
+
|
20
29
|
def self.full_name
|
21
30
|
full_name = "Mac OS X " + VERSION
|
22
31
|
return full_name
|
23
32
|
end
|
24
33
|
|
34
|
+
# Returns the common name for the operating system,
|
35
|
+
# such as "Mountain Lion" or "Tiger".
|
36
|
+
|
25
37
|
def self.short_name
|
26
38
|
# We just want the major versions -- 10.6, 10.7, etc.
|
27
39
|
major_version = VERSION.chop.chop
|
@@ -41,4 +53,46 @@ module WhichOSX
|
|
41
53
|
|
42
54
|
return short_name
|
43
55
|
end
|
56
|
+
|
57
|
+
# A helper method for boolean checks. Compares the short name
|
58
|
+
# to the given version name and returns true or false accordingly.
|
59
|
+
|
60
|
+
def self.is(version)
|
61
|
+
if short_name == version
|
62
|
+
return true
|
63
|
+
else
|
64
|
+
return false
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
# Checks if the operating system is currently running Mountain Lion.
|
69
|
+
|
70
|
+
def self.is_mountain_lion
|
71
|
+
self.is("Mountain Lion")
|
72
|
+
end
|
73
|
+
|
74
|
+
# Checks if the operating system is currently running Lion.
|
75
|
+
|
76
|
+
def self.is_lion
|
77
|
+
self.is("Lion")
|
78
|
+
end
|
79
|
+
|
80
|
+
# Checks if the operating system is currently running Snow Leopard.
|
81
|
+
|
82
|
+
def self.is_snow_leopard
|
83
|
+
self.is("Snow Leopard")
|
84
|
+
end
|
85
|
+
|
86
|
+
# Checks if the operating system is currently running Leopard.
|
87
|
+
|
88
|
+
def self.is_leopard
|
89
|
+
self.is("Leopard")
|
90
|
+
end
|
91
|
+
|
92
|
+
# Checks if the operating system is currently running Tiger.
|
93
|
+
|
94
|
+
def self.is_tiger
|
95
|
+
self.is("Tiger")
|
96
|
+
end
|
97
|
+
|
44
98
|
end
|
data/spec/which_osx_spec.rb
CHANGED
@@ -9,23 +9,19 @@ require 'which_osx'
|
|
9
9
|
end
|
10
10
|
|
11
11
|
it "should convert version to a nice string" do
|
12
|
-
WhichOSX.version.should =~ /[0-9]
|
12
|
+
WhichOSX.version.should =~ /1[0-9].[0-9].[0-9]/
|
13
13
|
end
|
14
|
-
|
15
|
-
# it "should tell you when you're not on Mac OS X" do
|
16
|
-
# # how best to mock a non-Mac OS X environment?
|
17
|
-
# end
|
18
14
|
end
|
19
15
|
|
20
16
|
describe "full name" do
|
21
17
|
it "should return the full name of the OS" do
|
22
|
-
WhichOSX.full_name.should =~ /Mac OS X [0-9]
|
18
|
+
WhichOSX.full_name.should =~ /Mac OS X 1[0-9].[0-9].[0-9]/
|
23
19
|
end
|
24
20
|
end
|
25
21
|
|
26
22
|
describe "short name" do
|
27
23
|
it "should chomp the version into a major release number" do
|
28
|
-
WhichOSX.version.chop.chop.should =~ /[0-9]
|
24
|
+
WhichOSX.version.chop.chop.should =~ /1[0-9].[0-9]/
|
29
25
|
end
|
30
26
|
|
31
27
|
it "should return a major release name (Lion, Leopard, etc.)" do
|
@@ -33,3 +29,9 @@ require 'which_osx'
|
|
33
29
|
end
|
34
30
|
end
|
35
31
|
|
32
|
+
describe "is... checks" do
|
33
|
+
it "should return true if the OS is Mountain Lion" do
|
34
|
+
WhichOSX.is_mountain_lion.should be_true
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: which_osx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Kristian Freeman
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-11-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
@@ -27,6 +27,38 @@ dependencies:
|
|
27
27
|
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: 1.3.2
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: yard
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: redcarpet
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
30
62
|
- !ruby/object:Gem::Dependency
|
31
63
|
name: rake
|
32
64
|
requirement: !ruby/object:Gem::Requirement
|
@@ -46,8 +78,9 @@ dependencies:
|
|
46
78
|
description: A simple ruby program for returning the version number of the current
|
47
79
|
Mac OS X system.
|
48
80
|
email:
|
49
|
-
- kristian@
|
50
|
-
executables:
|
81
|
+
- kristian@kristianfreeman.com
|
82
|
+
executables:
|
83
|
+
- which_osx
|
51
84
|
extensions: []
|
52
85
|
extra_rdoc_files: []
|
53
86
|
files:
|
@@ -58,6 +91,7 @@ files:
|
|
58
91
|
- lib/version.rb
|
59
92
|
- lib/which_osx.rb
|
60
93
|
- spec/which_osx_spec.rb
|
94
|
+
- bin/which_osx
|
61
95
|
homepage: http://github.com/imkmf/which_osx
|
62
96
|
licenses: []
|
63
97
|
post_install_message:
|
@@ -78,9 +112,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
78
112
|
version: '0'
|
79
113
|
requirements: []
|
80
114
|
rubyforge_project:
|
81
|
-
rubygems_version: 1.8.
|
115
|
+
rubygems_version: 1.8.23
|
82
116
|
signing_key:
|
83
117
|
specification_version: 3
|
84
118
|
summary: A simple ruby program for returning the version number of the current Mac
|
85
119
|
OS X system.
|
86
120
|
test_files: []
|
121
|
+
has_rdoc: false
|