class Lagunitas::IPA

Representation of an IPA file

Public Class Methods

new(path) click to toggle source
# File lib/lagunitas/ipa.rb, line 10
def initialize(path)
  @path = path
  @contents = nil
end

Public Instance Methods

app() click to toggle source
# File lib/lagunitas/ipa.rb, line 15
def app
  @app ||= App.new(app_path)
end
app_path() click to toggle source
# File lib/lagunitas/ipa.rb, line 19
def app_path
  @app_path ||= Dir.glob(File.join(contents, 'Payload', '*.app')).first
end
cleanup() click to toggle source
# File lib/lagunitas/ipa.rb, line 23
def cleanup
  return unless @contents

  FileUtils.rm_rf(@contents)
  @contents = nil
end

Private Instance Methods

contents() click to toggle source
# File lib/lagunitas/ipa.rb, line 32
def contents
  return if @contents

  @contents = "tmp/lagunitas-#{::SecureRandom.hex}"

  Zip::File.open(@path) do |zip_file|
    zip_file.each do |f|
      f_path = File.join(@contents, f.name)
      FileUtils.mkdir_p(File.dirname(f_path))
      zip_file.extract(f, f_path) unless File.exist?(f_path)
    end
  end

  @contents
end