class PragmaticSerializer::CollectionSerializer
Constants
- OverMaximumLimit
Attributes
include_resources_json[W]
limit[W]
offset[W]
pagination_evaluator[RW]
resource_serializer[RW]
resource_serializer_wrapper[W]
resources[RW]
serialization_method[W]
total[RW]
Public Instance Methods
as_json()
click to toggle source
# File lib/pragmatic_serializer/collection_serializer.rb, line 57 def as_json hash = {} hash.merge!({ collection_prefix => as_unprefixed_json }) if include_resources_json hash.merge!(pagination_json.as_json) if pagination_evaluator hash end
as_unprefixed_json()
click to toggle source
# File lib/pragmatic_serializer/collection_serializer.rb, line 64 def as_unprefixed_json collection_serializers .map do |rs| resource_serializer_wrapper.call do rs.send(serialization_method) end end .compact end
include_resources_json()
click to toggle source
# File lib/pragmatic_serializer/collection_serializer.rb, line 52 def include_resources_json return @include_resources_json unless @include_resources_json.nil? @include_resources_json ||= true end
limit()
click to toggle source
# File lib/pragmatic_serializer/collection_serializer.rb, line 42 def limit @limit ||= config.default_limit raise OverMaximumLimit if @limit > config.max_limit @limit end
offset()
click to toggle source
# File lib/pragmatic_serializer/collection_serializer.rb, line 48 def offset @offset ||= config.default_offset end
resource_options()
click to toggle source
# File lib/pragmatic_serializer/collection_serializer.rb, line 28 def resource_options @resource_options ||= ResourceOptions.new end
resource_options=(**options)
click to toggle source
# File lib/pragmatic_serializer/collection_serializer.rb, line 32 def resource_options=(**options) options.each_pair do |method_name, value| resource_options.send(method_name, value) end end
resource_serializer_wrapper()
click to toggle source
# File lib/pragmatic_serializer/collection_serializer.rb, line 74 def resource_serializer_wrapper @resource_serializer_wrapper ||= PragmaticSerializer::ResourceSerializerWrapper end
serialization_method()
click to toggle source
# File lib/pragmatic_serializer/collection_serializer.rb, line 38 def serialization_method @serialization_method ||= config.default_resource_serialization_method end
Private Instance Methods
collection_serializers()
click to toggle source
# File lib/pragmatic_serializer/collection_serializer.rb, line 81 def collection_serializers resources.map do |resource| resource_object = resource_serializer.new(resource) resource_options._call_each_reg_method_pair(resource_object) resource_object end end
pagination_json()
click to toggle source
# File lib/pragmatic_serializer/collection_serializer.rb, line 89 def pagination_json @pagination_json ||= PragmaticSerializer::PaginationJSON.new({ limit: limit, offset: offset, total: total, pagination_evaluator: pagination_evaluator }) end