Sha256: 3d34aff1136700af58a84899971a47960e98b9bf4782b11a56b9fa9af9fae4f2

Contents?: true

Size: 801 Bytes

Versions: 2

Compression:

Stored size: 801 Bytes

Contents

module Waistband
  module QueryHelpers

    def paginated_results
      return Kaminari.paginate_array(results, total_count: total_results).page(@page).per(@page_size) if defined?(Kaminari)
      raise "Please include the `kaminari` gem to use this method!"
    end

    def results
      hits.map do |hit|
        Waistband::QueryResult.new(hit)
      end
    end

    def hits
      execute!['hits']['hits'] rescue []
    end

    def total_results
      execute!['hits']['total'] rescue 0
    end

    private

      def url
        index.search_url
      end

      def index
        Waistband::Index.new(@index)
      end

      def execute!
        JSON.parse(RestClient.post(url, to_hash.to_json))
      end

      def from
        @page_size * (@page - 1)
      end

    # /private

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
waistband-0.4.1 lib/waistband/query_helpers.rb
waistband-0.4.0 lib/waistband/query_helpers.rb