LittleWeasel 5.0.4 → 5.0.6
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.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +16 -0
- data/.rubocop.yml +9 -4
- data/CHANGELOG.md +8 -0
- data/Gemfile.lock +44 -32
- data/LittleWeasel.gemspec +5 -5
- data/lib/LittleWeasel/dictionary.rb +1 -1
- data/lib/LittleWeasel/errors/dictionary_file_too_large_error.rb +1 -1
- data/lib/LittleWeasel/metadata/metadata_observable_validatable.rb +1 -1
- data/lib/LittleWeasel/version.rb +1 -1
- data/spec/factories/dictionary.rb +27 -27
- data/spec/factories/dictionary_cache_service.rb +4 -6
- data/spec/factories/dictionary_creator_service.rb +1 -1
- data/spec/factories/dictionary_file_loader_service.rb +1 -1
- data/spec/factories/dictionary_hash.rb +26 -26
- data/spec/factories/dictionary_key.rb +1 -1
- data/spec/factories/dictionary_killer_service.rb +1 -1
- data/spec/factories/dictionary_manager.rb +1 -1
- data/spec/factories/dictionary_metadata.rb +1 -1
- data/spec/factories/dictionary_metadata_service.rb +1 -1
- data/spec/factories/numeric_filter.rb +1 -1
- data/spec/factories/preprocessed_word.rb +1 -1
- data/spec/factories/preprocessed_words.rb +1 -1
- data/spec/factories/single_character_word_filter.rb +1 -1
- data/spec/factories/word_results.rb +1 -1
- data/spec/lib/LittleWeasel/block_results_spec.rb +23 -23
- data/spec/lib/LittleWeasel/configure_spec.rb +3 -3
- data/spec/lib/LittleWeasel/dictionary_key_spec.rb +9 -9
- data/spec/lib/LittleWeasel/dictionary_manager_spec.rb +29 -29
- data/spec/lib/LittleWeasel/dictionary_spec.rb +30 -29
- data/spec/lib/LittleWeasel/filters/en_us/currency_filter_spec.rb +26 -26
- data/spec/lib/LittleWeasel/filters/en_us/numeric_filter_spec.rb +17 -17
- data/spec/lib/LittleWeasel/filters/en_us/single_character_word_filter_spec.rb +8 -8
- data/spec/lib/LittleWeasel/filters/word_filter_managable_spec.rb +19 -19
- data/spec/lib/LittleWeasel/filters/word_filter_spec.rb +17 -17
- data/spec/lib/LittleWeasel/filters/word_filter_validatable_spec.rb +27 -12
- data/spec/lib/LittleWeasel/filters/word_filters_validatable_spec.rb +6 -6
- data/spec/lib/LittleWeasel/integraton_tests/dictionary_integration_spec.rb +23 -23
- data/spec/lib/LittleWeasel/metadata/dictionary_creator_servicable_spec.rb +7 -6
- data/spec/lib/LittleWeasel/metadata/dictionary_metadata_spec.rb +13 -13
- data/spec/lib/LittleWeasel/metadata/invalid_words_metadata_spec.rb +17 -17
- data/spec/lib/LittleWeasel/metadata/metadata_observerable_spec.rb +1 -1
- data/spec/lib/LittleWeasel/modules/dictionary_file_loader_spec.rb +30 -30
- data/spec/lib/LittleWeasel/modules/dictionary_sourceable_spec.rb +21 -21
- data/spec/lib/LittleWeasel/modules/language_spec.rb +5 -5
- data/spec/lib/LittleWeasel/modules/locale_spec.rb +1 -1
- data/spec/lib/LittleWeasel/modules/region_spec.rb +5 -5
- data/spec/lib/LittleWeasel/preprocessors/en_us/capitalize_preprocessor_spec.rb +8 -6
- data/spec/lib/LittleWeasel/preprocessors/preprocessed_word_spec.rb +3 -3
- data/spec/lib/LittleWeasel/preprocessors/preprocessed_word_validatable_spec.rb +14 -3
- data/spec/lib/LittleWeasel/preprocessors/preprocessed_words_spec.rb +8 -10
- data/spec/lib/LittleWeasel/preprocessors/preprocessed_words_validatable_spec.rb +6 -4
- data/spec/lib/LittleWeasel/preprocessors/word_preprocessor_managable_spec.rb +27 -28
- data/spec/lib/LittleWeasel/preprocessors/word_preprocessor_spec.rb +25 -29
- data/spec/lib/LittleWeasel/preprocessors/word_preprocessor_validatable_spec.rb +10 -2
- data/spec/lib/LittleWeasel/preprocessors/word_preprocessors_validatable_spec.rb +4 -6
- data/spec/lib/LittleWeasel/services/dictionary_cache_service_spec.rb +51 -49
- data/spec/lib/LittleWeasel/services/dictionary_creator_service_spec.rb +14 -14
- data/spec/lib/LittleWeasel/services/dictionary_file_loader_service_spec.rb +30 -30
- data/spec/lib/LittleWeasel/services/dictionary_metadata_service_spec.rb +22 -22
- data/spec/lib/LittleWeasel/word_results_spec.rb +29 -32
- data/spec/lib/LittleWeasel/workflow/workflow_spec.rb +2 -2
- data/spec/spec_helper.rb +56 -56
- data/spec/support/factory_bot.rb +1 -2
- data/spec/support/file_helpers.rb +2 -2
- data/spec/support/general_helpers.rb +2 -1
- data/spec/support/shared_contexts.rb +13 -9
- data/spec/support/shared_examples.rb +10 -8
- metadata +26 -19
@@ -8,20 +8,20 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWords, type: :module do
|
|
8
8
|
let(:original_word) { 'word' }
|
9
9
|
let(:preprocessed_words) {}
|
10
10
|
|
11
|
-
|
11
|
+
# .new
|
12
12
|
describe '.new' do
|
13
13
|
it 'instantiates an object' do
|
14
|
-
expect { subject }.
|
14
|
+
expect { subject }.not_to raise_error
|
15
15
|
end
|
16
16
|
|
17
17
|
context 'arguments' do
|
18
|
-
|
18
|
+
describe '#original_word' do
|
19
19
|
it 'sets the original_word attribute' do
|
20
20
|
expect(subject.original_word).to eq original_word
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
-
|
24
|
+
describe '#preprocessed_words' do
|
25
25
|
let(:preprocessed_words) { [:preprocessed_words] }
|
26
26
|
|
27
27
|
it 'sets the original_word attribute' do
|
@@ -31,7 +31,7 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWords, type: :module do
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
-
#preprocessed_word
|
34
|
+
# preprocessed_word
|
35
35
|
describe '#preprocessed_word' do
|
36
36
|
subject do
|
37
37
|
create(:preprocessed_words,
|
@@ -45,7 +45,7 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWords, type: :module do
|
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
48
|
-
|
48
|
+
# preprocessed?
|
49
49
|
describe '#preprocessed?' do
|
50
50
|
context 'when the word has been preprocessed' do
|
51
51
|
subject do
|
@@ -56,7 +56,7 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWords, type: :module do
|
|
56
56
|
end
|
57
57
|
|
58
58
|
it 'returns the preprocessed word' do
|
59
|
-
expect(subject.preprocessed?).to
|
59
|
+
expect(subject.preprocessed?).to be true
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
@@ -68,10 +68,8 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWords, type: :module do
|
|
68
68
|
end
|
69
69
|
|
70
70
|
it 'returns the preprocessed word' do
|
71
|
-
expect(subject.preprocessed?).to
|
71
|
+
expect(subject.preprocessed?).to be false
|
72
72
|
end
|
73
73
|
end
|
74
74
|
end
|
75
75
|
end
|
76
|
-
|
77
|
-
|
@@ -25,11 +25,11 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWordsValidatable, type:
|
|
25
25
|
let(:original_word) { 'word' }
|
26
26
|
let(:with_word_processors) { 0 }
|
27
27
|
|
28
|
-
|
28
|
+
# .validate_prepreprocessed_words
|
29
29
|
describe '.validate_prepreprocessed_words' do
|
30
30
|
context 'when the object is valid' do
|
31
31
|
it 'does not raise an error' do
|
32
|
-
expect { PreprocessedWordsValidatable.validate_prepreprocessed_words(preprocessed_words: preprocessed_words) }.
|
32
|
+
expect { PreprocessedWordsValidatable.validate_prepreprocessed_words(preprocessed_words: preprocessed_words) }.not_to raise_error
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
@@ -38,19 +38,21 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWordsValidatable, type:
|
|
38
38
|
|
39
39
|
context 'when the object does not respond to #original_word' do
|
40
40
|
before { allow(preprocessed_words).to receive(:respond_to?).with(method).and_return(false) }
|
41
|
+
|
41
42
|
let(:method) { :original_word }
|
42
43
|
|
43
44
|
it 'raises an error' do
|
44
|
-
expect{ PreprocessedWordsValidatable.validate_prepreprocessed_words(preprocessed_words: preprocessed_words) }.to raise_error expected_error
|
45
|
+
expect { PreprocessedWordsValidatable.validate_prepreprocessed_words(preprocessed_words: preprocessed_words) }.to raise_error expected_error
|
45
46
|
end
|
46
47
|
end
|
47
48
|
|
48
49
|
context 'when the object does not respond to #preprocessed_words' do
|
49
50
|
before { allow(preprocessed_words).to receive(:respond_to?).with(method).and_return(false) }
|
51
|
+
|
50
52
|
let(:method) { :preprocessed_words }
|
51
53
|
|
52
54
|
it 'raises an error' do
|
53
|
-
expect{ PreprocessedWordsValidatable.validate_prepreprocessed_words(preprocessed_words: preprocessed_words) }.to raise_error expected_error
|
55
|
+
expect { PreprocessedWordsValidatable.validate_prepreprocessed_words(preprocessed_words: preprocessed_words) }.to raise_error expected_error
|
54
56
|
end
|
55
57
|
end
|
56
58
|
end
|
@@ -17,7 +17,7 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessorManagable, type: :mo
|
|
17
17
|
end
|
18
18
|
|
19
19
|
class << self
|
20
|
-
def preprocess(word) [true, "#{word}-0"]
|
20
|
+
def preprocess(word) = [true, "#{word}-0"]
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
@@ -27,7 +27,7 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessorManagable, type: :mo
|
|
27
27
|
end
|
28
28
|
|
29
29
|
class << self
|
30
|
-
def preprocess(word) [true, "#{word}-1"]
|
30
|
+
def preprocess(word) = [true, "#{word}-1"]
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
@@ -37,14 +37,19 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessorManagable, type: :mo
|
|
37
37
|
end
|
38
38
|
|
39
39
|
class << self
|
40
|
-
def preprocess(word) [true, "#{word}-2"]
|
40
|
+
def preprocess(word) = [true, "#{word}-2"]
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
44
|
let(:word_preprocessors_01_thru_03) do
|
45
45
|
[MockWordPreprocessor03.new,
|
46
|
-
|
47
|
-
|
46
|
+
MockWordPreprocessor02.new,
|
47
|
+
MockWordPreprocessor01.new]
|
48
|
+
end
|
49
|
+
let(:word_preprocessors_04_thru_06) do
|
50
|
+
[MockWordPreprocessor06.new,
|
51
|
+
MockWordPreprocessor05.new,
|
52
|
+
MockWordPreprocessor04.new]
|
48
53
|
end
|
49
54
|
|
50
55
|
class MockWordPreprocessor04 < MockWordPreprocessor01
|
@@ -53,7 +58,7 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessorManagable, type: :mo
|
|
53
58
|
end
|
54
59
|
|
55
60
|
class << self
|
56
|
-
def preprocess(word) [true, "#{word}-3"]
|
61
|
+
def preprocess(word) = [true, "#{word}-3"]
|
57
62
|
end
|
58
63
|
end
|
59
64
|
|
@@ -63,7 +68,7 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessorManagable, type: :mo
|
|
63
68
|
end
|
64
69
|
|
65
70
|
class << self
|
66
|
-
def preprocess(word) [true, "#{word}-4"]
|
71
|
+
def preprocess(word) = [true, "#{word}-4"]
|
67
72
|
end
|
68
73
|
end
|
69
74
|
|
@@ -73,27 +78,21 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessorManagable, type: :mo
|
|
73
78
|
end
|
74
79
|
|
75
80
|
class << self
|
76
|
-
def preprocess(word) [true, "#{word}-5"]
|
81
|
+
def preprocess(word) = [true, "#{word}-5"]
|
77
82
|
end
|
78
83
|
end
|
79
84
|
|
80
|
-
|
81
|
-
[MockWordPreprocessor06.new,
|
82
|
-
MockWordPreprocessor05.new,
|
83
|
-
MockWordPreprocessor04.new]
|
84
|
-
end
|
85
|
-
|
86
|
-
#preprocessed_word
|
85
|
+
# preprocessed_word
|
87
86
|
describe '#preprocessed_word' do
|
88
87
|
context 'when word is blank' do
|
89
88
|
it 'returns nil' do
|
90
|
-
expect(subject.preprocessed_word
|
89
|
+
expect(subject.preprocessed_word(word: 'word')).to be_nil
|
91
90
|
end
|
92
91
|
end
|
93
92
|
|
94
93
|
context 'when word is not a String' do
|
95
94
|
it 'returns nil' do
|
96
|
-
expect(subject.preprocessed_word
|
95
|
+
expect(subject.preprocessed_word(word: :not_a_word)).to be_nil
|
97
96
|
end
|
98
97
|
end
|
99
98
|
|
@@ -103,19 +102,19 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessorManagable, type: :mo
|
|
103
102
|
end
|
104
103
|
|
105
104
|
it 'returns the preprocessed word' do
|
106
|
-
expect(subject.preprocessed_word
|
105
|
+
expect(subject.preprocessed_word(word: 'word')).to eq 'word-0-1-2'
|
107
106
|
end
|
108
107
|
end
|
109
108
|
end
|
110
109
|
|
111
|
-
#word_preprocessors
|
110
|
+
# word_preprocessors
|
112
111
|
describe '#word_preprocessors' do
|
113
112
|
it 'returns an empty Array ([]) by default' do
|
114
113
|
expect(subject.word_preprocessors).to eq []
|
115
114
|
end
|
116
115
|
end
|
117
116
|
|
118
|
-
#clear_preprocessors
|
117
|
+
# clear_preprocessors
|
119
118
|
describe '#clear_preprocessors' do
|
120
119
|
before do
|
121
120
|
subject.replace_preprocessors word_preprocessors: word_preprocessors_01_thru_03
|
@@ -126,12 +125,12 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessorManagable, type: :mo
|
|
126
125
|
end
|
127
126
|
end
|
128
127
|
|
129
|
-
#add_preprocessors
|
128
|
+
# add_preprocessors
|
130
129
|
describe '#add_preprocessors' do
|
131
130
|
context 'when passing an INVALID argument' do
|
132
131
|
context 'when passing an Array of invalid word preprocessors' do
|
133
132
|
it 'raises an error' do
|
134
|
-
expect { subject.add_preprocessors(word_preprocessors: %i
|
133
|
+
expect { subject.add_preprocessors(word_preprocessors: %i[bad word preprocessors]) }.to raise_error(/Argument word_preprocessor: does not respond to/)
|
135
134
|
end
|
136
135
|
end
|
137
136
|
end
|
@@ -161,7 +160,7 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessorManagable, type: :mo
|
|
161
160
|
it 'does NOT raise an error' do
|
162
161
|
expect do
|
163
162
|
subject.add_preprocessors { |_word_preprocessors| }
|
164
|
-
end.
|
163
|
+
end.not_to raise_error
|
165
164
|
end
|
166
165
|
|
167
166
|
it 'uses the word preprocessors added via the block' do
|
@@ -181,7 +180,7 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessorManagable, type: :mo
|
|
181
180
|
end
|
182
181
|
end
|
183
182
|
|
184
|
-
#replace_preprocessors
|
183
|
+
# replace_preprocessors
|
185
184
|
describe '#replace_preprocessors' do
|
186
185
|
before do
|
187
186
|
subject.add_preprocessors word_preprocessors: word_preprocessors_01_thru_03
|
@@ -193,12 +192,12 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessorManagable, type: :mo
|
|
193
192
|
|
194
193
|
it 'replaces the word preprocessors in #word_preprocessors and sorts the #word_preprocessors Array by WordPreprocessor#order' do
|
195
194
|
expect(subject.word_preprocessors).to match_array word_preprocessors_01_thru_03
|
196
|
-
expect(subject.replace_preprocessors
|
195
|
+
expect(subject.replace_preprocessors(word_preprocessors: word_preprocessors_04_thru_06)).to eq expected_results
|
197
196
|
expect(subject.word_preprocessors).to eq expected_results
|
198
197
|
end
|
199
198
|
end
|
200
199
|
|
201
|
-
#preprocessors_on=
|
200
|
+
# preprocessors_on=
|
202
201
|
describe '#preprocessors_on=' do
|
203
202
|
context 'when assigning true' do
|
204
203
|
before do
|
@@ -225,7 +224,7 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessorManagable, type: :mo
|
|
225
224
|
end
|
226
225
|
end
|
227
226
|
|
228
|
-
#preprocess
|
227
|
+
# preprocess
|
229
228
|
describe '#preprocess' do
|
230
229
|
before do
|
231
230
|
subject.add_preprocessors word_preprocessors: word_preprocessors
|
@@ -236,7 +235,7 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessorManagable, type: :mo
|
|
236
235
|
|
237
236
|
it 'preprocesses the word' do
|
238
237
|
expect(subject.word_preprocessors.count).to eq word_preprocessors.count
|
239
|
-
expect(subject.preprocess(word: word).preprocessed_words.map(&:preprocessed_word)).to eq %w
|
238
|
+
expect(subject.preprocess(word: word).preprocessed_words.map(&:preprocessed_word)).to eq %w[word-0 word-0-1 word-0-1-2]
|
240
239
|
end
|
241
240
|
end
|
242
241
|
end
|
@@ -13,11 +13,11 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessor do
|
|
13
13
|
let(:order) { 0 }
|
14
14
|
let(:word) { 'word' }
|
15
15
|
|
16
|
-
|
16
|
+
# .new
|
17
17
|
describe '.new' do
|
18
18
|
context 'when arguments are valid' do
|
19
19
|
it 'instantiates the object' do
|
20
|
-
expect { subject }.
|
20
|
+
expect { subject }.not_to raise_error
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
@@ -52,7 +52,7 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessor do
|
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
55
|
-
|
55
|
+
# .preprocess
|
56
56
|
describe '.preprocess' do
|
57
57
|
context 'when not overridden' do
|
58
58
|
it 'raises an error' do
|
@@ -61,7 +61,7 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessor do
|
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
|
-
#preprocessor_on
|
64
|
+
# preprocessor_on
|
65
65
|
describe '#preprocessor_on' do
|
66
66
|
context 'when set to true' do
|
67
67
|
before do
|
@@ -69,7 +69,7 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessor do
|
|
69
69
|
end
|
70
70
|
|
71
71
|
it 'returns true' do
|
72
|
-
expect(subject.preprocessor_on).to
|
72
|
+
expect(subject.preprocessor_on).to be true
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
@@ -79,30 +79,30 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessor do
|
|
79
79
|
end
|
80
80
|
|
81
81
|
it 'returns false' do
|
82
|
-
expect(subject.preprocessor_on).to
|
82
|
+
expect(subject.preprocessor_on).to be false
|
83
83
|
end
|
84
84
|
end
|
85
85
|
end
|
86
86
|
|
87
|
-
#preprocessor_on!
|
87
|
+
# preprocessor_on!
|
88
88
|
describe '#preprocessor_on!' do
|
89
89
|
before do
|
90
|
-
expect(subject.preprocessor_off?).to
|
90
|
+
expect(subject.preprocessor_off?).to be true
|
91
91
|
end
|
92
92
|
|
93
93
|
let(:preprocessor_on) { false }
|
94
94
|
|
95
95
|
it 'turns the preprocessor on' do
|
96
96
|
subject.preprocessor_on!
|
97
|
-
expect(subject.preprocessor_on).to
|
97
|
+
expect(subject.preprocessor_on).to be true
|
98
98
|
end
|
99
99
|
end
|
100
100
|
|
101
|
-
#preprocessor_on?
|
101
|
+
# preprocessor_on?
|
102
102
|
describe '#preprocessor_on?' do
|
103
103
|
context 'when #preprocessor_on is true' do
|
104
104
|
it 'returns true' do
|
105
|
-
expect(subject.preprocessor_on?).to
|
105
|
+
expect(subject.preprocessor_on?).to be true
|
106
106
|
end
|
107
107
|
end
|
108
108
|
|
@@ -110,12 +110,12 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessor do
|
|
110
110
|
let(:preprocessor_on) { false }
|
111
111
|
|
112
112
|
it 'returns false' do
|
113
|
-
expect(subject.preprocessor_on?).to
|
113
|
+
expect(subject.preprocessor_on?).to be false
|
114
114
|
end
|
115
115
|
end
|
116
116
|
end
|
117
117
|
|
118
|
-
#preprocess
|
118
|
+
# preprocess
|
119
119
|
describe '#preprocess' do
|
120
120
|
context 'when not overridden' do
|
121
121
|
it 'raises an error' do
|
@@ -125,16 +125,13 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessor do
|
|
125
125
|
|
126
126
|
context 'when overridden' do
|
127
127
|
before do
|
128
|
-
allow(described_class).to
|
129
|
-
.and_return true
|
130
|
-
allow(described_class).to receive(:preprocess)
|
131
|
-
.and_return [true, 'preprocessed-word']
|
128
|
+
allow(described_class).to receive_messages(preprocess?: true, preprocess: [true, 'preprocessed-word'])
|
132
129
|
end
|
133
130
|
|
134
131
|
context 'when #preprocessor_on? is true' do
|
135
132
|
it 'calls .preprocess and returns a ProcessedWord object' do
|
136
133
|
expect(described_class).to receive(:preprocess)
|
137
|
-
expect(subject.preprocess
|
134
|
+
expect(subject.preprocess(word)).to be_a LittleWeasel::Preprocessors::PreprocessedWord
|
138
135
|
end
|
139
136
|
end
|
140
137
|
|
@@ -142,20 +139,19 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessor do
|
|
142
139
|
let(:preprocessor_on) { false }
|
143
140
|
|
144
141
|
it 'does NOT call .preprocess and returns a ProcessedWord object' do
|
145
|
-
expect(described_class).
|
146
|
-
expect(subject.preprocess
|
142
|
+
expect(described_class).not_to receive(:preprocess)
|
143
|
+
expect(subject.preprocess(word)).to be_a LittleWeasel::Preprocessors::PreprocessedWord
|
147
144
|
end
|
148
|
-
|
149
145
|
end
|
150
146
|
end
|
151
147
|
end
|
152
148
|
|
153
|
-
#preprocess?
|
149
|
+
# preprocess?
|
154
150
|
describe '#preprocess?' do
|
155
151
|
let(:word) { 'word' }
|
156
152
|
|
157
153
|
it 'returns true by default' do
|
158
|
-
expect(subject.preprocess?
|
154
|
+
expect(subject.preprocess?(word)).to be true
|
159
155
|
end
|
160
156
|
|
161
157
|
context 'when #preprocess? returns true' do
|
@@ -187,32 +183,32 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessor do
|
|
187
183
|
end
|
188
184
|
end
|
189
185
|
|
190
|
-
#preprocessor_off?
|
186
|
+
# preprocessor_off?
|
191
187
|
describe '#preprocessor_off?' do
|
192
188
|
context 'when #preprocessor_on is false' do
|
193
189
|
let(:preprocessor_on) { false }
|
194
190
|
|
195
191
|
it 'returns true' do
|
196
|
-
expect(subject.preprocessor_off?).to
|
192
|
+
expect(subject.preprocessor_off?).to be true
|
197
193
|
end
|
198
194
|
end
|
199
195
|
|
200
196
|
context 'when #preprocessor_on is true' do
|
201
197
|
it 'returns false' do
|
202
|
-
expect(subject.preprocessor_off?).to
|
198
|
+
expect(subject.preprocessor_off?).to be false
|
203
199
|
end
|
204
200
|
end
|
205
201
|
end
|
206
202
|
|
207
|
-
#preprocessor_off!
|
203
|
+
# preprocessor_off!
|
208
204
|
describe '#preprocessor_off!' do
|
209
205
|
before do
|
210
|
-
expect(subject.preprocessor_on?).to
|
206
|
+
expect(subject.preprocessor_on?).to be true
|
211
207
|
end
|
212
208
|
|
213
209
|
it 'turns the preprocessor off' do
|
214
210
|
subject.preprocessor_off!
|
215
|
-
expect(subject.preprocessor_on).to
|
211
|
+
expect(subject.preprocessor_on).to be false
|
216
212
|
end
|
217
213
|
end
|
218
214
|
end
|
@@ -45,7 +45,7 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessorValidatable, type: :
|
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
48
|
-
|
48
|
+
# .validate_word_preprocessor
|
49
49
|
describe '.validate_word_preprocessor' do
|
50
50
|
before do
|
51
51
|
allow(word_preprocessor.class).to receive(:respond_to?).and_call_original
|
@@ -54,7 +54,7 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessorValidatable, type: :
|
|
54
54
|
|
55
55
|
context 'when the object quacks right' do
|
56
56
|
it 'passes validation' do
|
57
|
-
expect { WordPreprocessorValidatable.validate_word_preprocessor word_preprocessor: word_preprocessor }.
|
57
|
+
expect { WordPreprocessorValidatable.validate_word_preprocessor word_preprocessor: word_preprocessor }.not_to raise_error
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
@@ -64,11 +64,13 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessorValidatable, type: :
|
|
64
64
|
context 'when a class method is missing' do
|
65
65
|
context 'when the class does not respond to .preprocess' do
|
66
66
|
let(:method) { :preprocess }
|
67
|
+
|
67
68
|
it_behaves_like 'a class method is missing'
|
68
69
|
end
|
69
70
|
|
70
71
|
context 'when the class does not respond to .preprocess?' do
|
71
72
|
let(:method) { :preprocess? }
|
73
|
+
|
72
74
|
it_behaves_like 'a class method is missing'
|
73
75
|
end
|
74
76
|
end
|
@@ -76,31 +78,37 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessorValidatable, type: :
|
|
76
78
|
context 'when an instance method is missing' do
|
77
79
|
context 'when the object does not respond to #preprocess' do
|
78
80
|
let(:method) { :preprocess }
|
81
|
+
|
79
82
|
it_behaves_like 'an instance method is missing'
|
80
83
|
end
|
81
84
|
|
82
85
|
context 'when the object does not respond to #preprocess?' do
|
83
86
|
let(:method) { :preprocess? }
|
87
|
+
|
84
88
|
it_behaves_like 'an instance method is missing'
|
85
89
|
end
|
86
90
|
|
87
91
|
context 'when the object does not respond to #preprocessor_off?' do
|
88
92
|
let(:method) { :preprocessor_off? }
|
93
|
+
|
89
94
|
it_behaves_like 'an instance method is missing'
|
90
95
|
end
|
91
96
|
|
92
97
|
context 'when the object does not respond to #preprocessor_on' do
|
93
98
|
let(:method) { :preprocessor_on }
|
99
|
+
|
94
100
|
it_behaves_like 'an instance method is missing'
|
95
101
|
end
|
96
102
|
|
97
103
|
context 'when the object does not respond to #preprocessor_on=' do
|
98
104
|
let(:method) { :preprocessor_on= }
|
105
|
+
|
99
106
|
it_behaves_like 'an instance method is missing'
|
100
107
|
end
|
101
108
|
|
102
109
|
context 'when the object does not respond to #preprocessor_on?' do
|
103
110
|
let(:method) { :preprocessor_on? }
|
111
|
+
|
104
112
|
it_behaves_like 'an instance method is missing'
|
105
113
|
end
|
106
114
|
end
|
@@ -3,8 +3,6 @@
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
5
|
RSpec.describe LittleWeasel::Preprocessors::WordPreprocessorsValidatable, type: :module do
|
6
|
-
subject { MockSubject.new }
|
7
|
-
|
8
6
|
WordPreprocessorsValidatable = described_class
|
9
7
|
|
10
8
|
class MockSubject
|
@@ -20,21 +18,21 @@ RSpec.describe LittleWeasel::Preprocessors::WordPreprocessorsValidatable, type:
|
|
20
18
|
end
|
21
19
|
|
22
20
|
class << self
|
23
|
-
def preprocess(word) [true, "#{word}-0"]
|
21
|
+
def preprocess(word) = [true, "#{word}-0"]
|
24
22
|
end
|
25
23
|
end
|
26
24
|
|
27
|
-
|
25
|
+
# .validate_word_preprocessors
|
28
26
|
describe '.validate_word_preprocessors' do
|
29
27
|
context 'when passing a blank Array' do
|
30
28
|
it 'passes validaton' do
|
31
|
-
expect { WordPreprocessorsValidatable.validate_word_preprocessors(word_preprocessors: []) }.
|
29
|
+
expect { WordPreprocessorsValidatable.validate_word_preprocessors(word_preprocessors: []) }.not_to raise_error
|
32
30
|
end
|
33
31
|
end
|
34
32
|
|
35
33
|
context 'when passing a an Array with valid word preprocessors' do
|
36
34
|
it 'passes validation' do
|
37
|
-
expect { WordPreprocessorsValidatable.validate_word_preprocessors(word_preprocessors: [MockWordPreprocessor.new]) }.
|
35
|
+
expect { WordPreprocessorsValidatable.validate_word_preprocessors(word_preprocessors: [MockWordPreprocessor.new]) }.not_to raise_error
|
38
36
|
end
|
39
37
|
end
|
40
38
|
|