class MetricAdapter::FlogAdapter
Attributes
flog[R]
Public Class Methods
new(flog)
click to toggle source
# File lib/adapters/flog_adapter.rb, line 5 def initialize(flog) @flog = flog end
Public Instance Methods
metrics()
click to toggle source
# File lib/adapters/flog_adapter.rb, line 9 def metrics metrics = [] flog.each_by_score do |signature, score| if locatable?(signature) metrics << create_metric(signature, score) end end metrics end
Private Instance Methods
create_metric(signature, score)
click to toggle source
# File lib/adapters/flog_adapter.rb, line 23 def create_metric(signature, score) location = method_location(signature) message = "Flog: #{score.round(2)}" metric = Metric.new(location, signature, message) metric.score = score metric end
locatable?(signature)
click to toggle source
Flog will report on code that is not in a class or method, all of this top level code may be spread out across multiple files, so we can're report on that code's location.
# File lib/adapters/flog_adapter.rb, line 41 def locatable?(signature) !!flog.method_locations[signature] end
method_location(signature)
click to toggle source
# File lib/adapters/flog_adapter.rb, line 33 def method_location(signature) path = flog.method_locations[signature] Location.new(path) end