Class: Bparity::Recording::Canonicalizer

Inherits:
Object
  • Object
show all
Defined in:
lib/bparity/recording.rb

Constant Summary collapse

UUID =
/\b[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}\b/i

Instance Method Summary collapse

Constructor Details

#initialize(config = {}) ⇒ Canonicalizer

Returns a new instance of Canonicalizer.



137
138
139
140
# File 'lib/bparity/recording.rb', line 137

def initialize(config = {})
  @config = config
  @ids = {}
end

Instance Method Details

#call(value) ⇒ Object



142
143
144
145
146
147
148
149
150
151
152
153
# File 'lib/bparity/recording.rb', line 142

def call(value)
  case value
  when String then canonical_string(value)
  when Float then canonical_float(value)
  when Array then value.map { |item| call(item) }
  when Hash
    return { "$time" => @config[:freeze_time] } if value.key?("$time") && @config[:freeze_time]

    value.to_h { |key, item| [key, call(item)] }
  else value
  end
end