mirror of
https://github.com/github/rails.git
synced 2026-02-05 19:55:14 -05:00
Use real assigns instead of a method call [DHH]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3591 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
@@ -671,10 +671,6 @@ module ActionView
|
||||
@generator = generator
|
||||
@generator << root
|
||||
end
|
||||
|
||||
def assign(variable, value)
|
||||
append_to_function_chain! "#{variable} = #{@generator.send(:javascript_object_for, value)}"
|
||||
end
|
||||
|
||||
def replace_html(*options_for_render)
|
||||
call 'update', @generator.render(*options_for_render)
|
||||
@@ -685,12 +681,22 @@ module ActionView
|
||||
end
|
||||
|
||||
private
|
||||
def method_missing(method, *arguments)
|
||||
if method.to_s =~ /(.*)=$/
|
||||
assign($1, arguments.first)
|
||||
else
|
||||
call(method, *arguments)
|
||||
end
|
||||
end
|
||||
|
||||
def call(function, *arguments)
|
||||
append_to_function_chain!("#{function}(#{@generator.send(:arguments_for_call, arguments)})")
|
||||
self
|
||||
end
|
||||
|
||||
alias_method :method_missing, :call
|
||||
|
||||
def assign(variable, value)
|
||||
append_to_function_chain! "#{variable} = #{@generator.send(:javascript_object_for, value)}"
|
||||
end
|
||||
|
||||
def function_chain
|
||||
@function_chain ||= @generator.instance_variable_get("@lines")
|
||||
|
||||
@@ -238,7 +238,7 @@ Element.update("baz", "<p>This is a test</p>");
|
||||
end
|
||||
|
||||
def test_element_proxy_assignment
|
||||
@generator['hello'].assign :width, 400
|
||||
@generator['hello'].width = 400
|
||||
assert_equal %($('hello').width = 400;), @generator.to_s
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user