Module: CodeMetrics::RequireProfiler

Defined in:
lib/code_metrics/profiler.rb

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.depthObject

Returns the value of attribute depth.



76
77
78
# File 'lib/code_metrics/profiler.rb', line 76

def depth
  @depth
end

.statsObject

Returns the value of attribute stats.



77
78
79
# File 'lib/code_metrics/profiler.rb', line 77

def stats
  @stats
end

Class Method Details

.profile(file) ⇒ Object



79
80
81
82
83
84
85
86
87
88
# File 'lib/code_metrics/profiler.rb', line 79

def profile(file)
  stats << [file, depth]
  self.depth += 1
  result = nil
  elapsed = Benchmark.realtime { result = yield }
  self.depth -= 1
  stats.pop if stats.last.first == file
  stats << [file, depth, elapsed] if result
  result
end