Module: Eluvia::Serializers::FieldsetSerializer

Defined in:
lib/eluvia/serializers/fieldset_serializer.rb

Instance Method Summary collapse

Instance Method Details

#default_read_fieldsObject



20
21
22
# File 'lib/eluvia/serializers/fieldset_serializer.rb', line 20

def default_read_fields
  nil
end

#read_attribute(record, field_name) ⇒ Object

Raises:

  • (NotImplementedError)


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_fieldsObject

Raises:

  • (NotImplementedError)


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