module RSpec::Core::SharedContext

Exposes {ExampleGroup}-level methods to a module, so you can include that module in an {ExampleGroup}.

@example

module LoggedInAsAdmin
  extend RSpec::Core::SharedContext
  before(:each) do
    log_in_as :admin
  end
end

describe "admin section" do
  include LoggedInAsAdmin
  # ...
end

Constants

Recording

Public Class Methods

record(methods) click to toggle source

@api private

# File lib/rspec/core/shared_context.rb, line 39
      def self.record(methods)
        methods.each do |meth|
          class_eval <<-EOS, __FILE__, __LINE__ + 1
            def #{meth}(*args, &block)
              __shared_context_recordings << Recording.new(:#{meth}, args, block)
            end
          EOS
        end
      end

Public Instance Methods

__shared_context_recordings() click to toggle source

@api private

# File lib/rspec/core/shared_context.rb, line 28
def __shared_context_recordings
  @__shared_context_recordings ||= []
end
included(group) click to toggle source

@api private

# File lib/rspec/core/shared_context.rb, line 21
def included(group)
  __shared_context_recordings.each do |recording|
    recording.playback_onto(group)
  end
end