提交 0101d27d 编写于 作者: M Mark McSpadden

Allow ActiveResource subclasses to inherit headers from parent

上级 11d1bdc0
...@@ -588,6 +588,12 @@ def connection(refresh = false) ...@@ -588,6 +588,12 @@ def connection(refresh = false)
def headers def headers
@headers ||= {} @headers ||= {}
if superclass != Object && superclass.headers
@headers = superclass.headers.merge(@headers)
else
@headers
end
end end
attr_writer :element_name attr_writer :element_name
......
...@@ -437,6 +437,52 @@ def test_updating_baseclass_timeout_wipes_descendent_cached_connection_objects ...@@ -437,6 +437,52 @@ def test_updating_baseclass_timeout_wipes_descendent_cached_connection_objects
assert_not_equal(first_connection, second_connection, 'Connection should be re-created') assert_not_equal(first_connection, second_connection, 'Connection should be re-created')
end end
def test_header_inheritance
fruit = Class.new(ActiveResource::Base)
apple = Class.new(fruit)
fruit.site = 'http://market'
fruit.headers['key'] = 'value'
assert_equal 'value', apple.headers['key']
end
def test_header_inheritance_set_at_multiple_points
fruit = Class.new(ActiveResource::Base)
apple = Class.new(fruit)
fruit.site = 'http://market'
fruit.headers['key'] = 'value'
assert_equal 'value', apple.headers['key']
apple.headers['key2'] = 'value2'
fruit.headers['key3'] = 'value3'
assert_equal 'value', apple.headers['key']
assert_equal 'value2', apple.headers['key2']
assert_equal 'value3', apple.headers['key3']
end
def test_header_inheritance_should_not_leak_upstream
fruit = Class.new(ActiveResource::Base)
apple = Class.new(fruit)
fruit.site = 'http://market'
fruit.headers['key'] = 'value'
apple.headers['key2'] = 'value2'
assert_equal nil, fruit.headers['key2']
end
def test_header_inheritance_should_not_leak_upstream
fruit = Class.new(ActiveResource::Base)
apple = Class.new(fruit)
fruit.site = 'http://market'
fruit.headers['key'] = 'value'
apple.headers['key2'] = 'value2'
assert_equal nil, fruit.headers['key2']
end
######################################################################## ########################################################################
# Tests for setting up remote URLs for a given model (including adding # Tests for setting up remote URLs for a given model (including adding
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册