Sha256: 9eb3bdae5b2d66e8e07a8d9f4b0125990778e67b0367390331d4ef6ff0578fbd

Contents?: true

Size: 998 Bytes

Versions: 2

Compression:

Stored size: 998 Bytes

Contents

# Filter für Bereiche mit von- und bis-Werten

class MultiSolr::SolrFilterRange < MultiSolr::SolrFilterSimple

  # Erzeugen des SolR-Query-Strings
  def build_solr_query value
    from, to = extract_from_to value
    return nil if from.nil? && to.nil?
    "#{@field_name}:[#{from || '*'} TO #{to || '*'}]"
  end


  def render_value value
    from, to = extract_from_to value
    return '' if from.nil? && to.nil?
    s = []
    s << "&gt;=#{from}" unless from.blank?
    s << "&lt;=#{to}" unless to.blank?
    s.join(' und ')
  end


  
  # Aus dem 'value' von und bis extrahieren
  # Params:
  #   value: Hash mit from- und to-Datumsangabe (mit Filternamen als Prefix)
  #          Beispiel: { 'create_date_from' => '2011-01-01', 'create_date_to' => '2011-06-01' }
  # returns: Array mit von und bis ['2011-01-01', '2011-06-01']
  def extract_from_to value
    return nil if value.blank? || !value.is_a?(Hash) || value.empty?
    [ value["#{@name}_from"], value["#{@name }_to"] ]
  end

end




Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
multi-solr-01.07.02 lib/multi_solr/solr_filter_range.rb
multi-solr-01.07.01 lib/multi_solr/solr_filter_range.rb