# File lib/rspec/core/shared_example_group.rb, line 12
      def shared_examples(*args, &block)
        if [String, Symbol, Module].any? {|cls| cls === args.first }
          object = args.shift
          ensure_shared_example_group_name_not_taken(object)
          RSpec.world.shared_example_groups[object] = 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