Sha256: 8b75b4cb900c7019c5e79b1fa0105b52070726bf8da16ccd94027c31622ca04a

Contents?: true

Size: 826 Bytes

Versions: 1

Compression:

Stored size: 826 Bytes

Contents

module LicenseFinder
  class LicenseAggregator
    def initialize(license_finder_config, aggregate_paths)
      @license_finder_config = license_finder_config
      @aggregate_paths = aggregate_paths
    end

    def dependencies
      aggregate_packages
        .group_by { |package| [package.name, package.version] }
        .map do |_, packages|
          MergedPackage.new(packages[0].dependency, packages.flat_map(&:aggregate_paths))
        end
    end

    private

    def aggregate_packages
      @aggregate_paths.flat_map do |project_path|
        finder = LicenseFinder::Core.new(@license_finder_config.merge(project_path: project_path))
        finder.prepare_projects if @license_finder_config[:prepare]
        finder.acknowledged.map { |dep| MergedPackage.new(dep, [project_path]) }
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
license_finder-4.0.1 lib/license_finder/license_aggregator.rb