class Sunspot::Search::DateFacet

Public Class Methods

new(field, search, options) click to toggle source
# File lib/sunspot/search/date_facet.rb, line 4
def initialize(field, search, options)
  @field, @search, @options = field, search, options
end

Public Instance Methods

field_name() click to toggle source
# File lib/sunspot/search/date_facet.rb, line 8
def field_name
  @field.name
end
rows() click to toggle source
# File lib/sunspot/search/date_facet.rb, line 12
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