Sha256: e8f587855e16cc06eb746e1d8348ea6b9f19907527f17f22958a3cc60446342b

Contents?: true

Size: 987 Bytes

Versions: 3

Compression:

Stored size: 987 Bytes

Contents

# frozen_string_literal: true

module AppInfo
  # parser for HarmonyOS .APP file
  class HAPP < HarmonyOS
    def_delegators :default_entry, :icons
    # @return [HAP]
    def default_entry
      hap_path = ::File.join(contents, "#{default_entry_name}.hap")
      @default_entry ||= HAP.new(hap_path)
    end

    # @return [String]
    def default_entry_name
      return @default_entry_name if @default_entry_name

      pack_info.packages.each do |package|
        if package['moduleType'] == 'entry' && package['deliveryWithInstall']
          @default_entry_name ||= package['name']
          break
        end
      end
      @default_entry_name
    end

    # @return [String]
    def name
      default_entry.name
    end

    def clear!
      return unless @contents

      FileUtils.rm_rf(@contents)

      @pack_info = nil
      @info_path = nil
      @contents = nil

      @default_entry_name = nil
      @default_entry&.clear!

      @default_entry = nil
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
app-info-3.3.0 lib/app_info/happ.rb
app-info-3.2.0 lib/app_info/happ.rb
app-info-3.2.0.beta1 lib/app_info/happ.rb