Sha256: 80caf2df3d0da6f8a63f5aed2fb28d5fdf38a37709dd8ca729769f5cd4c9b74e
Contents?: true
Size: 1020 Bytes
Versions: 2
Compression:
Stored size: 1020 Bytes
Contents
# frozen_string_literal: true require "bundler" require "bundler/lockfile_parser" require "pathname" module CobraCommander module Dependencies # Calculates ruby bundler dependencies class Bundler attr_reader :path def initialize(root) @root = Pathname.new(root) @path = @root.join("Gemfile.lock").realpath end def dependencies lockfile.dependencies.values.map(&:name) end def components components_source.specs.map do |spec| {path: spec.loaded_from, name: spec.name, dependencies: spec.dependencies.map(&:name)} 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.14.0 | lib/cobra_commander/dependencies/bundler.rb |
cobra_commander-0.13.0 | lib/cobra_commander/dependencies/bundler.rb |