Sha256: 6a26938f9737699c9a7f6d910577e1ce889e623d421eb84d3d8c08a1bca275fb

Contents?: true

Size: 1.09 KB

Versions: 9

Compression:

Stored size: 1.09 KB

Contents

# Filter für Datumsbereiche mit von- und bis-Datum

class MultiSolr::SolrFilterDate < MultiSolr::SolrFilterSimple


  # Constructor des Filters
  # Params:
  #   filter_name: Name des Filters als Symbol
  #   options:     optionale Hash mit Optionen (siehe SolrFilterSimple) plus:
  #     :mode      Type der Nutzung des ang. Datums (Symbol):
  #                :from => Datum wird mit Zeit 00:00:00 genutzt
  #                :to => Datum wird mit Zeit 23:59:59 genutzt
  #                nil => Datum wird im Bereich 00:00:00 bis 23:59:59
  #
  def initialize filter_name, options={}
    @mode = options.delete(:mode)
    super(filter_name, options)
  end


  # Erzeugen des SolR-Query-Strings
  def build_solr_query value
    return nil if value.blank?
    date_range = nil
    case @mode
      when :from
        date_range = "[#{value}T00:00:00Z TO *]"
      when :to
        date_range = "[* TO #{value}T23:59:59Z]"
      else
        date_range = "[#{value}T00:00:00Z TO #{value}T23:59:59Z]"
    end
    "#{@field_name}:#{date_range}"
  end


  def render_value value, options=nil
    value.to_s
  end


end




Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
multi-solr-01.12.00 lib/multi_solr/solr_filter_date.rb
multi-solr-01.11.01 lib/multi_solr/solr_filter_date.rb
multi-solr-01.11.00 lib/multi_solr/solr_filter_date.rb
multi-solr-01.10.00 lib/multi_solr/solr_filter_date.rb
multi-solr-01.09.05 lib/multi_solr/solr_filter_date.rb
multi-solr-01.09.04 lib/multi_solr/solr_filter_date.rb
multi-solr-01.09.03 lib/multi_solr/solr_filter_date.rb
multi-solr-01.09.02 lib/multi_solr/solr_filter_date.rb
multi-solr-01.09.01 lib/multi_solr/solr_filter_date.rb