class Papers::NpmPackage

Public Class Methods

asset_type_name() click to toggle source
# File lib/papers/dependency_specification/npm_package.rb, line 32
def self.asset_type_name
  'npm package'
end
full_introspected_entries() click to toggle source
# File lib/papers/dependency_specification/npm_package.rb, line 9
def self.full_introspected_entries
  packages = (package['dependencies'] || {})
  packages.merge!((package['devDependencies'] || {})) unless Papers.config.ignore_npm_dev_dependencies
  packages.map do |name, version|
    # FIXME: This version cleanup is inadequate for npm version specifiers, which may be git or
    # tarball URLs.
    version.sub!(/^\D+/, '')
    {
      'name' => name,
      'version' => version
    }
  end
end
introspected() click to toggle source
# File lib/papers/dependency_specification/npm_package.rb, line 5
def self.introspected
  full_introspected_entries.map {|e| "#{e['name']}-#{e['version']}"}
end
manifest_key() click to toggle source
# File lib/papers/dependency_specification/npm_package.rb, line 36
def self.manifest_key
  "npm_packages"
end

Private Class Methods

package() click to toggle source
# File lib/papers/dependency_specification/npm_package.rb, line 42
def self.package
  pkg = File.read(Papers.config.npm_package_json_path)
  JSON.parse(pkg)
rescue Errno::ENOENT
  {}
end

Public Instance Methods

pretty_hash() click to toggle source
# File lib/papers/dependency_specification/npm_package.rb, line 23
def pretty_hash
  {
    name: name_without_version,
    license: license,
    license_url: @license_url,
    project_url: @project_url
  }
end