Class: Dimscan::HTTPByteEnumerator
- Inherits:
-
Object
- Object
- Dimscan::HTTPByteEnumerator
- 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
- #each(&block) ⇒ Object
-
#initialize(url) ⇒ HTTPByteEnumerator
constructor
A new instance of HTTPByteEnumerator.
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 |