Module: RSpec::Core::SharedExampleGroup::TopLevelDSL Private

Defined in:
lib/rspec/core/shared_example_group.rb

Overview

This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.

Shared examples top level DSL.

Class Method Summary collapse

Class Method Details

.definitionsObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



106
107
108
109
110
111
112
113
114
# File 'lib/rspec/core/shared_example_group.rb', line 106

def self.definitions
  proc do
    def shared_examples(name, *args, &block)
      RSpec.world.shared_example_group_registry.add(:main, name, *args, &block)
    end
    alias shared_context      shared_examples
    alias shared_examples_for shared_examples
  end
end

.expose_globally!Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Adds the top level DSL methods to Module and the top level binding.



124
125
126
127
128
# File 'lib/rspec/core/shared_example_group.rb', line 124

def self.expose_globally!
  return if exposed_globally?
  Core::DSL.change_global_dsl(&definitions)
  @exposed_globally = true
end

.exposed_globally?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Boolean)


117
118
119
# File 'lib/rspec/core/shared_example_group.rb', line 117

def self.exposed_globally?
  @exposed_globally ||= false
end

.remove_globally!Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Removes the top level DSL methods to Module and the top level binding.



133
134
135
136
137
138
139
140
141
142
143
# File 'lib/rspec/core/shared_example_group.rb', line 133

def self.remove_globally!
  return unless exposed_globally?

  Core::DSL.change_global_dsl do
    undef shared_examples
    undef shared_context
    undef shared_examples_for
  end

  @exposed_globally = false
end