Class: Papers::NpmPackage

Inherits:
DependencySpecification show all
Defined in:
lib/papers/dependency_specification/npm_package.rb

Instance Attribute Summary

Attributes inherited from DependencySpecification

#license, #license_url, #name, #project_url

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from DependencySpecification

#acceptable_license?, #initialize, #name_without_version

Constructor Details

This class inherits a constructor from Papers::DependencySpecification

Class Method Details

.asset_type_nameObject



32
33
34
# File 'lib/papers/dependency_specification/npm_package.rb', line 32

def self.asset_type_name
  'npm package'
end

.full_introspected_entriesObject



9
10
11
12
13
14
15
16
17
18
19
20
21
# 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

.introspectedObject



5
6
7
# File 'lib/papers/dependency_specification/npm_package.rb', line 5

def self.introspected
  full_introspected_entries.map {|e| "#{e['name']}-#{e['version']}"}
end

.manifest_keyObject



36
37
38
# File 'lib/papers/dependency_specification/npm_package.rb', line 36

def self.manifest_key
  "npm_packages"
end

Instance Method Details

#pretty_hashObject



23
24
25
26
27
28
29
30
# 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