summaryrefslogtreecommitdiff
path: root/lib/chef_zero/solr/query
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chef_zero/solr/query')
-rw-r--r--lib/chef_zero/solr/query/binary_operator.rb16
-rw-r--r--lib/chef_zero/solr/query/phrase.rb2
-rw-r--r--lib/chef_zero/solr/query/range_query.rb4
-rw-r--r--lib/chef_zero/solr/query/regexpable_query.rb1
-rw-r--r--lib/chef_zero/solr/query/term.rb10
-rw-r--r--lib/chef_zero/solr/query/unary_operator.rb8
6 files changed, 21 insertions, 20 deletions
diff --git a/lib/chef_zero/solr/query/binary_operator.rb b/lib/chef_zero/solr/query/binary_operator.rb
index 6d9b219..e733102 100644
--- a/lib/chef_zero/solr/query/binary_operator.rb
+++ b/lib/chef_zero/solr/query/binary_operator.rb
@@ -18,13 +18,13 @@ module ChefZero
def matches_doc?(doc)
case @operator
- when 'AND'
+ when "AND"
left.matches_doc?(doc) && right.matches_doc?(doc)
- when 'OR'
+ when "OR"
left.matches_doc?(doc) || right.matches_doc?(doc)
- when '^'
+ when "^"
left.matches_doc?(doc)
- when ':'
+ when ":"
if left.respond_to?(:literal_string) && left.literal_string
values = doc[left.literal_string]
else
@@ -36,13 +36,13 @@ module ChefZero
def matches_values?(values)
case @operator
- when 'AND'
+ when "AND"
left.matches_values?(values) && right.matches_values?(values)
- when 'OR'
+ when "OR"
left.matches_values?(values) || right.matches_values?(values)
- when '^'
+ when "^"
left.matches_values?(values)
- when ':'
+ when ":"
raise ": does not work inside a : or term"
end
end
diff --git a/lib/chef_zero/solr/query/phrase.rb b/lib/chef_zero/solr/query/phrase.rb
index f229da9..d345a8e 100644
--- a/lib/chef_zero/solr/query/phrase.rb
+++ b/lib/chef_zero/solr/query/phrase.rb
@@ -1,4 +1,4 @@
-require 'chef_zero/solr/query/regexpable_query'
+require "chef_zero/solr/query/regexpable_query"
module ChefZero
module Solr
diff --git a/lib/chef_zero/solr/query/range_query.rb b/lib/chef_zero/solr/query/range_query.rb
index 625c0bb..76ec828 100644
--- a/lib/chef_zero/solr/query/range_query.rb
+++ b/lib/chef_zero/solr/query/range_query.rb
@@ -15,7 +15,7 @@ module ChefZero
def matches_values?(values)
values.any? do |value|
- unless @from == '*'
+ unless @from == "*"
case @from <=> value
when -1
return false
@@ -23,7 +23,7 @@ module ChefZero
return false if !@from_inclusive
end
end
- unless @to == '*'
+ unless @to == "*"
case value <=> @to
when 1
return false
diff --git a/lib/chef_zero/solr/query/regexpable_query.rb b/lib/chef_zero/solr/query/regexpable_query.rb
index cebc011..62d7fc7 100644
--- a/lib/chef_zero/solr/query/regexpable_query.rb
+++ b/lib/chef_zero/solr/query/regexpable_query.rb
@@ -16,6 +16,7 @@ module ChefZero
def matches_doc?(doc)
matches_values?(doc[DEFAULT_FIELD])
end
+
def matches_values?(values)
values.any? { |value| !@regexp.match(value).nil? }
end
diff --git a/lib/chef_zero/solr/query/term.rb b/lib/chef_zero/solr/query/term.rb
index 23f4a72..e106519 100644
--- a/lib/chef_zero/solr/query/term.rb
+++ b/lib/chef_zero/solr/query/term.rb
@@ -1,4 +1,4 @@
-require 'chef_zero/solr/query/regexpable_query'
+require "chef_zero/solr/query/regexpable_query"
module ChefZero
module Solr
@@ -11,19 +11,19 @@ module ChefZero
regexp_string = ""
index = 0
while index < term.length
- if term[index] == '*'
+ if term[index] == "*"
regexp_string << "#{WORD_CHARACTER}*"
literal_string = nil
index += 1
- elsif term[index] == '?'
+ elsif term[index] == "?"
regexp_string << WORD_CHARACTER
literal_string = nil
index += 1
- elsif term[index] == '~'
+ elsif term[index] == "~"
raise "~ unsupported"
else
if term[index] == '\\'
- index = index+1
+ index = index + 1
if index >= term.length
raise "Backslash at end of string '#{term}'"
end
diff --git a/lib/chef_zero/solr/query/unary_operator.rb b/lib/chef_zero/solr/query/unary_operator.rb
index a873932..e83683c 100644
--- a/lib/chef_zero/solr/query/unary_operator.rb
+++ b/lib/chef_zero/solr/query/unary_operator.rb
@@ -16,9 +16,9 @@ module ChefZero
def matches_doc?(doc)
case @operator
- when '-', 'NOT'
+ when "-", "NOT"
!operand.matches_doc?(doc)
- when '+'
+ when "+"
# TODO This operator uses relevance to eliminate other, unrelated
# expressions. +a OR b means "if it has b but not a, don't return it"
raise "+ not supported yet, because it is hard."
@@ -27,9 +27,9 @@ module ChefZero
def matches_values?(values)
case @operator
- when '-', 'NOT'
+ when "-", "NOT"
!operand.matches_values?(values)
- when '+'
+ when "+"
# TODO This operator uses relevance to eliminate other, unrelated
# expressions. +a OR b means "if it has b but not a, don't return it"
raise "+ not supported yet, because it is hard."