Class: Jacoco::SAXParser
- Inherits:
-
Nokogiri::XML::SAX::Document
- Object
- Nokogiri::XML::SAX::Document
- Jacoco::SAXParser
- Defined in:
- lib/jacoco/sax_parser.rb
Overview
Sax parser for quickly finding class elements in Jacoco report
Instance Attribute Summary collapse
-
#class_names ⇒ Object
Returns the value of attribute class_names.
-
#classes ⇒ Object
Returns the value of attribute classes.
Instance Method Summary collapse
- #characters(string) ⇒ Object
- #end_element(name) ⇒ Object
-
#initialize(classes) ⇒ SAXParser
constructor
A new instance of SAXParser.
- #start_class(attrs) ⇒ Object
- #start_counter(attrs) ⇒ Object
- #start_element(name, attrs = []) ⇒ Object
Constructor Details
#initialize(classes) ⇒ SAXParser
Returns a new instance of SAXParser.
10 11 12 13 14 15 16 |
# File 'lib/jacoco/sax_parser.rb', line 10 def initialize(classes) super() @class_names = classes @classes = [] @current_class = nil @subelement_index = 0 end |
Instance Attribute Details
#class_names ⇒ Object
Returns the value of attribute class_names.
8 9 10 |
# File 'lib/jacoco/sax_parser.rb', line 8 def class_names @class_names end |
#classes ⇒ Object
Returns the value of attribute classes.
8 9 10 |
# File 'lib/jacoco/sax_parser.rb', line 8 def classes @classes end |
Instance Method Details
#characters(string) ⇒ Object
52 |
# File 'lib/jacoco/sax_parser.rb', line 52 def characters(string); end |
#end_element(name) ⇒ Object
54 55 56 57 |
# File 'lib/jacoco/sax_parser.rb', line 54 def end_element(name) @subelement_index -= 1 @current_class = nil if name.eql? 'class' end |
#start_class(attrs) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/jacoco/sax_parser.rb', line 40 def start_class(attrs) @subelement_index = 0 return unless @class_names.include?(Hash[attrs]['name']) c = Jacoco::Class.new c.name = Hash[attrs]['name'] c.counters = [] @current_class = c @classes.push c end |
#start_counter(attrs) ⇒ Object
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/jacoco/sax_parser.rb', line 29 def start_counter(attrs) return unless !@current_class.nil? && @subelement_index == 1 counter = Jacoco::Counter.new counter.type = Hash[attrs]['type'] counter.missed = Hash[attrs]['missed'].to_i counter.covered = Hash[attrs]['covered'].to_i @current_class.counters.push(counter) end |
#start_element(name, attrs = []) ⇒ Object
18 19 20 21 22 23 24 25 26 27 |
# File 'lib/jacoco/sax_parser.rb', line 18 def start_element(name, attrs = []) case name when 'class' start_class(attrs) when 'counter' start_counter(attrs) end @subelement_index += 1 end |