Serializer should be available wiithing adapter to inspect attributes and assotions

This commit is contained in:
Tema Bolshakov 2014-08-27 09:09:01 +04:00
parent 6cc4fa0258
commit 553c470e10
3 changed files with 10 additions and 4 deletions

View File

@ -5,8 +5,10 @@ module ActiveModel
autoload :SimpleAdapter
autoload :NullAdapter
attr_reader :serializer
def initialize(serializer)
@attributes = serializer.attributes
@serializer = serializer
end
def serializable_hash(options = {})

View File

@ -3,7 +3,7 @@ module ActiveModel
class Adapter
class SimpleAdapter < Adapter
def to_json(options={})
@attributes.each_with_object({}) do |(attr, value), h|
serializer.attributes.each_with_object({}) do |(attr, value), h|
h[attr] = value
end.to_json # FIXME: why does passing options here cause {}?
end

View File

@ -5,8 +5,8 @@ module ActiveModel
class AdapterTest < Minitest::Test
def setup
profile = Profile.new
serializer = ProfileSerializer.new(profile)
@adapter = ActiveModel::Serializer::Adapter.new(serializer)
@serializer = ProfileSerializer.new(profile)
@adapter = ActiveModel::Serializer::Adapter.new(@serializer)
end
def test_serializable_hash_is_abstract_method
@ -20,6 +20,10 @@ module ActiveModel
@adapter.to_json(only: [:name])
end
end
def test_serializer
assert_equal @serializer, @adapter.serializer
end
end
class AdapterForTest < Minitest::Test