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



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

def self.asset_type_name
  'npm package'
end

.full_introspected_entriesObject



9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/papers/dependency_specification/npm_package.rb', line 9

def self.full_introspected_entries
  packages = (package['dependencies'] || {}).merge((package['devDependencies'] || {}))
  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



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

def self.manifest_key
  "npm_packages"
end

Instance Method Details

#pretty_hashObject



22
23
24
25
26
27
28
29
# File 'lib/papers/dependency_specification/npm_package.rb', line 22

def pretty_hash
  {
    name: name_without_version,
    license: license,
    license_url: @license_url,
    project_url: @project_url
  }
end