Class: IPA::IPAFile
- Inherits:
-
Object
- Object
- IPA::IPAFile
- Defined in:
- lib/ipa.rb
Constant Summary collapse
- MAPPED_INFO_KEYS =
{ :name => 'CFBundleName', :display_name => 'CFBundleDisplayName', :identifier => 'CFBundleIdentifier', :icon_path => 'CFBundleIconFile', :icon_paths => 'CFBundleIconFiles', :is_iphone => 'LSRequiresIPhoneOS', :app_category => 'LSApplicationCategoryType', :version => 'CFBundleVersion', :version_string => 'CFBundleShortVersionString' }
Class Method Summary collapse
Instance Method Summary collapse
- #artwork ⇒ Object
- #close ⇒ Object
- #icon ⇒ Object
- #info ⇒ Object
-
#initialize(filename, &block) ⇒ IPAFile
constructor
A new instance of IPAFile.
- #payload_file(filename) {|data| ... } ⇒ Object
- #payload_path(filename = nil) ⇒ Object
Constructor Details
#initialize(filename, &block) ⇒ IPAFile
Returns a new instance of IPAFile.
30 31 32 33 34 35 36 |
# File 'lib/ipa.rb', line 30 def initialize(filename, &block) @zipfile = Zip::ZipFile.open(filename) unless block.nil? yield self close end end |
Class Method Details
.open(filename, &block) ⇒ Object
26 27 28 |
# File 'lib/ipa.rb', line 26 def self.open(filename, &block) IPAFile.new(filename, &block) end |
Instance Method Details
#artwork ⇒ Object
65 66 67 |
# File 'lib/ipa.rb', line 65 def artwork payload_file('iTunesArtwork') end |
#close ⇒ Object
38 39 40 |
# File 'lib/ipa.rb', line 38 def close @zipfile.close end |
#icon ⇒ Object
61 62 63 |
# File 'lib/ipa.rb', line 61 def icon payload_file('Icon.png') end |
#info ⇒ Object
56 57 58 59 |
# File 'lib/ipa.rb', line 56 def info @info_plist ||= Plist::Binary::decode_binary_plist( payload_file('Info.plist')) end |
#payload_file(filename) {|data| ... } ⇒ Object
50 51 52 53 54 |
# File 'lib/ipa.rb', line 50 def payload_file(filename, &block) data = @zipfile.read(payload_path(filename)) yield data unless block.nil? data end |
#payload_path(filename = nil) ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/ipa.rb', line 42 def payload_path(filename = nil) @payload_path ||= File.join('Payload', @zipfile.dir.entries('Payload'). first{ |name| name =~ /\.app$/ }) filename.nil? ? @payload_path : File.join(@payload_path, filename) end |