Class: Tire::Search::CustomFiltersScore::CustomFiltersScoreQuery

Inherits:
Object
  • Object
show all
Defined in:
lib/tire/queries/custom_filters_score/custom_filters_score.rb

Defined Under Namespace

Classes: CustomFilter

Instance Method Summary collapse

Constructor Details

#initialize(&block) ⇒ CustomFiltersScoreQuery

Returns a new instance of CustomFiltersScoreQuery.



44
45
46
47
# File 'lib/tire/queries/custom_filters_score/custom_filters_score.rb', line 44

def initialize(&block)
  @value = {}
  block.arity < 1 ? self.instance_eval(&block) : block.call(self) if block_given?
end

Instance Method Details

#filter(&block) ⇒ Object



54
55
56
57
58
59
60
# File 'lib/tire/queries/custom_filters_score/custom_filters_score.rb', line 54

def filter(&block)
  custom_filter = CustomFilter.new
  block.arity < 1 ? custom_filter.instance_eval(&block) : block.call(custom_filter) if block_given?
  @value[:filters] ||= []
  @value[:filters] << custom_filter.to_hash
  @value
end

#params(value) ⇒ Object



67
68
69
70
# File 'lib/tire/queries/custom_filters_score/custom_filters_score.rb', line 67

def params(value)
  @value[:params] = value
  @value
end

#query(options = {}, &block) ⇒ Object



49
50
51
52
# File 'lib/tire/queries/custom_filters_score/custom_filters_score.rb', line 49

def query(options={}, &block)
  @value[:query] = Query.new(&block).to_hash
  @value
end

#score_mode(value) ⇒ Object



62
63
64
65
# File 'lib/tire/queries/custom_filters_score/custom_filters_score.rb', line 62

def score_mode(value)
  @value[:score_mode] = value
  @value
end

#to_hashObject



72
73
74
75
76
# File 'lib/tire/queries/custom_filters_score/custom_filters_score.rb', line 72

def to_hash
  @value[:filters] ? 
  @value : 
  @value.merge(:filters => [CustomFilter.new{ filter(:match_all); boost(1) }.to_hash]) # Needs at least one filter
end

#to_jsonObject



78
79
80
# File 'lib/tire/queries/custom_filters_score/custom_filters_score.rb', line 78

def to_json
  to_hash.to_json
end