class XcMetricsAggregator::CategoriesService
Attributes
device_service[R]
percentile_service[R]
Public Class Methods
new(bundle_id, json)
click to toggle source
# File lib/xc_metrics_aggregator/service/categories_service.rb, line 7 def initialize(bundle_id, json) @json = json @bundle_id = bundle_id @device_service = DevicesService.new bundle_id, json @percentile_service = PercentilesService.new bundle_id, json end
Public Instance Methods
categories()
click to toggle source
# File lib/xc_metrics_aggregator/service/categories_service.rb, line 22 def categories @json["categories"].map { |json| Category.new json } end
get_available_dataset(section_name, device, percentile)
click to toggle source
# File lib/xc_metrics_aggregator/service/categories_service.rb, line 35 def get_available_dataset(section_name, device, percentile) section = categories.map { |category| category.sections.find { |section| section.display_name == section_name } }.flatten.compact.first if section.nil? return nil end datasets = section.datasets.select do |dataset| available_device = device ? dataset.filter_criteria.device == device.identifier : true available_percentile = percentile ? dataset.filter_criteria.percentile == percentile.identifier : true available_device && available_percentile && !dataset.points.empty? end.last datasets end
get_dataset(section_name, device, percentile)
click to toggle source
# File lib/xc_metrics_aggregator/service/categories_service.rb, line 26 def get_dataset(section_name, device, percentile) section = categories.map { |category| category.sections.find { |section| section.display_name == section_name } }.first dataset = section.datasets.find do |dataset| dataset.filter_criteria.device == device.identifier \ && dataset.filter_criteria.percentile == percentile.identifier end end
get_section(section_name)
click to toggle source
# File lib/xc_metrics_aggregator/service/categories_service.rb, line 53 def get_section(section_name) section = categories.map { |category| category.sections.find { |section| section.display_name == section_name } }.flatten.compact.first section end
structure()
click to toggle source
# File lib/xc_metrics_aggregator/service/categories_service.rb, line 14 def structure structure = XcMetricsAggregator::TableStructure.new structure.title = @bundle_id structure.headings = headings structure.rows = rows structure end
Private Instance Methods
headings()
click to toggle source
# File lib/xc_metrics_aggregator/service/categories_service.rb, line 73 def headings ["category", "section", "unit"] end
rows()
click to toggle source
# File lib/xc_metrics_aggregator/service/categories_service.rb, line 63 def rows categories.map do |category| [ category.display_name, category.sections.map{ |s| s.display_name }.join("\n"), category.sections.map{ |s| s.unit.display_name }.join("\n") ] end end