Class: Bundler::Dependencies::Graph
- Inherits:
-
Object
- Object
- Bundler::Dependencies::Graph
- Includes:
- Enumerable
- Defined in:
- lib/bundler/dependencies/graph.rb
Instance Method Summary collapse
- #counts(min: 0) ⇒ Object
- #delete(*specs) ⇒ Object
- #each(&block) ⇒ Object
- #empty? ⇒ Boolean
- #find(gem) ⇒ Object
- #include?(gem) ⇒ Boolean
- #include_dependency?(gem) ⇒ Boolean
-
#initialize(lockfile: nil, specs: []) ⇒ Graph
constructor
A new instance of Graph.
- #initialize_copy(source) ⇒ Object
- #walk(&block) ⇒ Object
- #without(*gems) ⇒ Object
Constructor Details
#initialize(lockfile: nil, specs: []) ⇒ Graph
Returns a new instance of Graph.
8 9 10 11 12 13 14 15 16 |
# File 'lib/bundler/dependencies/graph.rb', line 8 def initialize(lockfile: nil, specs: []) @lockfile = lockfile if lockfile load_lockfile else @specs = specs.compact end end |
Instance Method Details
#counts(min: 0) ⇒ Object
35 36 37 38 39 40 41 42 |
# File 'lib/bundler/dependencies/graph.rb', line 35 def counts(min: 0) @counts ||= filter_map do |gem| count = gem.dependency_count next if count < min [gem.name, gem.dependency_count] end.sort_by(&:last).reverse.to_h end |
#delete(*specs) ⇒ Object
44 45 46 47 48 49 |
# File 'lib/bundler/dependencies/graph.rb', line 44 def delete(*specs) specs.each do |gem| spec = Spec.new(gem) unless gem.is_a?(Spec) gems.delete(spec) end end |
#each(&block) ⇒ Object
27 28 29 |
# File 'lib/bundler/dependencies/graph.rb', line 27 def each(&block) gems.each(&block) end |
#empty? ⇒ Boolean
23 24 25 |
# File 'lib/bundler/dependencies/graph.rb', line 23 def empty? gems.empty? end |
#find(gem) ⇒ Object
31 32 33 |
# File 'lib/bundler/dependencies/graph.rb', line 31 def find(gem) include_dependency?(gem) ? Spec.find(gem) : nil end |
#include?(gem) ⇒ Boolean
51 52 53 54 |
# File 'lib/bundler/dependencies/graph.rb', line 51 def include?(gem) gem = Spec.new(gem) unless gem.is_a?(Spec) gems.include?(gem) end |
#include_dependency?(gem) ⇒ Boolean
56 57 58 59 |
# File 'lib/bundler/dependencies/graph.rb', line 56 def include_dependency?(gem) gem = Spec.new(gem) unless gem.is_a?(Spec) include?(gem) || any? { |spec| spec.include_dependency?(gem) } end |
#initialize_copy(source) ⇒ Object
18 19 20 21 |
# File 'lib/bundler/dependencies/graph.rb', line 18 def initialize_copy(source) super @gems = source.send(:gems).dup end |
#walk(&block) ⇒ Object
67 68 69 70 |
# File 'lib/bundler/dependencies/graph.rb', line 67 def walk(&block) Visitor.walk(self, &block) self end |
#without(*gems) ⇒ Object
61 62 63 64 65 |
# File 'lib/bundler/dependencies/graph.rb', line 61 def without(*gems) graph = dup graph.delete(*gems) graph.walk { |gem| gem.dependencies.delete(*gems) } end |