Class: LogRequire::Node

Inherits:
Object
  • Object
show all
Defined in:
lib/log_require/node.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(parent, caller, name, dupe_caller = false) ⇒ Node

Returns a new instance of Node.



8
9
10
11
12
13
14
15
# File 'lib/log_require/node.rb', line 8

def initialize(parent, caller, name, dupe_caller=false)
  @parent      = parent
  @caller      = caller
  @name        = name
  @children    = []
  @dupe_caller = dupe_caller
  @result      = false
end

Instance Attribute Details

#callerObject (readonly)

Returns the value of attribute caller.



5
6
7
# File 'lib/log_require/node.rb', line 5

def caller
  @caller
end

#childrenObject (readonly)

Returns the value of attribute children.



5
6
7
# File 'lib/log_require/node.rb', line 5

def children
  @children
end

#nameObject (readonly)

Returns the value of attribute name.



5
6
7
# File 'lib/log_require/node.rb', line 5

def name
  @name
end

#parentObject (readonly)

Returns the value of attribute parent.



5
6
7
# File 'lib/log_require/node.rb', line 5

def parent
  @parent
end

#resultObject

Returns the value of attribute result.



6
7
8
# File 'lib/log_require/node.rb', line 6

def result
  @result
end

Class Method Details

.rootObject



17
18
19
# File 'lib/log_require/node.rb', line 17

def self.root
  @root ||= new(nil, nil, :root)
end

Instance Method Details

#add_child(caller, name) ⇒ Object



33
34
35
36
37
# File 'lib/log_require/node.rb', line 33

def add_child(caller, name)
  dupe_caller = (!@children.empty? and @children.last.caller == caller)
  @children << (node = Node.new(self, caller, name, dupe_caller))
  node
end


39
40
41
42
43
44
# File 'lib/log_require/node.rb', line 39

def print_children(io, indent=1)
  @children.each do |child|
    io.puts child.to_graph_s(indent)
    child.print_children(io, indent+2)
  end
end

#root?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/log_require/node.rb', line 29

def root?
  @parent.nil? && @name == :root
end

#to_graph_s(indent = 1) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
# File 'lib/log_require/node.rb', line 46

def to_graph_s(indent=1)
  if root? then
    "--+ root"
  else
    s = ""
    s += "#{'|  '*indent}|--+ #{@caller}\n" if !@dupe_caller
    s += "#{'|  '*(indent+1)}|--" + (@children.empty?() ? "=" : "+") + " #{@name}" +
      (@result ? "" : " (#{@result})")
    s
  end
end

#to_sObject



58
59
60
# File 'lib/log_require/node.rb', line 58

def to_s
  "#{@caller} -> #{@name} (#{@result})"
end