class RuboCop::Lockfile
@api private
Does not actually resolve gems, just parses the lockfile.
Encapsulation of a lockfile for use when checking for gems.
def dependencies
def dependencies return [] unless parser parser.dependencies.values end
def gems
def gems return [] unless parser # `Bundler::LockfileParser` returns `Bundler::LazySpecification` objects # which are not resolved, so extract the dependencies from them parser.dependencies.values.concat(parser.specs.flat_map(&:dependencies)) end
def includes_gem?(name)
def includes_gem?(name) gems.any? { |gem| gem.name == name } end
def parser
def parser return unless defined?(Bundler) && Bundler.default_lockfile return @parser if defined?(@parser) lockfile = Bundler.read_file(Bundler.default_lockfile) @parser = lockfile ? Bundler::LockfileParser.new(lockfile) : nil rescue Bundler::BundlerError nil end