commit 4d685e38a1670d0615f031c2e46bc9313fe74c6c
parent f53aa68537269af57f147f355feeb747136bee46
Author: Whyme Lyu <callme5long@gmail.com>
Date: Sat, 6 Jul 2013 22:47:17 -0700
Merge pull request #96 from 5long/fix-encoding-of-query-desc
Fix encoding of query description
Diffstat:
3 files changed, 32 insertions(+), 1 deletion(-)
diff --git a/lib/sup/index.rb b/lib/sup/index.rb
@@ -448,7 +448,7 @@ EOS
raise ParseError, "xapian query parser error: #{e}"
end
- debug "parsed xapian query: #{xapian_query.description}"
+ debug "parsed xapian query: #{Util::Query.describe(xapian_query)}"
raise ParseError if xapian_query.nil? or xapian_query.empty?
query[:qobj] = xapian_query
diff --git a/lib/sup/util/query.rb b/lib/sup/util/query.rb
@@ -0,0 +1,9 @@
+module Redwood
+ module Util
+ module Query
+ def self.describe query
+ query.description.force_encoding("UTF-8")
+ end
+ end
+ end
+end
diff --git a/test/unit/util/test_query.rb b/test/unit/util/test_query.rb
@@ -0,0 +1,22 @@
+# encoding: utf-8
+
+require "test_helper"
+
+require "sup/util/query"
+require "xapian"
+
+describe Redwood::Util::Query do
+ describe ".describe" do
+ it "returns a UTF-8 description of query" do
+ query = Xapian::Query.new "テスト"
+ life = "生活: "
+
+ assert_raises Encoding::CompatibilityError do
+ _ = life + query.description
+ end
+
+ desc = Redwood::Util::Query.describe(query)
+ _ = (life + desc) # No exception thrown
+ end
+ end
+end