Sha256: 0b04a7b5b731d93db8307d58b47553a17715d5389434353dbc48068ecfae494b

Contents?: true

Size: 1.4 KB

Versions: 16

Compression:

Stored size: 1.4 KB

Contents

module RSpec
  module Rails
    module ViewAssigns
      extend ActiveSupport::Concern

      module InstanceMethods
        # :call-seq:
        #   assign(:widget, stub_model(Widget))
        #
        # Assigns a value to an instance variable in the scope of the
        # view being rendered.
        def assign(key, value)
          _encapsulated_assigns[key] = value
        end

        def view_assigns
          begin
            # TODO: _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.
            super.merge(_encapsulated_assigns)
          rescue
            _assigns
          end
        end

        def _assigns
          super.merge(_encapsulated_assigns)
        end

      private

        def _encapsulated_assigns
          @_encapsulated_assigns ||= {}
        end
      end

    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
rspec-rails-2.7.0.rc1 lib/rspec/rails/view_assigns.rb
rspec-rails-2.6.1 lib/rspec/rails/view_assigns.rb
rspec-rails-2.6.1.beta1 lib/rspec/rails/view_assigns.rb
rspec-rails-2.6.0 lib/rspec/rails/view_assigns.rb
rspec-rails-2.6.0.rc6 lib/rspec/rails/view_assigns.rb
rspec-rails-2.6.0.rc4 lib/rspec/rails/view_assigns.rb
rspec-rails-2.6.0.rc2 lib/rspec/rails/view_assigns.rb
rspec-rails-2.5.0 lib/rspec/rails/view_assigns.rb
rspec-rails-2.4.1 lib/rspec/rails/view_assigns.rb
rspec-rails-2.4.0 lib/rspec/rails/view_assigns.rb
rspec-rails-2.3.1 lib/rspec/rails/view_assigns.rb
rspec-rails-2.3.0 lib/rspec/rails/view_assigns.rb
rspec-rails-2.2.1 lib/rspec/rails/view_assigns.rb
rspec-rails-2.2.0 lib/rspec/rails/view_assigns.rb
rspec-rails-2.1.0 lib/rspec/rails/view_assigns.rb
rspec-rails-2.0.1 lib/rspec/rails/view_assigns.rb