Class: SimpleJsonApi::FieldList

Inherits:
Object
  • Object
show all
Defined in:
lib/simple_json_api/field_list.rb

Overview

List of Fields for a resource

Constant Summary collapse

FIELD_LIST_PARSER =
->(list) { list.split(',').map(&:to_s) }

Instance Method Summary collapse

Constructor Details

#initialize(fields, root_serializer) ⇒ FieldList

Returns a new instance of FieldList.



5
6
7
8
# File 'lib/simple_json_api/field_list.rb', line 5

def initialize(fields, root_serializer)
  @fields = fields
  @root_serializer = root_serializer
end

Instance Method Details

#field_listObject



10
11
12
# File 'lib/simple_json_api/field_list.rb', line 10

def field_list
  @field_list ||= parse
end

#fields_for(resource) ⇒ Object



27
28
29
# File 'lib/simple_json_api/field_list.rb', line 27

def fields_for(resource)
  field_list.fetch(resource, nil)
end

#parseObject



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/simple_json_api/field_list.rb', line 14

def parse
  result = {}
  case @fields
  when Hash
    @fields.each do |resource, fields|
      result[resource.to_sym] = FIELD_LIST_PARSER.call(fields)
    end
  when String
    result[@root_serializer._root_name] = FIELD_LIST_PARSER.call(@fields)
  end
  result
end