active_model_serializers/lib/active_model/default_serializer.rb
Ken Ip 8ca4d4fcd6 HasOne nil object should return [] under embedded key.
Ensure that @wrap_in_array is always respected when set to true even
when associated object is nil.
2014-03-10 16:42:04 -03:00

26 lines
575 B
Ruby

require 'active_model/serializable'
module ActiveModel
# DefaultSerializer
#
# Provides a constant interface for all items
class DefaultSerializer
include ActiveModel::Serializable
attr_reader :object
def initialize(object, options={})
@object = object
@wrap_in_array = options[:_wrap_in_array]
end
def as_json(options={})
return [] if @object.nil? && @wrap_in_array
hash = @object.as_json
@wrap_in_array ? [hash] : hash
end
alias serializable_hash as_json
alias serializable_object as_json
end
end