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.
# File lib/rspec/core/shared_example_group.rb, line 8 def initialize(description, definition) @description = description @definition = definition end
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.
# File lib/rspec/core/shared_example_group.rb, line 22 def included(klass) inclusion_line = klass.metadata[:location] SharedExampleGroupInclusionStackFrame.with_frame(@description, inclusion_line) do klass.class_exec(&@definition) end end
Provides a human-readable representation of this module.
# File lib/rspec/core/shared_example_group.rb, line 14 def inspect "#<#{self.class.name} #{@description.inspect}>" end