Class: AppInfo::Parser::MobileProvision

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

Overview

.mobileprovision file parser

Instance Method Summary collapse

Constructor Details

#initialize(path) ⇒ MobileProvision

Returns a new instance of MobileProvision.



7
8
9
# File 'lib/app_info/parser/ipa/mobile_provision.rb', line 7

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



47
48
49
50
51
52
53
54
55
# File 'lib/app_info/parser/ipa/mobile_provision.rb', line 47

def method_missing(method_name, *args, &block)
  key = if method_name.to_s.include?('_')
    method_name.to_s.split('_').map {|k| k.capitalize }.join('')
  else
    method_name.to_s
  end

  mobileprovision.try(:[], key)
end

Instance Method Details

#app_nameObject



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

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

#created_dateObject



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

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

#devicesObject



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

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

#empty?Boolean

Returns:

  • (Boolean)


57
58
59
# File 'lib/app_info/parser/ipa/mobile_provision.rb', line 57

def empty?
  mobileprovision.nil?
end

#entitlementsObject



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

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

#expired_dateObject



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

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

#mobileprovisionObject



61
62
63
64
65
66
67
68
# File 'lib/app_info/parser/ipa/mobile_provision.rb', line 61

def mobileprovision
  return @mobileprovision = nil if @path.nil? or @path.empty? or !File.exist?(@path)

  data = `security cms -D -i "#{@path}" 2> /dev/null`
  @mobileprovision = CFPropertyList.native_types(CFPropertyList::List.new(data: data).value)
rescue CFFormatError
  @mobileprovision = nil
end

#nameObject



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

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

#profile_nameObject



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

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

#team_identifierObject



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

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

#team_nameObject



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

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