class Ryo::Plugin::Dir

Attributes

threads[R]
uri[R]

Public Class Methods

discover(uri) click to toggle source
# File lib/ryo/plugin/dir.rb, line 35
def self.discover(uri)
  new(uri).discover
end
new(uri) click to toggle source
# File lib/ryo/plugin/dir.rb, line 9
def initialize(uri)
  @uri = uri.is_a?(URI::HTTP) ? uri : URI.parse(uri)
  @threads = 10
end

Public Instance Methods

discover() click to toggle source
# File lib/ryo/plugin/dir.rb, line 22
def discover
  pool = Thread.pool(threads)
  results = []
  paths.map { |path| url_for(path) }.each do |url|
    pool.process {
      res = Client.http.get(url)
      results << url if res.code == 200
    }
  end
  pool.shutdown
  results
end
paths() click to toggle source
# File lib/ryo/plugin/dir.rb, line 14
def paths
  File.readlines(File.expand_path("./aux/paths.txt", __dir__)).map(&:chomp).compact
end
url_for(path) click to toggle source
# File lib/ryo/plugin/dir.rb, line 18
def url_for(path)
  "#{uri.scheme}://#{uri.host}:#{uri.port}/#{path}"
end