Class: Hrw::Scanner::Gemfile

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

Overview

Used to scan gem lock file

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(root = Dir.pwd, lockfile = 'Gemfile.lock') ⇒ Gemfile

Initialize a scanner

Parameters:

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

    The path to the project root

  • lockfile (String) (defaults to: 'Gemfile.lock')

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



20
21
22
23
24
25
26
# File 'lib/hrw/scanner/gemfile.rb', line 20

def initialize(root = Dir.pwd, lockfile = 'Gemfile.lock')
  @package_manager = 'rubygems'
  @root = File.expand_path(root)
  @lockfile = Bundler::LockfileParser.new(
    File.read(File.join(@root, lockfile))
  )
end

Instance Attribute Details

#package_managerObject (readonly)

Returns the value of attribute package_manager.



13
14
15
# File 'lib/hrw/scanner/gemfile.rb', line 13

def package_manager
  @package_manager
end

Instance Method Details

#scanHash

Scan the lock file

Returns:

  • (Hash)


30
31
32
33
34
35
36
37
# File 'lib/hrw/scanner/gemfile.rb', line 30

def scan
  @lockfile.specs.map do |spec|
    {
      name: spec.name,
      version: spec.version.to_s
    }
  end
end