Sha256: c0b2c75cfd1cb489eae2f08a988e8f5ac44aca87f17786e5700d7316b89a3e27
Contents?: true
Size: 1.62 KB
Versions: 1
Compression:
Stored size: 1.62 KB
Contents
module Gummi module RepositoryLayer module Repository class Result attr_reader :took def initialize(search_result, converter) @success = search_result.success? @search_result = search_result @took = @search_result.took if @search_result @documents = @search_result.documents if @search_result @converter = converter end def facets return unless search_result.facets @facets ||= begin result = {} search_result.facets.each do |(name, content)| case content['_type'] when 'terms' result[name] = Hash[content.terms.map(&:values)] when 'statistical' result[name] = Hash[content.map(&:values)] end end Hashie::Mash.new result end end def records @records ||= begin # Passing through the Leaflet Collection, but converting the records. documents.map! { |document| converter.db_instance_to_entity(document) } documents end end def success? @success end # Leaflet::Collection has many methods we want to make use of. # E.g. kaminari and will_paginate support. # Also, we want to have Enumerable and #decorate at our fingertips. # def method_missing(method_name, *args) records.send method_name, *args end private attr_reader :search_result, :converter, :documents end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
gummi-0.3.10 | lib/gummi/repository_layer/repository/result.rb |