Sha256: 62b6434ee3474644aec0a51bc27e9d34e4e5a06e7d51b74e0ad3c22a1379382d

Contents?: true

Size: 1.35 KB

Versions: 3

Compression:

Stored size: 1.35 KB

Contents

# frozen_string_literal: true

module LicenseFinder
  class MergedPackage < Package
    extend Forwardable
    attr_reader :dependency

    def initialize(package, aggregate_paths)
      @dependency = package
      @aggregate_paths = aggregate_paths.map { |p| Pathname(p) }
      super(package.name, package.version)
    end

    def_delegators :@dependency, :name, :version, :authors, :summary, :description, :homepage, :children, :parents,
                   :groups, :whitelisted, :blacklisted, :manual_approval, :install_path, :licenses, :approved_manually?,
                   :approved_manually!, :approved?, :whitelisted!, :whitelisted?, :blacklisted!, :blacklisted?, :hash,
                   :activations, :missing, :license_names_from_spec, :decided_licenses, :licensing, :decide_on_license,
                   :license_files, :package_manager, :missing?, :log_activation

    def aggregate_paths
      @aggregate_paths.map { |p| p.expand_path.to_s }
    end

    def <=>(other)
      dependency <=> other.dependency
    end

    def eql?(other)
      if other.instance_of? MergedPackage
        other.dependency.eql?(dependency)
      else
        dependency.eql?(other)
      end
    end

    def ==(other)
      dependency.eql?(other.dependency) && aggregate_paths.eql?(other.aggregate_paths)
    end

    def method_missing(_method_name)
      nil
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
license_finder-5.5.2 lib/license_finder/packages/merged_package.rb
license_finder-5.5.1 lib/license_finder/packages/merged_package.rb
license_finder-5.5.0 lib/license_finder/packages/merged_package.rb