# File lib/rspec/core/metadata.rb, line 26
      def process(*args)
        user_metadata = args.last.is_a?(Hash) ? args.pop : {}
        ensure_valid_keys(user_metadata)

        self[:example_group][:describes] = described_class_from(*args)
        self[:example_group][:description] = description_from(*args)
        self[:example_group][:full_description] = full_description_from(*args)

        self[:example_group][:block] = user_metadata.delete(:example_group_block)
        self[:example_group][:file_path], self[:example_group][:line_number] = file_and_line_number_from(user_metadata.delete(:caller) || caller)
        self[:example_group][:location] = location_from(self[:example_group])

        update(user_metadata)
      end