module RSpec::Rails::ViewAssigns
Helpers for making instance variables available to views.
Public Instance Methods
@private
# File lib/rspec/rails/view_assigns.rb, line 34 def _assigns super.merge(_encapsulated_assigns) end
Assigns a value to an instance variable in the scope of the view being rendered.
@example
assign(:widget, stub_model(Widget))
# File lib/rspec/rails/view_assigns.rb, line 11 def assign(key, value) _encapsulated_assigns[key] = value end
Compat-shim for AbstractController::Rendering#view_assigns
_assigns was deprecated in favor of #view_assigns after Rails-3.0.0 was released. Since we are not able to predict when the _assigns/view_assigns patch will be released (I thought it would have been in 3.0.1, but 3.0.1 bypassed this change for a security fix), this bit ensures that we do the right thing without knowing anything about the Rails version we are dealing with.
Once that change is released, this can be changed to something that checks for the Rails version when the module is being interpreted, as it was before commit dd0095.
# File lib/rspec/rails/view_assigns.rb, line 27 def view_assigns super.merge(_encapsulated_assigns) rescue _assigns end
Private Instance Methods
# File lib/rspec/rails/view_assigns.rb, line 40 def _encapsulated_assigns @_encapsulated_assigns ||= {} end