Class: Dagger::Graph

Inherits:
Tangle::DAG
  • Object
show all
Defined in:
lib/dagger/graph.rb

Overview

Specialization of Tangle::DAG

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(mixins: [Tangle::Mixin::Directory]) ⇒ Graph

Returns a new instance of Graph.



19
20
21
22
23
24
25
26
# File 'lib/dagger/graph.rb', line 19

def initialize(mixins: [Tangle::Mixin::Directory], **)
  @deferred_edges = []
  super
  @deferred_edges.each do |args|
    tail, head, *kwargs = args
    add_edge(*[tail, head].map { |name| fetch(name) }, *kwargs)
  end
end

Class Method Details

.load(dir, cached: false) ⇒ Object



10
11
12
13
14
15
16
17
# File 'lib/dagger/graph.rb', line 10

def self.load(dir, cached: false)
  @cached = cached
  dir_options = {
    root: File.realpath(dir),
    loaders: %i[symlink_loader directory_loader keytree_loader]
  }
  new(directory: dir_options, currify: true)
end

Instance Method Details

#cached?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/dagger/graph.rb', line 32

def cached?
  !(!@cached)
end

#select(&_filter) ⇒ Object



28
29
30
# File 'lib/dagger/graph.rb', line 28

def select(&_filter)
  vertices.select { |vertex| yield(self, vertex) }
end