Module: OssAudit::Output
- Defined in:
- lib/oss_audit/output.rb
Class Method Summary collapse
- .as_csv(dependencies, simple = true) ⇒ Object
- .as_json(dependencies, simple = true) ⇒ Object
- .format(dependencies, type = 'json', simple = true) ⇒ Object
- .simplify(dependencies) ⇒ Object
- .to_s(object) ⇒ Object
- .uniq(dependencies) ⇒ Object
Class Method Details
.as_csv(dependencies, simple = true) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# 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) ⇒ Object
26 27 28 29 |
# 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) ⇒ Object
7 8 9 |
# 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) ⇒ Object
31 32 33 34 |
# 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) ⇒ Object
36 37 38 |
# 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) ⇒ Object
40 41 42 43 44 |
# 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 |