# File lib/rspec/core/metadata.rb, line 28
      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][:caller] = user_metadata.delete(:caller) || caller(1)
        self[:example_group][:file_path] = file_path_from(self[:example_group], user_metadata.delete(:file_path))
        self[:example_group][:line_number] = line_number_from(self[:example_group], user_metadata.delete(:line_number))
        self[:example_group][:location] = location_from(self[:example_group])

        update(user_metadata)
      end