search: refactor PostQueryBuilder class methods into instance methods.

* Make scan_query, parse_query, normalize_query into instance methods
  instead of class methods. This is to a) clean up the API and b)
  prepare for moving certain tag utility methods into PostQueryBuilder.

* Fix a few cases where a caller used scan_query when they should have
  used split_query or parse_tag_edit.
This commit is contained in:
evazion
2020-04-22 19:38:17 -05:00
parent d355c0e221
commit 3dab648d0e
10 changed files with 534 additions and 532 deletions

View File

@@ -854,12 +854,12 @@ class PostQueryBuilderTest < ActiveSupport::TestCase
should "work" do
create(:tag_alias, antecedent_name: "gray", consequent_name: "grey")
assert_equal("foo", PostQueryBuilder.normalize_query("foo"))
assert_equal("foo", PostQueryBuilder.normalize_query(" foo "))
assert_equal("foo", PostQueryBuilder.normalize_query("FOO"))
assert_equal("foo", PostQueryBuilder.normalize_query("foo foo"))
assert_equal("grey", PostQueryBuilder.normalize_query("gray"))
assert_equal("aaa bbb", PostQueryBuilder.normalize_query("bbb aaa"))
assert_equal("foo", PostQueryBuilder.new("foo").normalize_query)
assert_equal("foo", PostQueryBuilder.new(" foo ").normalize_query)
assert_equal("foo", PostQueryBuilder.new("FOO").normalize_query)
assert_equal("foo", PostQueryBuilder.new("foo foo").normalize_query)
assert_equal("grey", PostQueryBuilder.new("gray").normalize_query)
assert_equal("aaa bbb", PostQueryBuilder.new("bbb aaa").normalize_query)
end
end
end

View File

@@ -93,13 +93,13 @@ class TagTest < ActiveSupport::TestCase
context "A tag parser" do
should "scan a query" do
assert_equal(%w(aaa bbb), PostQueryBuilder.split_query("aaa bbb"))
assert_equal(%w(~aaa -bbb* -bbb*), PostQueryBuilder.split_query("~AAa -BBB* -bbb*"))
assert_equal(%w(aaa bbb), PostQueryBuilder.new("aaa bbb").split_query)
assert_equal(%w(~aaa -bbb* -bbb*), PostQueryBuilder.new("~AAa -BBB* -bbb*").split_query)
end
should "not strip out valid characters when scanning" do
assert_equal(%w(aaa bbb), PostQueryBuilder.split_query("aaa bbb"))
assert_equal(%w(favgroup:yondemasu_yo,_azazel-san. pool:ichigo_100%), PostQueryBuilder.split_query("favgroup:yondemasu_yo,_azazel-san. pool:ichigo_100%"))
assert_equal(%w(aaa bbb), PostQueryBuilder.new("aaa bbb").split_query)
assert_equal(%w(favgroup:yondemasu_yo,_azazel-san. pool:ichigo_100%), PostQueryBuilder.new("favgroup:yondemasu_yo,_azazel-san. pool:ichigo_100%").split_query)
end
should "cast values" do