Module: LlmCostTracker::ValueHelpers
- Defined in:
- lib/llm_cost_tracker/value_helpers.rb
Class Method Summary collapse
Class Method Details
.deep_dup(value) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/llm_cost_tracker/value_helpers.rb', line 6 def deep_dup(value) case value when Hash value.each_with_object({}) do |(key, nested_value), duplicated| duplicated[deep_dup(key)] = deep_dup(nested_value) end when Array value.map { |nested_value| deep_dup(nested_value) } when String value.dup else value end end |
.deep_freeze(value) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/llm_cost_tracker/value_helpers.rb', line 21 def deep_freeze(value) case value when Hash value.each do |key, nested_value| deep_freeze(key) deep_freeze(nested_value) end value.frozen? ? value : value.freeze when Array value.each { |nested_value| deep_freeze(nested_value) } value.frozen? ? value : value.freeze when String value.frozen? ? value : value.freeze else value end end |