Class: MetricFu::FlogReporter::Base
- Inherits:
-
Object
- Object
- MetricFu::FlogReporter::Base
- Defined in:
- lib/metric_fu/flog_reporter/base.rb
Constant Summary collapse
- MODULE_NAME =
"([A-Za-z]+)+"
- METHOD_NAME =
"#([a-z0-9]+_?)+\\??\\!?"
- SCORE =
"\\d+\\.\\d+"
- METHOD_NAME_RE =
Regexp.new("#{MODULE_NAME}#{METHOD_NAME}")
- SCORE_RE =
Regexp.new(SCORE)
- METHOD_LINE_RE =
Regexp.new("#{MODULE_NAME}#{METHOD_NAME}:\\s\\(#{SCORE}\\)")
- OPERATOR_LINE_RE =
Regexp.new("\\s+(#{SCORE}):\\s(.*)$")
Class Method Summary collapse
Class Method Details
.cycle(first_value, second_value, iteration) ⇒ Object
20 21 22 23 |
# File 'lib/metric_fu/flog_reporter/base.rb', line 20 def cycle(first_value, second_value, iteration) return first_value if iteration % 2 == 0 return second_value end |
.parse(text) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/metric_fu/flog_reporter/base.rb', line 25 def parse(text) score = text[/\w+ = (\d+\.\d+)/, 1] return nil unless score page = Page.new(score) text.each_line do |method_line| if METHOD_LINE_RE =~ method_line and method_name = method_line[METHOD_NAME_RE] and score = method_line[SCORE_RE] page.scanned_methods << ScannedMethod.new(method_name, score) end if OPERATOR_LINE_RE =~ method_line and operator = method_line[OPERATOR_LINE_RE, 2] and score = method_line[SCORE_RE] raise InvalidFlog if page.scanned_methods.empty? page.scanned_methods.last.operators << Operator.new(score, operator) end end page end |