module OssAudit

Constants

NAME
VERSION

Public Class Methods

logger() click to toggle source
# File lib/oss_audit.rb, line 11
def self.logger
  @@logger ||= Logger.new(STDERR)
end
scan(path) click to toggle source
# File lib/oss_audit.rb, line 15
def self.scan(path)
  libraries = []
  Managers.list.each do |manager|
    next unless manager.used_in?(path)

    logger.info{"#{manager} (#{path})"}

    dependencies = manager.list_dependencies(path)

    logger.debug{"* Found #{dependencies.count} dependencies"}

    dependencies.each do |dependency|
      name, version = Array(dependency)

      info      = manager.get_info(name, version) or next
      defaults  = {
        'name'          => name,
        'version'       => version,
        'manager'       => manager.name.split('::').last,
        'dependencies'  => []
      }

      libraries << defaults.merge(info)
    end
  end
  
  return libraries
end