Sha256: 8078dc83a8aafd003155d71f48885986cdc84f85c87a0802decf33a6988bc5c8
Contents?: true
Size: 1.29 KB
Versions: 2
Compression:
Stored size: 1.29 KB
Contents
require 'restful/serializers/base' # # AR params hash. # module Restful module Serializers class HashSerializer < Base serializer_name :hash def serialize(resource, options = {}) resource.is_a?(Restful::ApiModel::Collection) ? serialize_collection(resource) : serialize_tuples(resource.values, resource.full_url) end private def serialize_collection(collection) values = collection.value.map { |r| serialize(r) } if entries = collection.total_entries values = { :total_entries => entries, collection.name => values } end values end def serialize_tuples(tuples, url) tuples.inject({ "restful_url" => url }) do |params, value| params[value.name.to_s.tr("-", "_").to_sym] = serialize_value(value) params end end def serialize_value(value) case value.type when :collection then serialize_collection(value) when :link then Restful::Rails.tools.dereference(value.value) when :resource then serialize(value) else formatted_value(value) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
purzelrakete-restful-0.2.5 | lib/restful/serializers/hash_serializer.rb |
purzelrakete-restful-0.2.6 | lib/restful/serializers/hash_serializer.rb |