def <<(path_or_reference)
      return unless @document && @document.respond_to?(:root)

      case path_or_reference
      when String
        project_file_reference = Xcodeproj::Workspace::FileReference.new(path_or_reference)
      when Xcodeproj::Workspace::FileReference
        project_file_reference = path_or_reference
        projpath = nil
      else
        raise ArgumentError, "Input to the << operator must be a file path or FileReference, got #{path_or_reference.inspect}"
      end

      @document.root.add_element(project_file_reference.to_node)
      load_schemes_from_project File.expand_path(projpath || project_file_reference.path)
    end
def <<(path_or_reference)
      return unless @document && @document.respond_to?(:root)

      case path_or_reference
      when String
        project_file_reference = Xcodeproj::Workspace::FileReference.new(path_or_reference)
      when Xcodeproj::Workspace::FileReference
        project_file_reference = path_or_reference
        projpath = nil
      else
        raise ArgumentError, "Input to the << operator must be a file path or FileReference, got #{path_or_reference.inspect}"
      end

      @document.root.add_element(project_file_reference.to_node)
      load_schemes_from_project File.expand_path(projpath || project_file_reference.path)
    end
Adds a new path to the list of the of projects contained in the
 workspace.
 @param [String, Xcodeproj::Workspace::FileReference] path_or_reference
        A string or Xcode::Workspace::FileReference containing a path to an Xcode project

 @raise [ArgumentError] Raised if the input is neither a String nor a FileReference

 @return [void]