Sha256: 45a8fe6be94738f004444c635a29c9bf416d38f4d2c4173d9f3c195fbc445b8c
Contents?: true
Size: 836 Bytes
Versions: 20
Compression:
Stored size: 836 Bytes
Contents
# frozen_string_literal: true module Spotlight module Analytics # Display Analytics aggregations as table class AggregationComponent < ViewComponent::Base def initialize(data:, exclude_fields: nil) super @exclude_fields = exclude_fields @data = data end def render? display_fields.to_h.present? end def display_fields return @data unless @exclude_fields filtered_data = @data.to_h.except(*@exclude_fields) OpenStruct.new(filtered_data) end def format_field(key, value) if value.is_a?(Float) if key.to_s.downcase.include?('rate') "#{(value * 100).to_i}%" else Kernel.format('%.2f', value) end else value end end end end end
Version data entries
20 entries across 20 versions & 1 rubygems