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> }
-
#initialize(id_key_gen) ⇒ Encoder
constructor
A new instance of Encoder.
Constructor Details
#initialize(id_key_gen) ⇒ Encoder
Returns a new instance of Encoder.
6 7 8 |
# File 'lib/fmcache/encoder.rb', line 6 def initialize(id_key_gen) @id_key_gen = id_key_gen end |
Instance Method Details
#encode(values, field_mask) ⇒ { String => { String => <Hash> } }
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/fmcache/encoder.rb', line 13 def encode(values, field_mask) fields = Helper.to_fields(field_mask) r = {} values.each do |value| # NOTE: `[]` is the default value of each field. h = fields.map { |f| [f, []] }.to_h h.merge! encode_one(value, field_mask) id = value.fetch(:id) r[@id_key_gen.to_key(id)] = h end r end |