class CocoaPodsGitlabLicenseReport::ReportGenerator

Public Class Methods

new(sandbox) click to toggle source
# File lib/cocoapods-gitlab_license_report/report_generator.rb, line 6
def initialize(sandbox)
  @sandbox = sandbox
end

Public Instance Methods

generate(specs, excluded) click to toggle source
# File lib/cocoapods-gitlab_license_report/report_generator.rb, line 10
def generate(specs, excluded)

  dependencies = []
  licenses = {}

  specs.reject { |s| excluded.include? s.name }.each do |s|
    license_name =  s.license
    license_name = license_name[:type] if license_name.is_a?(Hash)
    next if license_name == nil
    license = LicenseFinder::License.find_by_name(license_name)

    dependencies << { :name => s.name,
                      :version => s.version.to_s || "0.0",
                      :package_manager => "cocoapods",
                      :path => @sandbox.manifest_path,
                      :licenses => [license_name] }

    licenses[license_name] = { :id => license_name,
                               :name => license_name,
                               :url => license.url || "" }
  end

  report = {
    :version => "2.1",
    :licenses => licenses.values.sort_by {|v| v[:id]},
    :dependencies => dependencies
  }

end