Module: Eluvia::Serializers::FieldsetSerializer
- Defined in:
- lib/eluvia/serializers/fieldset_serializer.rb
Instance Method Summary collapse
- #default_read_fields ⇒ Object
- #read_attribute(record, field_name) ⇒ Object
- #read_fieldset(fields = nil) ⇒ Object
- #readable_fields ⇒ Object
- #serialize(record, fields: nil) ⇒ Object
Instance Method Details
#default_read_fields ⇒ Object
20 21 22 |
# File 'lib/eluvia/serializers/fieldset_serializer.rb', line 20 def default_read_fields nil end |
#read_attribute(record, field_name) ⇒ Object
24 25 26 |
# File 'lib/eluvia/serializers/fieldset_serializer.rb', line 24 def read_attribute(record, field_name) raise NotImplementedError, "#{self.class} must implement #read_attribute" end |
#read_fieldset(fields = nil) ⇒ Object
11 12 13 14 |
# File 'lib/eluvia/serializers/fieldset_serializer.rb', line 11 def read_fieldset(fields = nil) @read_fieldsets ||= {} @read_fieldsets[fields] ||= resolve_read_fieldset(fields) end |
#readable_fields ⇒ Object
16 17 18 |
# File 'lib/eluvia/serializers/fieldset_serializer.rb', line 16 def readable_fields raise NotImplementedError, "#{self.class} must implement #readable_fields" end |
#serialize(record, fields: nil) ⇒ Object
5 6 7 8 9 |
# File 'lib/eluvia/serializers/fieldset_serializer.rb', line 5 def serialize(record, fields: nil) read_fieldset(fields).to_h do |rest_field| [rest_field.name, read_attribute(record, rest_field.name)] end end |