提交 8c63e7d3 编写于 作者: S Sergey Nartimov

instance_variables method returns symbols in 1.9 ruby

上级 0c1846e4
......@@ -183,32 +183,32 @@ def view
alias_method :_view, :view
INTERNAL_IVARS = %w{
@__name__
@__io__
@_assertion_wrapped
@_assertions
@_result
@_routes
@controller
@layouts
@locals
@method_name
@output_buffer
@partials
@passed
@rendered
@request
@routes
@templates
@options
@test_passed
@view
@view_context_class
}
INTERNAL_IVARS = [
:@__name__,
:@__io__,
:@_assertion_wrapped,
:@_assertions,
:@_result,
:@_routes,
:@controller,
:@layouts,
:@locals,
:@method_name,
:@output_buffer,
:@partials,
:@passed,
:@rendered,
:@request,
:@routes,
:@templates,
:@options,
:@test_passed,
:@view,
:@view_context_class
]
def _user_defined_ivars
instance_variables.map(&:to_s) - INTERNAL_IVARS
instance_variables - INTERNAL_IVARS
end
# Returns a Hash of instance variables and their values, as defined by
......@@ -216,8 +216,8 @@ def _user_defined_ivars
# rendered. This is generally intended for internal use and extension
# frameworks.
def view_assigns
Hash[_user_defined_ivars.map do |var|
[var[1, var.length].to_sym, instance_variable_get(var)]
Hash[_user_defined_ivars.map do |ivar|
[ivar[1..-1].to_sym, instance_variable_get(ivar)]
end]
end
......
......@@ -155,7 +155,7 @@ class ViewAssignsTest < ActionView::TestCase
test "view_assigns excludes internal ivars" do
INTERNAL_IVARS.each do |ivar|
assert defined?(ivar), "expected #{ivar} to be defined"
assert !view_assigns.keys.include?(ivar.sub('@','').to_sym), "expected #{ivar} to be excluded from view_assigns"
assert !view_assigns.keys.include?(ivar.to_s.sub('@', '').to_sym), "expected #{ivar} to be excluded from view_assigns"
end
end
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册