class RSpec::Core::SharedExampleGroupModule
group.
eval’d when the ‘SharedExampleGroupModule` instance is included in an example
The functionality is defined by the provided block, which is lazily
Represents some functionality that is shared with multiple example groups.
def include_in(klass, inclusion_line, args, customization_block)
- Private: -
def include_in(klass, inclusion_line, args, customization_block) klass.update_inherited_metadata(@metadata) unless @metadata.empty? SharedExampleGroupInclusionStackFrame.with_frame(@description, inclusion_line) do klass.class_exec(*args, &@definition) klass.class_exec(&customization_block) if customization_block end end
def included(klass)
Our definition evaluates the shared group block in the context of the
Ruby callback for when a module is included in another module is class.
def included(klass) inclusion_line = klass.metadata[:location] include_in klass, inclusion_line, [], nil end
def initialize(description, definition, metadata)
def initialize(description, definition, metadata) @description = description @definition = definition @metadata = metadata end
def inspect
def inspect "#<#{self.class.name} #{@description.inspect}>" end