class AppInfo::InfoPlist
iOS Info.plist parser
Public Class Methods
new(file)
click to toggle source
# File lib/app_info/info_plist.rb, line 12 def initialize(file) @file = file end
Public Instance Methods
[](key)
click to toggle source
# File lib/app_info/info_plist.rb, line 108 def [](key) info.try(:[], key.to_s) end
build_version()
click to toggle source
# File lib/app_info/info_plist.rb, line 20 def build_version info.try(:[], 'CFBundleVersion') end
bundle_name()
click to toggle source
# File lib/app_info/info_plist.rb, line 41 def bundle_name info.try(:[], 'CFBundleName') end
device_family()
click to toggle source
# File lib/app_info/info_plist.rb, line 96 def device_family info.try(:[], 'UIDeviceFamily') || [] end
device_type()
click to toggle source
# File lib/app_info/info_plist.rb, line 67 def device_type device_family = info.try(:[], 'UIDeviceFamily') if device_family == [1] AppInfo::Device::IPHONE elsif device_family == [2] AppInfo::Device::IPAD elsif device_family == [1, 2] AppInfo::Device::UNIVERSAL elsif !info.try(:[], 'DTSDKName').nil? || !info.try(:[], 'DTPlatformName').nil? AppInfo::Device::MACOS end end
display_name()
click to toggle source
# File lib/app_info/info_plist.rb, line 37 def display_name info.try(:[], 'CFBundleDisplayName') end
icons()
click to toggle source
# File lib/app_info/info_plist.rb, line 63 def icons @icons ||= ICON_KEYS[device_type] end
identifier()
click to toggle source
# File lib/app_info/info_plist.rb, line 28 def identifier info.try(:[], 'CFBundleIdentifier') end
Also aliased as: bundle_id
ipad?()
click to toggle source
# File lib/app_info/info_plist.rb, line 84 def ipad? device_type == Device::IPAD end
iphone?()
click to toggle source
# File lib/app_info/info_plist.rb, line 80 def iphone? device_type == Device::IPHONE end
macos?()
click to toggle source
# File lib/app_info/info_plist.rb, line 92 def macos? device_type == Device::MACOS end
method_missing(method_name, *args, &block)
click to toggle source
Calls superclass method
# File lib/app_info/info_plist.rb, line 114 def method_missing(method_name, *args, &block) info.try(:[], Util.format_key(method_name)) || info.send(method_name) || super end
min_os_version()
click to toggle source
# File lib/app_info/info_plist.rb, line 45 def min_os_version min_sdk_version || min_system_version end
min_sdk_version()
click to toggle source
Extract the Minimum OS Version from the Info.plist (iOS Only)
# File lib/app_info/info_plist.rb, line 52 def min_sdk_version info.try(:[], 'MinimumOSVersion') end
min_system_version()
click to toggle source
Extract the Minimum OS Version from the Info.plist (macOS Only)
# File lib/app_info/info_plist.rb, line 59 def min_system_version info.try(:[], 'LSMinimumSystemVersion') end
name()
click to toggle source
# File lib/app_info/info_plist.rb, line 33 def name display_name || bundle_name end
release_type()
click to toggle source
# File lib/app_info/info_plist.rb, line 100 def release_type if stored? 'Store' else build_type end end
release_version()
click to toggle source
# File lib/app_info/info_plist.rb, line 24 def release_version info.try(:[], 'CFBundleShortVersionString') end
respond_to_missing?(method_name, *args)
click to toggle source
Calls superclass method
# File lib/app_info/info_plist.rb, line 120 def respond_to_missing?(method_name, *args) info.key?(Util.format_key(method_name)) || info.respond_to?(method_name) || super end
universal?()
click to toggle source
# File lib/app_info/info_plist.rb, line 88 def universal? device_type == Device::UNIVERSAL end
version()
click to toggle source
# File lib/app_info/info_plist.rb, line 16 def version release_version || build_version end
Private Instance Methods
app_path()
click to toggle source
# File lib/app_info/info_plist.rb, line 134 def app_path @app_path ||= case device_type when Device::MACOS File.dirname(@file) else File.expand_path('../', @file) end end
info()
click to toggle source
# File lib/app_info/info_plist.rb, line 128 def info return unless File.file?(@file) @info ||= CFPropertyList.native_types(CFPropertyList::List.new(file: @file).value) end