From 905c7e20483444d64107932dd99bdd68a57630e5 Mon Sep 17 00:00:00 2001 From: Will Jessop Date: Fri, 1 Jul 2022 18:14:45 +0100 Subject: [PATCH 1/6] Fixes all the Minitest deprecations Fixes all the deprecations in the form: language_filter/test/lib/language_filter/version_test.rb:6. Use _(obj).wont_be_nil instead. This will fail in Minitest 6. --- test/lib/language_filter/methods_test.rb | 24 ++++++++++++------------ test/lib/language_filter/version_test.rb | 2 +- test/test_helper.rb | 10 +++++----- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/test/lib/language_filter/methods_test.rb b/test/lib/language_filter/methods_test.rb index 6966172..3e8002b 100644 --- a/test/lib/language_filter/methods_test.rb +++ b/test/lib/language_filter/methods_test.rb @@ -4,12 +4,12 @@ it "must be successfully created with correct defaults" do filter = LanguageFilter::Filter.new - filter.must_be_kind_of LanguageFilter::Filter + _(filter).must_be_kind_of LanguageFilter::Filter valid_non_empty_list? filter.matchlist - filter.exceptionlist.must_be_kind_of Array - filter.exceptionlist.must_be_empty + _(filter.exceptionlist).must_be_kind_of Array + _(filter.exceptionlist).must_be_empty filter.exceptionlist.each {|list_item| list_item.must_be_kind_of String} - filter.creative_letters.must_be :==, false + _(filter.creative_letters).must_be :==, false valid_non_empty_list? filter.creative_matchlist end @@ -18,14 +18,14 @@ # pre-packaged lists [:hate,:profanity,:sex,:violence].each do |list| filter = LanguageFilter::Filter.new matchlist: list - filter.must_be_kind_of LanguageFilter::Filter + _(filter).must_be_kind_of LanguageFilter::Filter valid_non_empty_list? filter.matchlist end # array of strings list = ['blah\\w*','test'] filter = LanguageFilter::Filter.new matchlist: list valid_non_empty_list? filter.matchlist - filter.matchlist.must_be :==, list + _(filter.matchlist).must_be :==, list # filepath list = File.dirname(__FILE__) + '/../../../config/matchlists/profanity.txt' filter = LanguageFilter::Filter.new matchlist: list @@ -35,13 +35,13 @@ # pre-packaged lists [:hate,:profanity,:sex,:violence].each do |list| filter = LanguageFilter::Filter.new exceptionlist: list - filter.must_be_kind_of LanguageFilter::Filter + _(filter).must_be_kind_of LanguageFilter::Filter valid_non_empty_list? filter.exceptionlist end # array of strings list = ['blah\\w*','test'] filter = LanguageFilter::Filter.new exceptionlist: list - filter.exceptionlist.must_be_kind_of Array + _(filter.exceptionlist).must_be_kind_of Array valid_non_empty_list? filter.exceptionlist # filepath list = File.dirname(__FILE__) + '/../../../config/matchlists/profanity.txt' @@ -51,11 +51,11 @@ # CREATIVE_LETTERS [true,false].each do |creative_boolean| filter = LanguageFilter::Filter.new creative_letters: creative_boolean - filter.creative_letters.must_be :==, creative_boolean + _(filter.creative_letters).must_be :==, creative_boolean valid_non_empty_list? filter.creative_matchlist - filter.creative_matchlist.must_be :!=, filter.matchlist - filter.creative_matchlist.size.must_be :==, filter.matchlist.size - filter.creative_matchlist.join("").size.must_be :>, filter.matchlist.join("").size + _(filter.creative_matchlist).must_be :!=, filter.matchlist + _(filter.creative_matchlist.size).must_be :==, filter.matchlist.size + _(filter.creative_matchlist.join("").size).must_be :>, filter.matchlist.join("").size end end diff --git a/test/lib/language_filter/version_test.rb b/test/lib/language_filter/version_test.rb index bcf69bb..f6c035f 100644 --- a/test/lib/language_filter/version_test.rb +++ b/test/lib/language_filter/version_test.rb @@ -3,7 +3,7 @@ describe LanguageFilter do it "must be defined" do - LanguageFilter::VERSION.wont_be_nil + _(LanguageFilter::VERSION).wont_be_nil end end \ No newline at end of file diff --git a/test/test_helper.rb b/test/test_helper.rb index 909e95e..82e61e9 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -3,9 +3,9 @@ require File.expand_path('../../lib/language_filter.rb', __FILE__) def valid_non_empty_list?(list) - list.must_be_kind_of Array - list.wont_be_empty - list.each {|list_item| list_item.must_be_kind_of String} + _(list).must_be_kind_of Array + _(list).wont_be_empty + list.each {|list_item| _(list_item).must_be_kind_of String} end def test_against_word_lists @@ -99,12 +99,12 @@ def test_against_word_lists word_lists.each do |wordlist| wordlist[:expected][:normal].each do |matchlist| filter = LanguageFilter::Filter.new(matchlist: matchlist[:name], creative_letters: false) - filter.matched(wordlist[:contents]).must_be :==, matchlist[:results], + _(filter.matched(wordlist[:contents])).must_be :==, matchlist[:results], "expected\n#{filter.matched(wordlist[:contents])}\nto be\n#{matchlist[:results]}\nwhile testing normal #{matchlist[:name]} against #{wordlist[:name]}" end wordlist[:expected][:creative].each do |matchlist| filter = LanguageFilter::Filter.new(matchlist: matchlist[:name], creative_letters: true) - filter.matched(wordlist[:contents]).must_be :==, matchlist[:results], + _(filter.matched(wordlist[:contents])).must_be :==, matchlist[:results], "expected\n#{filter.matched(wordlist[:contents])}\nto be\n#{matchlist[:results]}\nwhile testing creative #{matchlist[:name]} against #{wordlist[:name]}" end end From 6e383b2c750646724f56bafe3473ef37303b19d8 Mon Sep 17 00:00:00 2001 From: Will Jessop Date: Fri, 1 Jul 2022 18:29:18 +0100 Subject: [PATCH 2/6] Fixes FIle.exists? deprecation File.exists? is a deprecated name, use File.exist? instead --- lib/language_filter.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/language_filter.rb b/lib/language_filter.rb index e48b1d5..718eb16 100644 --- a/lib/language_filter.rb +++ b/lib/language_filter.rb @@ -142,7 +142,7 @@ def sanitize(text) def validate_list_content(content) case content when Array then content.all? {|c| c.class == String} || raise(LanguageFilter::EmptyContentList.new("List content array is empty.")) - when String then File.exists?(content) || raise(LanguageFilter::UnkownContentFile.new("List content file \"#{content}\" can't be found.")) + when String then File.exist?(content) || raise(LanguageFilter::UnkownContentFile.new("List content file \"#{content}\" can't be found.")) when Pathname then content.exist? || raise(LanguageFilter::UnkownContentFile.new("List content file \"#{content}\" can't be found.")) when Symbol then case content From 076b05c8d451fa1e94ad728000467d811d2d2b6d Mon Sep 17 00:00:00 2001 From: Will Jessop Date: Fri, 1 Jul 2022 18:35:31 +0100 Subject: [PATCH 3/6] Fix method re-definition warnings We don't need to use attr_accessor to handle assignment when we define a method_name= method in the class that will override it. language_filter/lib/language_filter.rb:44: warning: method redefined; discarding old matchlist= language_filter/lib/language_filter.rb:54: warning: method redefined; discarding old exceptionlist= language_filter/lib/language_filter.rb:62: warning: method redefined; discarding old replacement= --- lib/language_filter.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/language_filter.rb b/lib/language_filter.rb index 718eb16..860615e 100644 --- a/lib/language_filter.rb +++ b/lib/language_filter.rb @@ -6,8 +6,8 @@ module LanguageFilter class Filter - attr_accessor :matchlist, :exceptionlist, :replacement, :creative_letters - attr_reader :creative_matchlist + attr_accessor :creative_letters + attr_reader :creative_matchlist, :matchlist, :exceptionlist, :replacement CREATIVE_BEG_REGEX = '(?<=\\s|\\A|_|\\-|\\.)' CREATIVE_END_REGEX = '(?=\\b|\\s|\\z|_|\\-|\\.)' From 1b72704577c945f7643a7bce187b9d063aeff240 Mon Sep 17 00:00:00 2001 From: Will Jessop Date: Fri, 1 Jul 2022 18:45:23 +0100 Subject: [PATCH 4/6] Remove unused variable lib/language_filter.rb:184: warning: assigned but unused variable - first_char_done --- lib/language_filter.rb | 46 ++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/lib/language_filter.rb b/lib/language_filter.rb index 860615e..8c15225 100644 --- a/lib/language_filter.rb +++ b/lib/language_filter.rb @@ -181,33 +181,31 @@ def load_list(filepath) def use_creative_letters(text) new_text = "" last_char = "" - first_char_done = false text.each_char do |char| if last_char != '\\' - # new_text += '[\\-_\\s\\*\\.\\,\\`\\:\\\']*' if last_char != "" and char =~ /[A-Za-z]/ and first_char_done new_text += case char.downcase - when 'a' then first_char_done = true; '(?:(?:a|@|4|\\^|/\\\\|/\\-\\\\|aye?)+)' - when 'b' then first_char_done = true; '(?:(?:b|i3|l3|13|\\|3|/3|\\\\3|3|8|6|\\u00df|p\\>|\\|\\:|[^a-z]bee+[^a-z])+)' - when 'c','k' then first_char_done = true; '(?:(?:c|\\u00a9|\\u00a2|\\(|\\[|[^a-z]cee+[^a-z]|[^a-z]see+[^a-z]|k|x|[\\|\\[\\]\\)\\(li1\\!\\u00a1][\\<\\{\\(]|[^a-z][ck]ay+[^a-z])+)' - when 'd' then first_char_done = true; '(?:(?:d|\\)|\\|\\)|\\[\\)|\\?|\\|\\>|\\|o|[^a-z]dee+[^a-z])+)' - when 'e' then first_char_done = true; '(?:(?:e|3|\\&|\\u20ac|\\u00eb|\\[\\-)+)' - when 'f' then first_char_done = true; '(?:(?:f|ph|\\u0192|[\\|\\}\\{\\\\/\\(\\)\\[\\]1il\\!][\\=\\#]|[^a-z]ef+[^a-z])+)' - when 'g' then first_char_done = true; '(?:(?:g|6|9|\\&|c\\-|\\(_\\+|[^a-z]gee+[^a-z])+)' - when 'h' then first_char_done = true; '(?:(?:h|\\#|[\\|\\}\\{\\\\/\\(\\)\\[\\]]\\-?[\\|\\}\\{\\\\/\\(\\)\\[\\]])+)' - when 'i','l' then first_char_done = true; '(?:(?:i|l|1|\\!|\\u00a1|\\||\\]|\\[|\\\\|/|[^a-z]eye[^a-z]|\\u00a3|[\\|li1\\!\\u00a1\\[\\]\\(\\)\\{\\}]_|\\u00ac|[^a-z]el+[^a-z]))' - when 'j' then first_char_done = true; '(?:(?:j|\\]|\\u00bf|_\\||_/|\\]\\\\[\\|/\\[\\]\\<\\>]|/v|\\^/|[^a-z]en+[^a-z])+)' - when 'o' then first_char_done = true; '(?:(?:o|0|\\(\\)|\\[\\]|\\u00b0|[^a-z]oh+[^a-z])+)' - when 'p' then first_char_done = true; '(?:(?:p|\\u00b6|[\\|li1\\[\\]\\!\\u00a1/\\\\][\\*o\\u00b0\\"\\>7\\^]|[^a-z]pee+[^a-z])+)' - when 'q' then first_char_done = true; '(?:(?:q|9|(?:0|\\(\\)|\\[\\])_|\\(_\\,\\)|\\<\\||[^a-z][ck]ue*|qu?eue*[^a-z])+)' - when 'r' then first_char_done = true; '(?:(?:r|[/1\\|li]?[2\\^\\?z]|\\u00ae|[^a-z]ar+[^a-z])+)' - when 's','z' then first_char_done = true; '(?:(?:s|\\$|5|\\u00a7|[^a-z]es+[^a-z]|z|2|7_|\\~/_|\\>_|\\%|[^a-z]zee+[^a-z])+)' - when 't' then first_char_done = true; '(?:(?:t|7|\\+|\\u2020|\\-\\|\\-|\\\'\\]\\[\\\')+)' - when 'u','v' then first_char_done = true; '(?:(?:u|v|\\u00b5|[\\|\\(\\)\\[\\]\\{\\}]_[\\|\\(\\)\\[\\]\\{\\}]|\\L\\||\\/|[^a-z]you[^a-z]|[^a-z]yoo+[^a-z]|[^a-z]vee+[^a-z]))' - when 'w' then first_char_done = true; '(?:(?:w|vv|\\\\/\\\\/|\\\\\\|/|\\\\\\\\\\\'|\\\'//|\\\\\\^/|\\(n\\)|[^a-z]do?u+b+l+e*[^a-z]?(?:u+|you|yoo+)[^a-z])+)' - when 'x' then first_char_done = true; '(?:(?:x|\\>\\<|\\%|\\*|\\}\\{|\\)\\(|[^a-z]e[ck]+s+[^a-z]|[^a-z]ex+[^a-z])+)' - when 'y' then first_char_done = true; '(?:(?:y|\\u00a5|j|\\\'/|[^a-z]wh?(?:y+|ie+)[^a-z])+)' + when 'a' then '(?:(?:a|@|4|\\^|/\\\\|/\\-\\\\|aye?)+)' + when 'b' then '(?:(?:b|i3|l3|13|\\|3|/3|\\\\3|3|8|6|\\u00df|p\\>|\\|\\:|[^a-z]bee+[^a-z])+)' + when 'c','k' then '(?:(?:c|\\u00a9|\\u00a2|\\(|\\[|[^a-z]cee+[^a-z]|[^a-z]see+[^a-z]|k|x|[\\|\\[\\]\\)\\(li1\\!\\u00a1][\\<\\{\\(]|[^a-z][ck]ay+[^a-z])+)' + when 'd' then '(?:(?:d|\\)|\\|\\)|\\[\\)|\\?|\\|\\>|\\|o|[^a-z]dee+[^a-z])+)' + when 'e' then '(?:(?:e|3|\\&|\\u20ac|\\u00eb|\\[\\-)+)' + when 'f' then '(?:(?:f|ph|\\u0192|[\\|\\}\\{\\\\/\\(\\)\\[\\]1il\\!][\\=\\#]|[^a-z]ef+[^a-z])+)' + when 'g' then '(?:(?:g|6|9|\\&|c\\-|\\(_\\+|[^a-z]gee+[^a-z])+)' + when 'h' then '(?:(?:h|\\#|[\\|\\}\\{\\\\/\\(\\)\\[\\]]\\-?[\\|\\}\\{\\\\/\\(\\)\\[\\]])+)' + when 'i','l' then '(?:(?:i|l|1|\\!|\\u00a1|\\||\\]|\\[|\\\\|/|[^a-z]eye[^a-z]|\\u00a3|[\\|li1\\!\\u00a1\\[\\]\\(\\)\\{\\}]_|\\u00ac|[^a-z]el+[^a-z]))' + when 'j' then '(?:(?:j|\\]|\\u00bf|_\\||_/|\\]\\\\[\\|/\\[\\]\\<\\>]|/v|\\^/|[^a-z]en+[^a-z])+)' + when 'o' then '(?:(?:o|0|\\(\\)|\\[\\]|\\u00b0|[^a-z]oh+[^a-z])+)' + when 'p' then '(?:(?:p|\\u00b6|[\\|li1\\[\\]\\!\\u00a1/\\\\][\\*o\\u00b0\\"\\>7\\^]|[^a-z]pee+[^a-z])+)' + when 'q' then '(?:(?:q|9|(?:0|\\(\\)|\\[\\])_|\\(_\\,\\)|\\<\\||[^a-z][ck]ue*|qu?eue*[^a-z])+)' + when 'r' then '(?:(?:r|[/1\\|li]?[2\\^\\?z]|\\u00ae|[^a-z]ar+[^a-z])+)' + when 's','z' then '(?:(?:s|\\$|5|\\u00a7|[^a-z]es+[^a-z]|z|2|7_|\\~/_|\\>_|\\%|[^a-z]zee+[^a-z])+)' + when 't' then '(?:(?:t|7|\\+|\\u2020|\\-\\|\\-|\\\'\\]\\[\\\')+)' + when 'u','v' then '(?:(?:u|v|\\u00b5|[\\|\\(\\)\\[\\]\\{\\}]_[\\|\\(\\)\\[\\]\\{\\}]|\\L\\||\\/|[^a-z]you[^a-z]|[^a-z]yoo+[^a-z]|[^a-z]vee+[^a-z]))' + when 'w' then '(?:(?:w|vv|\\\\/\\\\/|\\\\\\|/|\\\\\\\\\\\'|\\\'//|\\\\\\^/|\\(n\\)|[^a-z]do?u+b+l+e*[^a-z]?(?:u+|you|yoo+)[^a-z])+)' + when 'x' then '(?:(?:x|\\>\\<|\\%|\\*|\\}\\{|\\)\\(|[^a-z]e[ck]+s+[^a-z]|[^a-z]ex+[^a-z])+)' + when 'y' then '(?:(?:y|\\u00a5|j|\\\'/|[^a-z]wh?(?:y+|ie+)[^a-z])+)' else char end elsif char.downcase == 'w' then From d4adf126a2b0649479d574fa6cfe8731f231c843 Mon Sep 17 00:00:00 2001 From: Will Jessop Date: Fri, 1 Jul 2022 18:46:04 +0100 Subject: [PATCH 5/6] Allow a modern bundler in development --- language_filter.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/language_filter.gemspec b/language_filter.gemspec index cecf8a1..57a72cd 100644 --- a/language_filter.gemspec +++ b/language_filter.gemspec @@ -18,6 +18,6 @@ Gem::Specification.new do |spec| spec.test_files = spec.files.grep(%r{^(test|spec|features)/}) spec.require_paths = ["lib"] - spec.add_development_dependency "bundler", "~> 1.3" + spec.add_development_dependency "bundler" spec.add_development_dependency "rake" end From 8488e3a61c0ffe3ee6df3d4cc198d6c0b3df9e37 Mon Sep 17 00:00:00 2001 From: Will Jessop Date: Fri, 1 Jul 2022 18:47:35 +0100 Subject: [PATCH 6/6] Fix tests --- test/test_helper.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/test_helper.rb b/test/test_helper.rb index 82e61e9..cbc2fdc 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -68,7 +68,7 @@ def test_against_word_lists }, { name: :sex, - results: ["sex","sexual","sexes","Sex","Sexual","cock","cocks","Cock","Dick","DICK","ass","Ass","penis","prick","pricks","manhood","breast","breasts","cleavage","muff","Homo","homo","slut","whore","gay","Gay","dyke","Dyke","dykes","fagots","fagged","faggots","puberty"] + results: ["sex","sexual","sexes","Sex","Sexual","cock","cocks","Cock","Dick","DICK","ass","Ass","penis","prick","pricks","manhood","breast","breasts","cleavage","muff","Homo","homo","slut","whore","gay","Gay","dyke","Dyke","dykes","fagots","fagged","faggots","cum","Cum","puberty"] }, { name: :violence, @@ -86,7 +86,7 @@ def test_against_word_lists }, { name: :sex, - results: ["sex","sexual","sexes","Sex","Sexual","cock","cocks","Cock","Dick","DICK","ass","Ass","penis","prick","pricks","manhood","breast","breasts","cleavage","muff","Kunti","kunt","Homo","homo","slut","whore","gay","Gay","dyke","Dyke","dykes","fagots","fagged","faggots","puberty"] + results: ["sex","sexual","sexes","Sex","Sexual","cock","cocks","Cock","Dick","DICK","ass","Ass","penis","prick","pricks","manhood","breast","breasts","cleavage","muff","Kunti","kunt","Homo","homo","slut","whore","gay","Gay","dyke","Dyke","dykes","fagots","fagged","faggots","cum","Cum","puberty"] }, { name: :violence,