Sha256: 4da867dd6eff169d8acdbf18b5bdbbb6e66aec8c50d6e15e3f22d7e059ae7f8b

Contents?: true

Size: 1.35 KB

Versions: 64

Compression:

Stored size: 1.35 KB

Contents

module RSpec
  module Rails
    # Helpers for making instance variables available to views.
    module ViewAssigns
      # Assigns a value to an instance variable in the scope of the
      # view being rendered.
      #
      # @example
      #
      #     assign(:widget, stub_model(Widget))
      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.
      def view_assigns
        super.merge(_encapsulated_assigns)
      rescue
        _assigns
      end

      # @private
      def _assigns
        super.merge(_encapsulated_assigns)
      end

    private

      def _encapsulated_assigns
        @_encapsulated_assigns ||= {}
      end
    end
  end
end

Version data entries

64 entries across 61 versions & 8 rubygems

Version Path
scrapbook-0.3.2 vendor/ruby/2.7.0/gems/rspec-rails-5.1.1/lib/rspec/rails/view_assigns.rb
scrapbook-0.3.2 vendor/ruby/2.7.0/gems/rspec-rails-5.1.2/lib/rspec/rails/view_assigns.rb
scrapbook-0.3.1 vendor/ruby/2.7.0/gems/rspec-rails-5.1.2/lib/rspec/rails/view_assigns.rb
scrapbook-0.3.1 vendor/ruby/2.7.0/gems/rspec-rails-5.1.1/lib/rspec/rails/view_assigns.rb
rspec-rails-5.1.2 lib/rspec/rails/view_assigns.rb
rspec-rails-6.0.0.rc1 lib/rspec/rails/view_assigns.rb
rspec-rails-5.1.1 lib/rspec/rails/view_assigns.rb
rspec-rails-5.1.0 lib/rspec/rails/view_assigns.rb
rspec-rails-5.0.3 lib/rspec/rails/view_assigns.rb
date_n_time_picker_activeadmin-0.1.2 vendor/bundle/ruby/2.6.0/gems/rspec-rails-5.0.2/lib/rspec/rails/view_assigns.rb
date_n_time_picker_activeadmin-0.1.1 vendor/bundle/ruby/2.6.0/gems/rspec-rails-5.0.2/lib/rspec/rails/view_assigns.rb
rspec-rails-5.0.2 lib/rspec/rails/view_assigns.rb
rails_mini_profiler-0.2.0 vendor/bundle/ruby/3.0.0/gems/rspec-rails-4.1.2/lib/rspec/rails/view_assigns.rb
rspec-rails-5.0.1 lib/rspec/rails/view_assigns.rb
rspec-rails-4.1.2 lib/rspec/rails/view_assigns.rb
rspec-rails-5.0.0 lib/rspec/rails/view_assigns.rb
rspec-rails-4.1.1 lib/rspec/rails/view_assigns.rb
rspec-rails-4.1.0 lib/rspec/rails/view_assigns.rb
rspec-rails-4.0.2 lib/rspec/rails/view_assigns.rb
rspec-rails-4.0.1 lib/rspec/rails/view_assigns.rb