class Rspec::Core::Metadata
def process(*args)
def process(*args) extra_metadata = args.last.is_a?(Hash) ? args.pop : {} extra_metadata.delete(:example_group) # Remove it when present to prevent it clobbering the one we setup extra_metadata.delete(:behaviour) # Remove it when present to prevent it clobbering the one we setup self[:example_group][:describes] = args.shift unless args.first.is_a?(String) self[:example_group][:describes] ||= self.superclass_metadata && self.superclass_metadata[:example_group][:describes] self[:example_group][:description] = args.shift || '' self[:example_group][:name] = determine_name self[:example_group][:block] = extra_metadata.delete(:example_group_block) self[:example_group][:caller] = extra_metadata.delete(:caller) self[:example_group][:file_path] = file_path_from(self[:example_group], extra_metadata.delete(:file_path)) self[:example_group][:line_number] = line_number_from(self[:example_group], extra_metadata.delete(:line_number)) self[:example_group][:location] = location_from(self[:example_group]) update(extra_metadata) end