Module: RSpec::Rails::ViewAssigns

Included in:
HelperExampleGroup, ViewExampleGroup
Defined in:
lib/rspec/rails/view_assigns.rb

Overview

Helpers for making instance variables available to views.

Instance Method Summary collapse

Instance Method Details

#assign(key, value) ⇒ Object

Assigns a value to an instance variable in the scope of the view being rendered.

Examples:


assign(:widget, stub_model(Widget))
11
12
13
# File 'lib/rspec/rails/view_assigns.rb', line 11
def assign(key, value)
  _encapsulated_assigns[key] = value
end

#view_assignsObject

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.

27
28
29
30
31
# File 'lib/rspec/rails/view_assigns.rb', line 27
def view_assigns
  super.merge(_encapsulated_assigns)
rescue
  _assigns
end