class Censys::Search::Response
Constants
- RESULTS
Attributes
metadata[R]
results[R]
status[R]
Public Class Methods
new(api, result_type, params, response)
click to toggle source
@param [API] api
Parent API.
@param [:ipv4, :website, :certificate] result_type
Result type.
@param [Hash] params
Search parameters.
@param [Hash{String => Object}] response
Response JSON Hash.
# File lib/censys/search/response.rb, line 38 def initialize(api, result_type, params, response) @api = api @result_type = result_type @params = params @status = response['status'] @metadata = Metadata.new(response['metadata']) unless (result_class = RESULTS[@result_type]) raise(ArgumentError, "invalid result type: #{@result_type}") end @results = response['results'].map do |result| result_class.new(result, @api) end end
Public Instance Methods
each(&block)
click to toggle source
Enumerates over all results in the response.
@yield [result]
The given block will be passed each result.
@yieldparam [IPv4, Website
, Certificate] result
A result in the response.
@return [Enumerator]
If no block is given, an Enumerator will be returned.
# File lib/censys/search/response.rb, line 76 def each(&block) @results.each(&block) end
each_page() { |page| ... }
click to toggle source
Enumerates through each page of results.
@yield [page]
The given block will be passed each page.
@yieldparam [Response] page
The response containing the next page of results.
@return [Enumerator]
If no block was given, an enumerator will be returned.
# File lib/censys/search/response.rb, line 104 def each_page return enum_for(__method__) unless block_given? page = self while page yield page page = page.next_page end end
next_page()
click to toggle source
Queries the next page of results.
@return [Search::Response, nil]
The next page of results or `nil` if there are no more pages.
# File lib/censys/search/response.rb, line 86 def next_page @api.search(@result_type, @params.merge(page: @metadata.page + 1)) if @metadata.page < @metadata.pages end
Also aliased as: next
ok?()
click to toggle source
Determines if the response has status of `ok`.
@return [Boolean]
# File lib/censys/search/response.rb, line 60 def ok? @status == 'ok' end
pages()
click to toggle source
Provides access to additional pages.
@return [Enumerator]
# File lib/censys/search/response.rb, line 121 def pages enum_for(:each_page) end