Sha256: dbeca6583085817e3237eac65499ab382f0c7a574c048782b279fb792b5bedd5

Contents?: true

Size: 1.02 KB

Versions: 9

Compression:

Stored size: 1.02 KB

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, options=nil
    from, to = extract_from_to value
    return '' if from.nil? && to.nil?
    s = []
    s << "#{I18n.t('von', :default => 'von')} #{from}" unless from.blank?
    s << "#{I18n.t('bis', :default => 'bis')} #{to}" unless to.blank?
    s.join(' ')
  end


  
  # Aus dem 'value' von und bis extrahieren
  # Params:
  #   value: Hash mit from- und to-Werten
  #          Beispiel: { 'from' => '2011-01-01', '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.is_a?(Hash) || value.empty?
    from, to = value["from"], value["to"]
    from = nil if from==''
    to = nil if to==''
    [from, to]
  end

end




Version data entries

9 entries across 9 versions & 1 rubygems

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