Class: AppInfo::MobileProvision

Inherits:
Object
  • Object
show all
Defined in:
lib/app_info/ipa/mobile_provision.rb

Overview

.mobileprovision file parser

Defined Under Namespace

Classes: DeveloperCertificate

Instance Method Summary collapse

Constructor Details

#initialize(path) ⇒ MobileProvision

Returns a new instance of MobileProvision.



10
11
12
# File 'lib/app_info/ipa/mobile_provision.rb', line 10

def initialize(path)
  @path = path
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_name, *args, &block) ⇒ Object



78
79
80
81
82
# File 'lib/app_info/ipa/mobile_provision.rb', line 78

def method_missing(method_name, *args, &block)
  mobileprovision.try(:[], Util.format_key(method_name)) ||
    mobileprovision.send(method_name) ||
    super
end

Instance Method Details

#[](key) ⇒ Object



59
60
61
# File 'lib/app_info/ipa/mobile_provision.rb', line 59

def [](key)
  mobileprovision.try(:[], key.to_s)
end

#app_nameObject



18
19
20
# File 'lib/app_info/ipa/mobile_provision.rb', line 18

def app_name
  mobileprovision.try(:[], 'AppIDName')
end

#created_dateObject



38
39
40
# File 'lib/app_info/ipa/mobile_provision.rb', line 38

def created_date
  mobileprovision.try(:[], 'CreationDate')
end

#developer_certsObject



50
51
52
53
54
55
56
57
# File 'lib/app_info/ipa/mobile_provision.rb', line 50

def developer_certs
  certs = mobileprovision.try(:[], 'DeveloperCertificates')
  return if certs.empty?

  certs.each_with_object([]) do |cert, obj|
    obj << DeveloperCertificate.new(cert)
  end
end

#devicesObject



22
23
24
# File 'lib/app_info/ipa/mobile_provision.rb', line 22

def devices
  mobileprovision.try(:[], 'ProvisionedDevices')
end

#empty?Boolean

Returns:

  • (Boolean)


63
64
65
# File 'lib/app_info/ipa/mobile_provision.rb', line 63

def empty?
  mobileprovision.nil?
end

#entitlementsObject



46
47
48
# File 'lib/app_info/ipa/mobile_provision.rb', line 46

def entitlements
  mobileprovision.try(:[], 'Entitlements')
end

#expired_dateObject



42
43
44
# File 'lib/app_info/ipa/mobile_provision.rb', line 42

def expired_date
  mobileprovision.try(:[], 'ExpirationDate')
end

#mobileprovisionObject



67
68
69
70
71
72
73
74
75
76
# File 'lib/app_info/ipa/mobile_provision.rb', line 67

def mobileprovision
  return @mobileprovision = nil unless File.exist?(@path)

  data = File.read(@path)
  data = strip_plist_wrapper(data) unless bplist?(data)
  list = CFPropertyList::List.new(data: data).value
  @mobileprovision = CFPropertyList.native_types(list)
rescue CFFormatError
  @mobileprovision = nil
end

#nameObject



14
15
16
# File 'lib/app_info/ipa/mobile_provision.rb', line 14

def name
  mobileprovision.try(:[], 'Name')
end

#profile_nameObject



34
35
36
# File 'lib/app_info/ipa/mobile_provision.rb', line 34

def profile_name
  mobileprovision.try(:[], 'Name')
end

#respond_to_missing?(method_name, *args) ⇒ Boolean

Returns:

  • (Boolean)


84
85
86
87
88
# File 'lib/app_info/ipa/mobile_provision.rb', line 84

def respond_to_missing?(method_name, *args)
  mobileprovision.key?(Util.format_key(method_name)) ||
    mobileprovision.respond_to?(method_name) ||
    super
end

#team_identifierObject



26
27
28
# File 'lib/app_info/ipa/mobile_provision.rb', line 26

def team_identifier
  mobileprovision.try(:[], 'TeamIdentifier')
end

#team_nameObject



30
31
32
# File 'lib/app_info/ipa/mobile_provision.rb', line 30

def team_name
  mobileprovision.try(:[], 'TeamName')
end