Sha256: 32c9141d0480839647d2cd29e4d5c003a2cf39d24c16814cef86096c83475100
Contents?: true
Size: 1.03 KB
Versions: 2
Compression:
Stored size: 1.03 KB
Contents
# frozen_string_literal: true require "bundler" require "bundler/lockfile_parser" require "pathname" module CobraCommander module Dependencies # Calculates ruby bundler dependencies class Bundler autoload :Package, "cobra_commander/dependencies/bundler/package" attr_reader :path def initialize(root) @root = Pathname.new(root) @path = @root.join("Gemfile.lock").realpath end def root Package.new(path: path, dependencies: lockfile.dependencies.values) end def packages @packages ||= components_source.specs.map do |spec| Package.new(spec) end end private def lockfile @lockfile ||= ::Bundler::LockfileParser.new(::Bundler.read_file(path)) end def components_source @components_source ||= begin source = @lockfile.sources.find { |s| s.path.to_s.eql?("components") } ::Bundler::Source::Path.new(source.options.merge("root_path" => @root)) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
cobra_commander-0.15.1 | lib/cobra_commander/dependencies/bundler.rb |
cobra_commander-0.15.0 | lib/cobra_commander/dependencies/bundler.rb |