Class: SimpleJsonApi::FieldList
- Inherits:
-
Object
- Object
- SimpleJsonApi::FieldList
- 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
- #field_list ⇒ Object
- #fields_for(resource) ⇒ Object
-
#initialize(fields:, root_serializer:) ⇒ FieldList
constructor
A new instance of FieldList.
- #parse ⇒ Object
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_list ⇒ Object
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 |
#parse ⇒ Object
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 |