Sha256: e7267dfd7ae49871980b4baa95638fd76993010042a491b62e2179311d11c451

Contents?: true

Size: 1016 Bytes

Versions: 11

Compression:

Stored size: 1016 Bytes

Contents

module Sunspot
  class Search
    class DateFacet
      def initialize(field, search, options)
        @field, @search, @options = field, search, options
      end

      def field_name
        @field.name
      end

      def rows
        @rows ||=
          begin
            data = @search.facet_response['facet_dates'][@field.indexed_name]
            gap = (@options[:time_interval] || 86400).to_i
            rows = []
            data.each_pair do |value, count|
              if value =~ /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$/
                start_time = @field.cast(value)
                end_time = start_time + gap
                rows << FacetRow.new(start_time..end_time, count, self)
              end
            end
            if @options[:sort] == :count
              rows.sort! { |lrow, rrow| rrow.count <=> lrow.count }
            else
              rows.sort! { |lrow, rrow| lrow.value.first <=> rrow.value.first }
            end
            rows
          end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 2 rubygems

Version Path
sunspot-1.0.5 lib/sunspot/search/date_facet.rb
sunspot-1.0.4 lib/sunspot/search/date_facet.rb
sunspot-1.0.3 lib/sunspot/search/date_facet.rb
sunspot-1.0.2 lib/sunspot/search/date_facet.rb
sunspot-1.0.1 lib/sunspot/search/date_facet.rb
sunspot-1.0.0 lib/sunspot/search/date_facet.rb
sunspot-0.10.9 lib/sunspot/search/date_facet.rb
sunspot-0.10.8 lib/sunspot/search/date_facet.rb
nxa-sunspot-0.10.7 lib/sunspot/search/date_facet.rb
sunspot-0.10.7 lib/sunspot/search/date_facet.rb
sunspot-0.10.6 lib/sunspot/search/date_facet.rb