class Steep::Server::TargetGroupFiles

def add_library_path(target, *paths)

def add_library_path(target, *paths)
  (library_paths[target.name] ||= Set[]).merge(paths)
end

def add_path(path)

def add_path(path)
  if target_group = project.group_for_signature_path(path)
    signature_paths[path] = target_group
    return true
  end
  if target_group = project.group_for_inline_source_path(path)
    inline_paths[path] = target_group
    return true
  end
  if target_group = project.group_for_source_path(path)
    source_paths[path] = target_group
    return true
  end
  false
end

def each_library_path(target, &block)

def each_library_path(target, &block)
  if block
    library_paths.fetch(target.name).each(&block)
  else
    enum_for(_ = __method__, target)
  end
end

def initialize(project)

def initialize(project)
  @project = project
  @source_paths = PathEnumerator.new
  @signature_paths = PathEnumerator.new
  @inline_paths = PathEnumerator.new
  @library_paths = {}
end

def library_path?(path)

def library_path?(path)
  library_paths.each_value.any? { _1.include?(path) }
end

def registered_path?(path)

def registered_path?(path)
  source_paths.registered_path?(path) ||
    signature_paths.registered_path?(path) ||
    inline_paths.registered_path?(path)
end