Class: FMCache::Encoder
- Inherits:
-
Object
- Object
- FMCache::Encoder
- Defined in:
- lib/fmcache/encoder.rb,
lib/fmcache/encoder/itemizer.rb
Defined Under Namespace
Classes: Itemizer
Instance Method Summary collapse
- #encode(values, field_mask) ⇒ { String => { String => <Hash> } }
- #encode_one(value, field_mask) ⇒ { String => <Hash> }
Instance Method Details
#encode(values, field_mask) ⇒ { String => { String => <Hash> } }
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/fmcache/encoder.rb', line 8 def encode(values, field_mask) r = {} values.each do |value| h = {} # NOTE: initialize each field by array fields = Helper.to_fields(field_mask).map(&:to_s) fields.each do |f| h[f] = [] end encode_one(value, field_mask).each do |f, v| h[f] = v end id = value.fetch(:id) r[Helper.to_key(id)] = h end r end |
#encode_one(value, field_mask) ⇒ { String => <Hash> }
32 33 34 35 36 |
# File 'lib/fmcache/encoder.rb', line 32 def encode_one(value, field_mask) itemizer = Itemizer.new(value, field_mask) itemizer.run! itemizer.items end |