class Assemblyline::Ruby::SystemPackages

Public Class Methods

new(data = nil) click to toggle source
# File lib/assemblyline/ruby/system_packages.rb, line 7
def initialize(data = nil)
  @data = data
end

Public Instance Methods

all() click to toggle source
# File lib/assemblyline/ruby/system_packages.rb, line 15
def all
  build + runtime
end
any?() click to toggle source
# File lib/assemblyline/ruby/system_packages.rb, line 11
def any?
  all.any?
end
build() click to toggle source
# File lib/assemblyline/ruby/system_packages.rb, line 19
def build
  buildeps = dependencies("build")
  buildeps += ["git"] if needs_git?
  buildeps
end
runtime() click to toggle source
# File lib/assemblyline/ruby/system_packages.rb, line 25
def runtime
  dependencies("runtime")
end

Private Instance Methods

data() click to toggle source
# File lib/assemblyline/ruby/system_packages.rb, line 56
def data
  @data ||= JSON.parse(File.read("/etc/assemblyline/dependencies.json"))
end
dependencies(context) click to toggle source
# File lib/assemblyline/ruby/system_packages.rb, line 35
def dependencies(context)
  deps.map { |dep| dep[context] }.flatten.uniq.compact.sort
end
deps() click to toggle source
# File lib/assemblyline/ruby/system_packages.rb, line 39
def deps
  packages.map do |pkg|
    data.select do |dep|
      pkg == dep["name"]
    end
  end.flatten
end
lockfile() click to toggle source
# File lib/assemblyline/ruby/system_packages.rb, line 51
def lockfile
  @_lockfile ||= Bundler::LockfileParser.new(File.read("Gemfile.lock"))
end
needs_git?() click to toggle source
# File lib/assemblyline/ruby/system_packages.rb, line 31
def needs_git?
  lockfile.sources.any? { |source| source.is_a? Bundler::Source::Git }
end
packages() click to toggle source
# File lib/assemblyline/ruby/system_packages.rb, line 47
def packages
  lockfile.specs.map(&:name)
end