Sha256: 448d1fc9989a07311865c258c6ce659a118ea0d01653828fcac427f6bca441b6

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

# frozen_string_literal: true

require 'censys/report/metadata'

module Censys
  module Report
    class Response
      include Enumerable

      # Response status.
      #
      # @return [String]
      attr_reader :status

      # Response results.
      #
      # @return [Hash{String => Fixnum}]
      attr_reader :results

      # Response metadata.
      #
      # @return [Metadata]
      attr_reader :metadata

      def initialize(response)
        @status  = response['status']
        @results = Hash[response['results'].map { |result|
          [result['key'], result['doc_count']]
        }]
        @metadata = Metadata.new(response['metadata'])
      end

      #
      # Determines if the response was OK.
      #
      # @return [Boolean]
      #
      def ok?
        @status == 'ok'
      end

      #
      # Enumerate through all response results.
      #
      # @yield [key, doc_count]
      #
      # @yieldparam [String] key
      #
      # @yieldparam [Fixnum] doc_count
      #
      def each(&block)
        @results.each(&block)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
censu-0.2.0 lib/censys/report/response.rb