class SolrLite::FacetField

Attributes

limit[RW]
name[RW]
range[RW]
range_end[RW]
range_gap[RW]
range_start[RW]
title[RW]
values[RW]

Public Class Methods

new(name, display_value) click to toggle source
# File lib/facet_field.rb, line 20
def initialize(name, display_value)
  @name = name # field name in Solr
  @title = display_value
  @values = []
  @ranges = []
  @range = false
  @range_start = nil
  @range_end = nil
  @range_gap = nil
  @limit = nil
end

Public Instance Methods

add_range(range_start, range_end, count) click to toggle source
# File lib/facet_field.rb, line 44
def add_range(range_start, range_end, count)
  text = "#{range_start} - #{range_end}"
  value = FacetValue.new(text, count)
  value.range_start = range_start
  value.range_end = range_end
  @values << value
end
add_value(text, count) click to toggle source
# File lib/facet_field.rb, line 40
def add_value(text, count)
  @values << FacetValue.new(text, count)
end
set_add_url_for(value, url) click to toggle source
# File lib/facet_field.rb, line 66
def set_add_url_for(value, url)
  @values.each do |v|
    if v.text == value
      v.add_url = url
    end
  end
end
set_remove_url_for(value, url) click to toggle source
# File lib/facet_field.rb, line 58
def set_remove_url_for(value, url)
  @values.each do |v|
    if v.text == value
      v.remove_url = url
    end
  end
end
set_urls_for(value, add_url, remove_url) click to toggle source
# File lib/facet_field.rb, line 74
def set_urls_for(value, add_url, remove_url)
  @values.each do |v|
    if v.text == value
      v.add_url = add_url
      v.remove_url = remove_url
    end
  end
end
to_qs(text) click to toggle source
# File lib/facet_field.rb, line 32
def to_qs(text)
  "#{@name}|#{CGI.escape(text)}"
end
to_qs_range(range_start, range_end) click to toggle source
# File lib/facet_field.rb, line 36
def to_qs_range(range_start, range_end)
  "#{@name}^#{range_start},#{range_end}"
end
value_count(text) click to toggle source
# File lib/facet_field.rb, line 52
def value_count(text)
  v = @values.find {|v| v.text == text}
  return 0 if v == nil
  v.count
end