Class: Benchin::Wrap::Report::Node Private

Inherits:
Object
  • Object
show all
Defined in:
lib/benchin/wrap/report/node.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

API:

  • private

Direct Known Subclasses

Virtual

Defined Under Namespace

Classes: Virtual

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ Node

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Node.

API:

  • private



11
12
13
14
15
16
17
# File 'lib/benchin/wrap/report/node.rb', line 11

def initialize(name)
  @name = name

  @calls = 0
  @total_seconds = 0.0
  @nested = {}
end

Instance Attribute Details

#callsObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



7
8
9
# File 'lib/benchin/wrap/report/node.rb', line 7

def calls
  @calls
end

#nameObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



6
7
8
# File 'lib/benchin/wrap/report/node.rb', line 6

def name
  @name
end

#nestedObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



9
10
11
# File 'lib/benchin/wrap/report/node.rb', line 9

def nested
  @nested
end

#total_secondsObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



8
9
10
# File 'lib/benchin/wrap/report/node.rb', line 8

def total_seconds
  @total_seconds
end

Instance Method Details

#add_call(seconds) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



19
20
21
22
23
# File 'lib/benchin/wrap/report/node.rb', line 19

def add_call(seconds)
  @child_seconds = nil
  @calls += 1
  @total_seconds += seconds
end

#child_secondsObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



40
41
42
43
44
# File 'lib/benchin/wrap/report/node.rb', line 40

def child_seconds
  child_nodes = nested.values

  @child_seconds ||= child_nodes.map(&:total_seconds).sum.to_f
end

#self_secondsObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



36
37
38
# File 'lib/benchin/wrap/report/node.rb', line 36

def self_seconds
  total_seconds - child_seconds
end

#to_hObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



25
26
27
28
29
30
31
32
33
34
# File 'lib/benchin/wrap/report/node.rb', line 25

def to_h
  {
    name: name,
    calls: calls,
    total_seconds: total_seconds,
    self_seconds: self_seconds,
    child_seconds: child_seconds,
    nested: nested.values.map(&:to_h)
  }
end