Class: SCNR::Introspector::Coverage::Resource
- Inherits:
-
Object
- Object
- SCNR::Introspector::Coverage::Resource
- Defined in:
- lib/scnr/introspector/coverage/resource.rb,
lib/scnr/introspector/coverage/resource/line.rb
Defined Under Namespace
Classes: Line
Instance Attribute Summary collapse
- #lines ⇒ Array<Line>
- #path ⇒ String readonly
Instance Method Summary collapse
- #[](line_number) ⇒ Line
-
#empty? ⇒ Bool
‘true` if #lines are empty, `false` otherwise.
-
#hit_lines ⇒ Array<Line>
Hit lines.
-
#hit_percentage ⇒ Float
Percentage of #hit_lines.
-
#included_lines ⇒ Array<Line>
Lines which should be considered in coverage (i.e. all lines except for #skipped_lines).
-
#initialize(path) ⇒ Resource
constructor
A new instance of Resource.
-
#miss_percentage ⇒ Float
Percentage of #missed_lines.
-
#missed_lines ⇒ Array<Line>
Missed lines.
-
#skipped_lines ⇒ Array<Line>
Skipped lines.
Constructor Details
#initialize(path) ⇒ Resource
Returns a new instance of Resource.
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/scnr/introspector/coverage/resource.rb', line 17 def initialize( path ) @path = path @lines = [] IO.binread( path ).lines.each.with_index do |line, number| @lines << Line.new( number: number, content: line.rstrip, resource: self ) end end |
Instance Attribute Details
#lines ⇒ Array<Line>
13 14 15 |
# File 'lib/scnr/introspector/coverage/resource.rb', line 13 def lines @lines end |
#path ⇒ String (readonly)
10 11 12 |
# File 'lib/scnr/introspector/coverage/resource.rb', line 10 def path @path end |
Instance Method Details
#[](line_number) ⇒ Line
34 35 36 |
# File 'lib/scnr/introspector/coverage/resource.rb', line 34 def []( line_number ) @lines[line_number] end |
#empty? ⇒ Bool
Returns ‘true` if #lines are empty, `false` otherwise.
82 83 84 |
# File 'lib/scnr/introspector/coverage/resource.rb', line 82 def empty? lines.empty? end |
#hit_lines ⇒ Array<Line>
Returns Hit lines.
40 41 42 |
# File 'lib/scnr/introspector/coverage/resource.rb', line 40 def hit_lines lines.select(&:hit?) end |
#hit_percentage ⇒ Float
Returns Percentage of #hit_lines.
65 66 67 68 69 70 71 72 |
# File 'lib/scnr/introspector/coverage/resource.rb', line 65 def hit_percentage return 100.0 if empty? lines_to_include = Float(lines.size - skipped_lines.size) return 100.0 if lines_to_include == 0 (hit_lines.size / lines_to_include) * 100.0 end |
#included_lines ⇒ Array<Line>
Returns Lines which should be considered in coverage (i.e. all lines except for #skipped_lines).
59 60 61 |
# File 'lib/scnr/introspector/coverage/resource.rb', line 59 def included_lines lines - skipped_lines end |
#miss_percentage ⇒ Float
Returns Percentage of #missed_lines.
76 77 78 |
# File 'lib/scnr/introspector/coverage/resource.rb', line 76 def miss_percentage 100.0 - hit_percentage end |