Sha256: 2b7195cb7aef49e19b139a07e619dc54243a92d99e752e37cfde9a3c85a24c76

Contents?: true

Size: 1.08 KB

Versions: 5

Compression:

Stored size: 1.08 KB

Contents

module Gummi
  module DbLayer
    module Document
      module Search
        class Result

          attr_reader :took, :total, :hits, :facets

          def initialize(response, converter, per_page, page)
            @success   = !!response
            @response  = Hashie::Mash.new response
            @took      = @response.hits.took  if @response.hits
            @total     = @response.hits.total if @response.hits
            @hits      = @response.hits.hits  if @response.hits
            @facets    = @response.facets || Hashie::Mash.new
            @converter = converter
            @per_page  = per_page
            @page      = page
          end

          def documents
            @documents ||= begin
              documents = Array(converter.hits_to_documents(hits)) if hits
              Leaflet::Collection.new documents, total: total, page: page, per_page: per_page
            end
          end

          def success?
            @success
          end

          private

          attr_reader :response, :converter, :per_page, :page, :hits

        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
gummi-0.3.7 lib/gummi/db_layer/document/search/result.rb
gummi-0.3.6 lib/gummi/db_layer/document/search/result.rb
gummi-0.3.5 lib/gummi/db_layer/document/search/result.rb
gummi-0.3.4 lib/gummi/db_layer/document/search/result.rb
gummi-0.3.3 lib/gummi/db_layer/document/search/result.rb