lib/esearch/presenter/hits.rb

Summary

Maintainability
A
0 mins
Test Coverage
# encoding: UTF-8

module Esearch
  class Presenter

    # Presenter for elasticsearch result hits
    class Hits < self
      include Enumerable

      # Enumerate contents
      #
      # @return [self]
      #   if block given
      #
      # @return [Enumerator<Hit>]
      #   otherwise
      #
      # @api private
      #
      def each
        return to_enum unless block_given?

        hits.each do |hit|
          yield Hit.new(hit)
        end

        self
      end

      # Return amount of hits in this request
      #
      # @return [Fixnum]
      #
      # @api private
      #
      def size
        hits.size
      end

      # Return total amount of hits in the query
      #
      # @return [Fixnum]
      #
      # @api private
      #
      expose_primitive('total')

    private

      # Return raw hits
      #
      # @return [Array]
      #
      # @api private
      #
      expose_primitive(:hits)
      private :hits

    end # Hits
  end # Presenter
end # Esearch