Class: RSpec::Core::SharedExampleGroupModule

Inherits:
Module
  • Object
show all
Defined in:
lib/rspec/core/shared_example_group.rb

Overview

Represents some functionality that is shared with multiple example groups. The functionality is defined by the provided block, which is lazily eval'd when the SharedExampleGroupModule instance is included in an example group.

Instance Method Summary (collapse)

Constructor Details

- (SharedExampleGroupModule) initialize(description, definition)

Returns a new instance of SharedExampleGroupModule



8
9
10
11
# File 'lib/rspec/core/shared_example_group.rb', line 8

def initialize(description, definition)
  @description = description
  @definition  = definition
end

Instance Method Details

- (void) included(klass)

Ruby callback for when a module is included in another module is class. Our definition evaluates the shared group block in the context of the including example group.



22
23
24
25
26
27
# File 'lib/rspec/core/shared_example_group.rb', line 22

def included(klass)
  inclusion_line = klass.[:location]
  SharedExampleGroupInclusionStackFrame.with_frame(@description, inclusion_line) do
    klass.class_exec(&@definition)
  end
end

- (void) inspect Also known as: to_s

Provides a human-readable representation of this module.



14
15
16
# File 'lib/rspec/core/shared_example_group.rb', line 14

def inspect
  "#<#{self.class.name} #{@description.inspect}>"
end