class XDep::Npm::CSVOutput
Constants
- KNOWN_DEPENDENCIES
Public Class Methods
accepts?(filename)
click to toggle source
# File lib/xdep/npm.rb, line 9 def self.accepts?(filename) filename == "package.json" end
Protected Instance Methods
get_rows(input)
click to toggle source
# File lib/xdep/npm.rb, line 19 def get_rows(input) rows = [] Dir.chdir(File.dirname(input.path)) do # This is very slow... ls.each do |name, version| info = describe("#{name}@#{version["version"]}") license = info["licenses"] ? format_licenses(info["licenses"]) : info["license"] rows << [ "JavaScript", name, version["version"], info["description"], info["homepage"], license ] end end rows end
known_dependencies()
click to toggle source
# File lib/xdep/npm.rb, line 15 def known_dependencies KNOWN_DEPENDENCIES end
Private Instance Methods
describe(pkg)
click to toggle source
# File lib/xdep/npm.rb, line 42 def describe(pkg) # Include license and licenses else we won't get JSON output if one doesn't exist out = `npm view #{pkg} description homepage license licenses --json 2>&1` raise Error, "Failed to execute npm: #{out}" unless $?.exitstatus.zero? parse_json(out) end
format_licenses(licenses)
click to toggle source
# File lib/xdep/npm.rb, line 55 def format_licenses(licenses) licenses.map do |data| s = data["type"] s << " (#{data["url"]})" if data["url"] s end.join(", ") end
ls()
click to toggle source
# File lib/xdep/npm.rb, line 36 def ls out = `npm ls --depth=0 --json 2>&1` raise Error, "Failed to execute npm: #{out}" unless $?.exitstatus.zero? parse_json(out)["dependencies"] end
parse_json(out)
click to toggle source
# File lib/xdep/npm.rb, line 49 def parse_json(out) JSON.parse(out) rescue JSON::ParserError => e raise Error, "Failed to parse npm output: #{e}" end