Sha256: a90f33cf22f219a41a0bd3f4f4f59294f7a47a447e462823bfc74fc33ca1ffb2

Contents?: true

Size: 831 Bytes

Versions: 13

Compression:

Stored size: 831 Bytes

Contents

module Rspec
  module Core
    module SharedExampleGroupKernelExtensions

      def share_examples_for(name, &block)
        Rspec::Core.world.shared_example_groups[name] = block
      end

      def share_as(name, &block)
        if Object.const_defined?(name)
          puts "name was defined as #{name.inspect}"
          raise NameError, "The first argument (#{name}) to share_as must be a legal name for a constant not already in use."
        end
        
        mod = Module.new do
          @shared_block = block

          def self.included(kls)
            kls.module_eval(&@shared_block)
          end
        end

        shared_const = Object.const_set(name, mod)
        Rspec::Core.world.shared_example_groups[shared_const] = block
      end

      alias :shared_examples_for :share_examples_for

    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
rspec-core-2.0.0.beta.5 lib/rspec/core/shared_example_group_kernel_extensions.rb
rspec-core-2.0.0.beta.4 lib/rspec/core/shared_example_group_kernel_extensions.rb
rspec-core-2.0.0.beta.3 lib/rspec/core/shared_example_group_kernel_extensions.rb
rspec-core-2.0.0.beta.2 lib/rspec/core/shared_example_group_kernel_extensions.rb
rspec-core-2.0.0.beta.1 lib/rspec/core/shared_example_group_kernel_extensions.rb
rspec-core-2.0.0.a10 lib/rspec/core/shared_example_group_kernel_extensions.rb
rspec-core-2.0.0.a9 lib/rspec/core/shared_example_group_kernel_extensions.rb
rspec-core-2.0.0.a8 lib/rspec/core/shared_example_group_kernel_extensions.rb
rspec-core-2.0.0.a7 lib/rspec/core/shared_example_group_kernel_extensions.rb
rspec-core-2.0.0.a6 lib/rspec/core/shared_example_group_kernel_extensions.rb
rspec-core-2.0.0.a5 lib/rspec/core/shared_example_group_kernel_extensions.rb
rspec-core-2.0.0.a4 lib/rspec/core/shared_example_group_kernel_extensions.rb
rspec-core-2.0.0.a3 lib/rspec/core/shared_example_group_kernel_extensions.rb