Class: RubyEventStore::TransformKeys

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_event_store/transform_keys.rb

Class Method Summary collapse

Class Method Details

.stringify(data) ⇒ Object



3
4
5
# File 'lib/ruby_event_store/transform_keys.rb', line 3

def self.stringify(data)
  transform(data) {|k| k.to_s}
end

.symbolize(data) ⇒ Object



7
8
9
# File 'lib/ruby_event_store/transform_keys.rb', line 7

def self.symbolize(data)
  transform(data) {|k| k.to_sym}
end

.transform(data, &block) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/ruby_event_store/transform_keys.rb', line 12

def self.transform(data, &block)
  data.each_with_object({}) do |(k, v), h|
    h[yield(k)] = case v
      when Hash
        transform(v, &block)
      when Array
        v.map{|i| Hash === i ? transform(i, &block) : i}
      else
        v
    end
  end
end