def find_all(*logical_paths, &block)
      return to_enum(__method__, *logical_paths) unless block_given?

      options = extract_options!(logical_paths)
      base_path = (options[:base_path] || root).to_s

      logical_paths.each do |logical_path|
        logical_path = logical_path.sub(/^\//, '')

        if relative?(logical_path)
          find_in_base_path(logical_path, base_path, &block)
        else
          find_in_paths(logical_path, &block)
        end
      end

      nil
    end
def find_all(*logical_paths, &block)
      return to_enum(__method__, *logical_paths) unless block_given?

      options = extract_options!(logical_paths)
      base_path = (options[:base_path] || root).to_s

      logical_paths.each do |logical_path|
        logical_path = logical_path.sub(/^\//, '')

        if relative?(logical_path)
          find_in_base_path(logical_path, base_path, &block)
        else
          find_in_paths(logical_path, &block)
        end
      end

      nil
    end
The real implementation of `find_all`. `Trail#find_all` generates a one
 time index and delegates here.

 See `Trail#find_all` for usage.