Module: Platform::OS::OSX
- Defined in:
- lib/Platform/OS/OSX.rb,
lib/Platform/OS/OSX/SystemProfiler.rb
Defined Under Namespace
Modules: SystemProfiler
Class Method Summary collapse
- .application_path_for_application(application_name) ⇒ Object
- .application_paths(username = nil) ⇒ Object
- .applications_in_directory(directory) ⇒ Object
- .detect(return_version_string = false) ⇒ Object
- .leopard? ⇒ Boolean
- .lion? ⇒ Boolean
- .mavericks? ⇒ Boolean
- .mountain_lion? ⇒ Boolean
- .name ⇒ Object
- .snow_leopard? ⇒ Boolean
- .start(application_name) ⇒ Object
- .system_application_paths ⇒ Object
- .tiger? ⇒ Boolean
- .user_application_paths(username = nil) ⇒ Object
- .usernames ⇒ Object
- .version ⇒ Object
- .version_string ⇒ Object
Class Method Details
.application_path_for_application(application_name) ⇒ Object
83 84 85 86 87 88 |
# File 'lib/Platform/OS/OSX.rb', line 83 def application_path_for_application(application_name) application_paths.detect do |application_path| File.basename(application_path) == application_name || File.basename(application_path, '.app') == application_name end end |
.application_paths(username = nil) ⇒ Object
59 60 61 |
# File 'lib/Platform/OS/OSX.rb', line 59 def application_paths(username = nil) system_application_paths + user_application_paths(username) end |
.applications_in_directory(directory) ⇒ Object
94 95 96 |
# File 'lib/Platform/OS/OSX.rb', line 94 def applications_in_directory(directory) Files.new(path: directory, pattern: '*.app').collect{|file| file.path} end |
.detect(return_version_string = false) ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/Platform/OS/OSX.rb', line 27 def detect(return_version_string = false) if return_version_string SystemProfiler.system_version else self.methods(false).select{|e| e =~ /\?$/}.detect{|e| send(e)}.to_s.capture(/^(\w+)\?/) end end |
.leopard? ⇒ Boolean
39 40 41 |
# File 'lib/Platform/OS/OSX.rb', line 39 def leopard? SystemProfiler.major_system_version == 10 && SystemProfiler.minor_system_version == 5 end |
.lion? ⇒ Boolean
47 48 49 |
# File 'lib/Platform/OS/OSX.rb', line 47 def lion? SystemProfiler.major_system_version == 10 && SystemProfiler.minor_system_version == 7 end |
.mavericks? ⇒ Boolean
55 56 57 |
# File 'lib/Platform/OS/OSX.rb', line 55 def mavericks? SystemProfiler.major_system_version == 10 && SystemProfiler.minor_system_version == 9 end |
.mountain_lion? ⇒ Boolean
51 52 53 |
# File 'lib/Platform/OS/OSX.rb', line 51 def mountain_lion? SystemProfiler.major_system_version == 10 && SystemProfiler.minor_system_version == 8 end |
.name ⇒ Object
23 24 25 |
# File 'lib/Platform/OS/OSX.rb', line 23 def name detect.split('_').collect{|e| e.capitalize}.join(' ') end |
.snow_leopard? ⇒ Boolean
43 44 45 |
# File 'lib/Platform/OS/OSX.rb', line 43 def snow_leopard? SystemProfiler.major_system_version == 10 && SystemProfiler.minor_system_version == 6 end |
.start(application_name) ⇒ Object
90 91 92 |
# File 'lib/Platform/OS/OSX.rb', line 90 def start(application_name) system("open #{application_path_for_application(application_name)}") end |
.system_application_paths ⇒ Object
63 64 65 |
# File 'lib/Platform/OS/OSX.rb', line 63 def system_application_paths applications_in_directory('/Applications') end |
.tiger? ⇒ Boolean
35 36 37 |
# File 'lib/Platform/OS/OSX.rb', line 35 def tiger? SystemProfiler.major_system_version == 10 && SystemProfiler.minor_system_version == 4 end |
.user_application_paths(username = nil) ⇒ Object
67 68 69 70 71 72 73 74 75 |
# File 'lib/Platform/OS/OSX.rb', line 67 def user_application_paths(username = nil) if username applications_in_directory("/Users/#{username}/Applications") else usernames.collect do |username| applications_in_directory("/Users/#{username}/Applications") end.flatten end end |
.usernames ⇒ Object
77 78 79 80 81 |
# File 'lib/Platform/OS/OSX.rb', line 77 def usernames `dscl . list /users`.split("\n") .reject{|username| username =~ /^_/} .reject{|username| %w{daemon nobody root}.include?(username)} end |
.version ⇒ Object
15 16 17 |
# File 'lib/Platform/OS/OSX.rb', line 15 def version Version.new(version_string) end |
.version_string ⇒ Object
19 20 21 |
# File 'lib/Platform/OS/OSX.rb', line 19 def version_string detect(true) end |