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?, all_from_manifest, #initialize, missing_from_manifest, #name_without_version, unknown_in_manifest

Constructor Details

This class inherits a constructor from Papers::DependencySpecification

Class Method Details

.full_introspected_entriesObject



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



29
30
31
# File 'lib/papers/dependency_specification/npm_package.rb', line 29

def self.manifest_key
  "npm_packages"
end

.packageObject



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

def self.package
  pkg = File.read(Papers.config.npm_package_json_path)
  JSON.parse(pkg)
rescue Errno::ENOENT
  {}
end

Instance Method Details

#pretty_hashObject



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

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