Class: Dimscan::HTTPByteEnumerator

Inherits:
Object
  • Object
show all
Defined in:
lib/dimscan/http_byte_enumerator.rb

Overview

A utility class for enumerating over the bytes of a http response body

Instance Method Summary collapse

Constructor Details

#initialize(url) ⇒ HTTPByteEnumerator

Returns a new instance of HTTPByteEnumerator.



7
8
9
10
# File 'lib/dimscan/http_byte_enumerator.rb', line 7

def initialize(url)
  @uri = URI(url)
  fail ArgumentError, 'invalid scheme' unless @uri.scheme =~ /^https?$/
end

Instance Method Details

#each(&block) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/dimscan/http_byte_enumerator.rb', line 12

def each(&block)
  return to_enum(__callee__) unless block_given?
  request = Net::HTTP::Get.new(@uri)
  Net::HTTP.start(
    @uri.host, @uri.port, use_ssl: @uri.scheme == 'https'
  ) do |http|
    http.request(request) do |response|
      fail response.body if error?(response)
      enumerate_response(response, &block)
    end
  end
end