module Platform::OS::OSX

Public Instance Methods

application_path_for_application(application_name) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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?() click to toggle source
# File lib/Platform/OS/OSX.rb, line 39
def leopard?
  SystemProfiler.major_system_version == 10 && SystemProfiler.minor_system_version == 5
end
lion?() click to toggle source
# File lib/Platform/OS/OSX.rb, line 47
def lion?
  SystemProfiler.major_system_version == 10 && SystemProfiler.minor_system_version == 7
end
mavericks?() click to toggle source
# File lib/Platform/OS/OSX.rb, line 55
def mavericks?
  SystemProfiler.major_system_version == 10 && SystemProfiler.minor_system_version == 9
end
mountain_lion?() click to toggle source
# File lib/Platform/OS/OSX.rb, line 51
def mountain_lion?
  SystemProfiler.major_system_version == 10 && SystemProfiler.minor_system_version == 8
end
name() click to toggle source
# File lib/Platform/OS/OSX.rb, line 23
def name
  detect.split('_').collect{|e| e.capitalize}.join(' ')
end
snow_leopard?() click to toggle source
# 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) click to toggle source
# File lib/Platform/OS/OSX.rb, line 90
def start(application_name)
  system("open #{application_path_for_application(application_name)}")
end
system_application_paths() click to toggle source
# File lib/Platform/OS/OSX.rb, line 63
def system_application_paths
  applications_in_directory('/Applications')
end
tiger?() click to toggle source
# 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) click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# File lib/Platform/OS/OSX.rb, line 15
def version
  Version.new(version_string)
end
version_string() click to toggle source
# File lib/Platform/OS/OSX.rb, line 19
def version_string
  detect(true)
end