Sha256: df6ccdb1bd78874401bdb79af45818e86c204bdef731cf5f860faa6d45faba77
Contents?: true
Size: 794 Bytes
Versions: 1
Compression:
Stored size: 794 Bytes
Contents
class Hedgelog class Normalizer def normalize(data) # Need to Marshal.dump/Marshal.load to deep copy the input so that scrubbing doesn't change global state d = Marshal.load(Marshal.dump(data)) normalize_hash(d) end def normalize_struct(struct) normalize_hash(Hash[struct.each_pair.to_a]) end def normalize_hash(hash) Hash[hash.map do |key, val| [key, normalize_thing(val)] end] end def normalize_array(array) array.to_json end private def normalize_thing(thing) return '' if thing.nil? return normalize_struct(thing) if thing.is_a?(Struct) return normalize_array(thing) if thing.is_a?(Array) return normalize_hash(thing) if thing.is_a?(Hash) thing end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
hedgelog-0.1.6 | lib/hedgelog/normalizer.rb |