提交 96eec090 编写于 作者: M Michael Koziarski 提交者: Aaron Patterson

Work around a strange piece of Syck behaviour where it checks...

Work around a strange piece of Syck behaviour where it checks Model#respond_to? before initializing the object.

Things like YAML.load(YAML.dump(@post)) won't work without this.
上级 0afebd5b
......@@ -54,7 +54,7 @@ def respond_to?(*args)
protected
def attribute_method?(attr_name)
attr_name == 'id' || @attributes.include?(attr_name)
attr_name == 'id' || (defined?(@attributes) && @attributes.include?(attr_name))
end
end
end
......@@ -85,6 +85,17 @@ def test_respond_to?
assert !topic.respond_to?("nothingness")
assert !topic.respond_to?(:nothingness)
end
# Syck calls respond_to? before actually calling initialize
def test_respond_to_with_allocated_object
topic = Topic.allocate
assert !topic.respond_to?("nothingness")
assert !topic.respond_to?(:nothingness)
assert_respond_to topic, "title"
assert_respond_to topic, :title
end
def test_array_content
topic = Topic.new
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册