module JsonapiSerializer::Common
Public Class Methods
new(opts = {})
click to toggle source
# File lib/jsonapi_serializer/common.rb, line 8 def initialize(opts = {}) @type = self.class.meta_type || guess_type end
Public Instance Methods
serializable_hash(payload, opts = {})
click to toggle source
# File lib/jsonapi_serializer/common.rb, line 16 def serializable_hash(payload, opts = {}) hash = {} context = {tracker: {}, included: []} if payload.respond_to?(:map) hash[:data] = payload.map { |p| record_hash(p, context) } else hash[:data] = record_hash(payload, context) end hash[:meta] = opts[:meta] if opts.has_key? :meta hash[:included] = context[:included] if context[:included].present? hash end
serialized_json(payload, opts = {})
click to toggle source
# File lib/jsonapi_serializer/common.rb, line 31 def serialized_json(payload, opts = {}) MultiJson.dump(serializable_hash payload, opts) end
type()
click to toggle source
# File lib/jsonapi_serializer/common.rb, line 12 def type @type end
Private Instance Methods
guess_type()
click to toggle source
# File lib/jsonapi_serializer/common.rb, line 36 def guess_type if self.class.name.end_with?('Serializer') JsonapiSerializer.type_transform(self.class.name.chomp('Serializer')) else raise "Serializer class must end with `Serializer` in order to be able to guess type" end end