From 77169bfd3b3a81a775fa979766c4a3af55868651 Mon Sep 17 00:00:00 2001 From: louispt1 Date: Thu, 4 Dec 2025 17:31:19 +0100 Subject: [PATCH] Round share graph values to 14 --- lib/transformer/caster/template.rb | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/lib/transformer/caster/template.rb b/lib/transformer/caster/template.rb index c8c3e00..3ed9e6e 100644 --- a/lib/transformer/caster/template.rb +++ b/lib/transformer/caster/template.rb @@ -1,6 +1,8 @@ module Transformer module Caster class Template + PRECISION = 14 + def initialize @template = { area: {}, file_values: {}, graph_values: {} } end @@ -9,6 +11,9 @@ def add_graph_value(graph_method, value) key = graph_method.export_key.to_s export_method = graph_method.export_method + # Round all numeric values recursively to PRECISION decimals for consistency + value = deep_round(value) + @template.fetch(:graph_values)[key] ||= {} @template.fetch(:graph_values).fetch(key).store(export_method, value) end @@ -29,6 +34,22 @@ def get(key) def dump @template end + + private + + # Recursively rounds all Float values to PRECISION decimal places + def deep_round(value) + case value + when Float + value.round(PRECISION) + when Hash + value.transform_values { |v| deep_round(v) } + when Array + value.map { |v| deep_round(v) } + else + value + end + end end end end