Class: AbideDevUtils::Sce::Generate::CoverageReport::ReportOutput

Inherits:
Object
  • Object
show all
Defined in:
lib/abide_dev_utils/sce/generate/coverage_report.rb

Overview

Class manages organizing report data into various output formats

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(benchmark, controls_in_resource_data, rules_in_map) ⇒ ReportOutput

Returns a new instance of ReportOutput.



237
238
239
240
241
242
243
# File 'lib/abide_dev_utils/sce/generate/coverage_report.rb', line 237

def initialize(benchmark, controls_in_resource_data, rules_in_map)
  @benchmark = benchmark
  @controls_in_resource_data = controls_in_resource_data
  @rules_in_map = rules_in_map
  @timestamp = DateTime.now.iso8601
  @title = "Coverage Report for #{@benchmark.title_key}"
end

Instance Attribute Details

#controls_in_resource_dataObject (readonly)

Returns the value of attribute controls_in_resource_data.



234
235
236
# File 'lib/abide_dev_utils/sce/generate/coverage_report.rb', line 234

def controls_in_resource_data
  @controls_in_resource_data
end

#rules_in_mapObject (readonly)

Returns the value of attribute rules_in_map.



234
235
236
# File 'lib/abide_dev_utils/sce/generate/coverage_report.rb', line 234

def rules_in_map
  @rules_in_map
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



234
235
236
# File 'lib/abide_dev_utils/sce/generate/coverage_report.rb', line 234

def timestamp
  @timestamp
end

#titleObject (readonly)

Returns the value of attribute title.



234
235
236
# File 'lib/abide_dev_utils/sce/generate/coverage_report.rb', line 234

def title
  @title
end

Instance Method Details

#benchmark_hashObject



286
287
288
289
290
291
292
# File 'lib/abide_dev_utils/sce/generate/coverage_report.rb', line 286

def benchmark_hash
  {
    title: @benchmark.title,
    version: @benchmark.version,
    framework: @benchmark.framework
  }
end

#coverage_hashObject



294
295
296
297
298
299
300
301
302
303
304
305
# File 'lib/abide_dev_utils/sce/generate/coverage_report.rb', line 294

def coverage_hash
  {
    total_count: total_count,
    uncovered_count: uncovered_count,
    uncovered: uncovered,
    covered_count: covered_count,
    covered: covered,
    percentage: percentage,
    controls_in_resource_data: controls_in_resource_data,
    rules_in_map: rules_in_map
  }
end

#coveredObject



253
254
255
# File 'lib/abide_dev_utils/sce/generate/coverage_report.rb', line 253

def covered
  @covered ||= rules_in_map - uncovered
end

#covered_countObject



257
258
259
# File 'lib/abide_dev_utils/sce/generate/coverage_report.rb', line 257

def covered_count
  @covered_count ||= covered.length
end

#percentageObject



265
266
267
# File 'lib/abide_dev_utils/sce/generate/coverage_report.rb', line 265

def percentage
  @percentage ||= covered_count.to_f / total_count
end

#to_hObject



269
270
271
272
273
274
275
276
# File 'lib/abide_dev_utils/sce/generate/coverage_report.rb', line 269

def to_h
  {
    title: title,
    timestamp: timestamp,
    benchmark: benchmark_hash,
    coverage: coverage_hash
  }
end

#to_json(opts = nil) ⇒ Object



278
279
280
# File 'lib/abide_dev_utils/sce/generate/coverage_report.rb', line 278

def to_json(opts = nil)
  JSON.generate(to_h, opts)
end

#to_yamlObject



282
283
284
# File 'lib/abide_dev_utils/sce/generate/coverage_report.rb', line 282

def to_yaml
  to_h.to_yaml
end

#total_countObject



261
262
263
# File 'lib/abide_dev_utils/sce/generate/coverage_report.rb', line 261

def total_count
  @total_count ||= rules_in_map.length
end

#uncoveredObject



245
246
247
# File 'lib/abide_dev_utils/sce/generate/coverage_report.rb', line 245

def uncovered
  @uncovered ||= rules_in_map - controls_in_resource_data
end

#uncovered_countObject



249
250
251
# File 'lib/abide_dev_utils/sce/generate/coverage_report.rb', line 249

def uncovered_count
  @uncovered_count ||= uncovered.length
end