Class: Hrw::Scanner::PackageLock

Inherits:
Object
  • Object
show all
Defined in:
lib/hrw/scanner/package_lock.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(root = Dir.pwd, lockfile = 'package-lock.json') ⇒ PackageLock

Class constructor

Parameters:

  • root (String) (defaults to: Dir.pwd)

    The path to the project root

  • lockfile (String) (defaults to: 'package-lock.json')

    The name for the lock file, default is ‘Pipfile.lock`



11
12
13
14
15
# File 'lib/hrw/scanner/package_lock.rb', line 11

def initialize(root = Dir.pwd, lockfile = 'package-lock.json')
  @package_manager = 'npm'
  @root = root
  @lockfile = lockfile
end

Instance Attribute Details

#package_managerObject (readonly)

Returns the value of attribute package_manager.



4
5
6
# File 'lib/hrw/scanner/package_lock.rb', line 4

def package_manager
  @package_manager
end

Instance Method Details

#scanHash

Scan the lock file

Returns:

  • (Hash)

    Dependencies



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/hrw/scanner/package_lock.rb', line 19

def scan
  deps = []

  obj = JSON.parse(File.read(File.join(@root, @lockfile)))
  return deps unless obj.key?('dependencies')

  obj['dependencies'].each_pair do |name, pkg|
    deps << {
      name: name,
      version: pkg['version']
    }
  end

  deps
end