Sha256: ed0970c5b763745f2d22faf8a39a783cc8c4bf267103c37c7b618ea80c891df9

Contents?: true

Size: 764 Bytes

Versions: 5

Compression:

Stored size: 764 Bytes

Contents

# Get link status
module AwesomeBot
  require 'faraday'
  require 'parallel'

  STATUS_ERROR = -1

  class << self
    def net_head_status(url)
      Faraday.head(url).status
    end

    def net_get_status(url)
      Faraday.get(url).status
    end

    def net_status(url, head)
      head ? net_head_status(url) : net_get_status(url)
    end

    def statuses(links, threads, head = false)
      statuses = []
      Parallel.each(links, in_threads: threads) do |u|
        begin
          status = net_status u, head
        rescue => e
          status = STATUS_ERROR
          error = e
        end

        yield status, u
        statuses.push('url' => u, 'status' => status, 'error' => error)
      end # Parallel

      statuses
    end
  end # class
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
awesome_bot-1.4.0 lib/awesome_bot/statuses.rb
awesome_bot-1.3.3 lib/awesome_bot/statuses.rb
awesome_bot-1.3.2 lib/awesome_bot/statuses.rb
awesome_bot-1.3.1 lib/awesome_bot/statuses.rb
awesome_bot-1.3.0 lib/awesome_bot/statuses.rb