class OsxApp

this class describes OSX Application

Attributes

name[R]
path[R]

Public Class Methods

new(name_or_path) click to toggle source
# File lib/osx_app.rb, line 9
def initialize(name_or_path)
  if File.directory?(name_or_path)
    @name = File.basename(name_or_path).gsub('.app', '')
    @path = name_or_path
  else
    @name = name_or_path.gsub('.app', '')
    @path = "/Applications/#{@name}.app"
    fail CannotFind, @path unless File.directory?(@path)
  end
  validate!
end

Public Instance Methods

minimum_osx() click to toggle source
# File lib/osx_app.rb, line 29
def minimum_osx
  @minimum_osx ||= read_defaults('LSMinimumSystemVersion')
end
version() click to toggle source
# File lib/osx_app.rb, line 21
def version
  @version ||= read_defaults('CFBundleShortVersionString')
end
version_major() click to toggle source
# File lib/osx_app.rb, line 25
def version_major
  version.split('.').first
end

Private Instance Methods

info_plist() click to toggle source
# File lib/osx_app.rb, line 39
def info_plist
  "#{path}/Contents/Info.plist"
end
read_defaults(string) click to toggle source
# File lib/osx_app.rb, line 43
def read_defaults(string)
  `defaults read #{info_plist} #{string}`.strip
end
validate!() click to toggle source
# File lib/osx_app.rb, line 35
def validate!
  fail Invalid, "No #{info_plist}" unless File.exist?(info_plist)
end