module OssAudit::Output

Public Class Methods

as_csv(dependencies, simple=true) click to toggle source
# File lib/oss_audit/output.rb, line 11
def self.as_csv(dependencies, simple=true)
  headers = dependencies.map{|x| x.keys}.flatten.uniq

  if simple
    headers = %w(manager name version licenses homepage source)
    dependencies = simplify(dependencies)
  end
  
  return CSV.generate('', :headers => headers, :col_sep => "\t", :write_headers => true) do |csv|
    dependencies.each do |dependency|
      csv << headers.map{|x| dependency[x]}.map{|x| to_s(x)}
    end
  end
end
as_json(dependencies, simple=true) click to toggle source
# File lib/oss_audit/output.rb, line 26
def self.as_json(dependencies, simple=true)
  dependencies = simplify(dependencies) if simple
  return JSON.pretty_generate(dependencies)
end
format(dependencies, type='json', simple=true) click to toggle source
# File lib/oss_audit/output.rb, line 7
def self.format(dependencies, type='json', simple=true)
  send("as_#{type}", uniq(dependencies), simple)
end
simplify(dependencies) click to toggle source
# File lib/oss_audit/output.rb, line 31
def self.simplify(dependencies)
  keys = %w(manager name version licenses homepage source)
  return dependencies.map{|x| x.slice(*keys)}
end
to_s(object) click to toggle source
# File lib/oss_audit/output.rb, line 36
def self.to_s(object)
  object.is_a?(Array) ? (object.empty? ? nil : object.join(',')) : object
end
uniq(dependencies) click to toggle source
# File lib/oss_audit/output.rb, line 40
def self.uniq(dependencies)
  dependencies
    .uniq{|x| x['name']}
    .sort{|a,b| a['name'] <=> b['name']}
end