Class: FunctionNode

Inherits:
BaseNode show all
Defined in:
lib/model/function_node.rb

Instance Attribute Summary collapse

Attributes inherited from BaseNode

#level, #location, #name

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseNode

#complexity_share, #complexity_smells, #file?, #folder?, #path, #private?, #quality, #smells, #tangle_share, #tangle_smells

Constructor Details

#initialize(name, location, visibility, level) ⇒ FunctionNode

Returns a new instance of FunctionNode.



6
7
8
9
10
11
12
# File 'lib/model/function_node.rb', line 6

def initialize(name, location, visibility, level)
  super name, location, visibility, level
  @cnodes = 0
  @cedges = 0
  @size = 0
  @tolerance = 30
end

Instance Attribute Details

#sizeObject

Returns the value of attribute size.



4
5
6
# File 'lib/model/function_node.rb', line 4

def size
  @size
end

Class Method Details

.create_private(name, location, level) ⇒ Object



46
47
48
# File 'lib/model/function_node.rb', line 46

def self.create_private(name, location, level)
  self.new name, location, :private, level
end

.create_public(name, location, level) ⇒ Object



42
43
44
# File 'lib/model/function_node.rb', line 42

def self.create_public(name, location, level)
  self.new name, location, :public, level
end

Instance Method Details

#complexityObject



34
35
36
# File 'lib/model/function_node.rb', line 34

def complexity
  @cedges - @cnodes + 2
end

#function?Boolean

Returns:

  • (Boolean)


14
15
16
# File 'lib/model/function_node.rb', line 14

def function?
  true
end

#functionsObject



38
39
40
# File 'lib/model/function_node.rb', line 38

def functions
  [name]
end

#increase_edgesObject



18
19
20
# File 'lib/model/function_node.rb', line 18

def increase_edges
  @cedges += 1
end

#increase_nodesObject



30
31
32
# File 'lib/model/function_node.rb', line 30

def increase_nodes
  @cnodes += 1
end

#increase_sizeObject



22
23
24
# File 'lib/model/function_node.rb', line 22

def increase_size
  @size += 1
end

#pot_smellObject



26
27
28
# File 'lib/model/function_node.rb', line 26

def pot_smell
  @size
end