Method: Licensed::Sources::Dep#packages

Defined in:
lib/licensed/sources/dep.rb

#packagesObject

Returns an array of dependency packages specified from Gopkg.lock



30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/licensed/sources/dep.rb', line 30

def packages
  gopkg_lock = Tomlrb.load_file(gopkg_lock_path, symbolize_keys: true)
  return [] unless gopkg_lock && gopkg_lock[:projects]

  gopkg_lock[:projects].flat_map do |project|
    # map each package to a full import path
    # then return a hash for each import path containing the path and the version
    project[:packages].map { |package| package == "." ? project[:name] : "#{project[:name]}/#{package}" }
                      .reject { |import_path| go_std_package?(import_path) }
                      .map { |import_path| { name: import_path, version: project[:revision], project: project[:name] } }
  end
end