module RSpec::Core::SharedExampleGroup

def shared_examples *args, &block

Other tags:
    See: ExampleGroup.include_context -
    See: ExampleGroup.include_examples -
    See: ExampleGroup.it_behaves_like -

Parameters:
  • block () -- to be eval'd in a nested example group generated by `it_behaves_like`
  • name (String) -- to match when looking up this shared group

Overloads:
  • shared_examples(name, tags, &block)
  • shared_examples(name, &block)
def shared_examples *args, &block
  if key? args.first
    key = args.shift
    raise_key_taken key if key_taken? key
    RSpec.world.shared_example_groups[key] = block
  end
  unless args.empty?
    mod = Module.new
    (class << mod; self; end).send :define_method, :extended  do |host|
      host.class_eval(&block)
    end
    RSpec.configuration.extend mod, *args
  end
end