Class: FMCache::Decoder
- Inherits:
-
Object
- Object
- FMCache::Decoder
- Defined in:
- lib/fmcache/decoder.rb,
lib/fmcache/decoder/decode_result.rb,
lib/fmcache/decoder/value_decoder.rb,
lib/fmcache/decoder/fields_checker.rb,
lib/fmcache/decoder/value_decoder/data.rb,
lib/fmcache/decoder/value_decoder/item.rb
Defined Under Namespace
Classes: DecodeResult, FieldsChecker, ValueDecoder
Instance Attribute Summary collapse
-
#field_mask_parser ⇒ Object
readonly
Returns the value of attribute field_mask_parser.
-
#fields_checker ⇒ Object
readonly
Returns the value of attribute fields_checker.
-
#value_decoder ⇒ Object
readonly
Returns the value of attribute value_decoder.
Instance Method Summary collapse
- #decode(hash, field_mask) ⇒ <Hash>, IncompleteInfo
-
#initialize(field_mask_parser) ⇒ Decoder
constructor
A new instance of Decoder.
Constructor Details
#initialize(field_mask_parser) ⇒ Decoder
Returns a new instance of Decoder.
8 9 10 11 12 |
# File 'lib/fmcache/decoder.rb', line 8 def initialize(field_mask_parser) @field_mask_parser = field_mask_parser @value_decoder = ValueDecoder.new @fields_checker = FieldsChecker.new end |
Instance Attribute Details
#field_mask_parser ⇒ Object (readonly)
Returns the value of attribute field_mask_parser.
14 15 16 |
# File 'lib/fmcache/decoder.rb', line 14 def field_mask_parser @field_mask_parser end |
#fields_checker ⇒ Object (readonly)
Returns the value of attribute fields_checker.
14 15 16 |
# File 'lib/fmcache/decoder.rb', line 14 def fields_checker @fields_checker end |
#value_decoder ⇒ Object (readonly)
Returns the value of attribute value_decoder.
14 15 16 |
# File 'lib/fmcache/decoder.rb', line 14 def value_decoder @value_decoder end |
Instance Method Details
#decode(hash, field_mask) ⇒ <Hash>, IncompleteInfo
19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/fmcache/decoder.rb', line 19 def decode(hash, field_mask) list = hash.values check_result = fields_checker.check(list, field_mask) decode_result = decode_list(check_result.list, field_mask: field_mask) f = Helper.to_fields(field_mask) - check_result.missing_fields.to_a i_decode_result = decode_list(check_result.incomplete_list, fields: f) concat(check_result, decode_result, i_decode_result) end |