Class: FMCache::Encoder

Inherits:
Object
  • Object
show all
Defined in:
lib/fmcache/encoder.rb,
lib/fmcache/encoder/itemizer.rb

Defined Under Namespace

Classes: Itemizer

Instance Method Summary collapse

Instance Method Details

#encode(values, field_mask) ⇒ { String => { String => <Hash> } }

Parameters:

  • values (<Hash>)
  • field_mask (FieldMaskParser::Node)

Returns:

  • ({ String => { String => <Hash> } })


8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/fmcache/encoder.rb', line 8

def encode(values, field_mask)
  fields = Helper.to_fields(field_mask)

  r = {}
  values.each do |value|
    h = {}
    fields.each do |f|
      h[f] = []
    end
    h.merge! encode_one(value, field_mask)

    id = value.fetch(:id)
    r[Helper.to_key(id)] = h
  end
  r
end

#encode_one(value, field_mask) ⇒ { String => <Hash> }

Parameters:

  • value (Hash)
  • field_mask (FieldMaskParser::Node)

Returns:

  • ({ String => <Hash> })


28
29
30
31
32
# File 'lib/fmcache/encoder.rb', line 28

def encode_one(value, field_mask)
  itemizer = Itemizer.new(value, field_mask)
  itemizer.run!
  itemizer.items
end