def project(name)
      project = @projects.select {|c| c.name == name.to_s}.first
      raise "No such project #{name} in #{self}, available projects are #{@projects.map {|c| c.name}.join(', ')}" if project.nil?
      yield project if block_given?
      project
    end
def project(name)
      project = @projects.select {|c| c.name == name.to_s}.first
      raise "No such project #{name} in #{self}, available projects are #{@projects.map {|c| c.name}.join(', ')}" if project.nil?
      yield project if block_given?
      project
    end
Return the names project.  Raises an error if no projects
 match the specified name.

 @note if two projects match names, the first matching scheme is returned.

 @param [String] name of the specific scheme
 @return [Project] the specific project that matches the name specified