bad_word_detector 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,8 +8,9 @@ class State
|
|
8
8
|
@length = 0
|
9
9
|
@weight = 1
|
10
10
|
|
11
|
-
path.
|
11
|
+
path.each_index do |index|
|
12
12
|
# puts item.inspect
|
13
|
+
rule = path[index]
|
13
14
|
@text += rule.symbol
|
14
15
|
@length += rule.length
|
15
16
|
@weight *= rule.weight
|
@@ -17,6 +18,12 @@ class State
|
|
17
18
|
end
|
18
19
|
|
19
20
|
def append(rule)
|
21
|
+
last_char_index = @path.rindex {|r| r.symbol != '' }
|
22
|
+
rule = if last_char_index and @path[last_char_index].symbol == rule.symbol and rule.symbol != ''
|
23
|
+
Rule.new rule.char, '', 1
|
24
|
+
else
|
25
|
+
rule
|
26
|
+
end
|
20
27
|
State.new @path + [rule], State.get_library(rule ? rule.symbol : '', @library)
|
21
28
|
end
|
22
29
|
|
@@ -38,4 +45,4 @@ class State
|
|
38
45
|
library[symbol]
|
39
46
|
end
|
40
47
|
end
|
41
|
-
end
|
48
|
+
end
|
@@ -58,11 +58,27 @@ class TestBadWordDetector < Test::Unit::TestCase
|
|
58
58
|
assert_equal true, word.white?
|
59
59
|
end
|
60
60
|
def test_false_positive_in_text
|
61
|
-
word = finder.find("
|
61
|
+
word = finder.find("jackass", true)
|
62
62
|
assert_not_nil word
|
63
63
|
assert_equal true, word.white?
|
64
64
|
assert_equal "ass", word.word
|
65
65
|
end
|
66
|
+
def test_repeats
|
67
|
+
word = finder.find("fuuuuuuuck")
|
68
|
+
assert_not_nil word
|
69
|
+
assert_equal "fuuuuuuuck", word.text
|
70
|
+
assert_equal "fuck", word.word
|
71
|
+
assert_equal "fuuuuuuuck", word.source
|
72
|
+
assert_equal 0, word.index
|
73
|
+
end
|
74
|
+
def test_repeats_replaces
|
75
|
+
word = finder.find("fuuu|_|uuuck")
|
76
|
+
assert_not_nil word
|
77
|
+
assert_equal "fuuu|_|uuuck", word.text
|
78
|
+
assert_equal "fuck", word.word
|
79
|
+
assert_equal "fuuu|_|uuuck", word.source
|
80
|
+
assert_equal 0, word.index
|
81
|
+
end
|
66
82
|
end
|
67
83
|
|
68
84
|
class Finder
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bad_word_detector
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03-
|
12
|
+
date: 2013-03-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: yard
|