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.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +16 -0
  3. data/.rubocop.yml +9 -4
  4. data/CHANGELOG.md +8 -0
  5. data/Gemfile.lock +44 -32
  6. data/LittleWeasel.gemspec +5 -5
  7. data/lib/LittleWeasel/dictionary.rb +1 -1
  8. data/lib/LittleWeasel/errors/dictionary_file_too_large_error.rb +1 -1
  9. data/lib/LittleWeasel/metadata/metadata_observable_validatable.rb +1 -1
  10. data/lib/LittleWeasel/version.rb +1 -1
  11. data/spec/factories/dictionary.rb +27 -27
  12. data/spec/factories/dictionary_cache_service.rb +4 -6
  13. data/spec/factories/dictionary_creator_service.rb +1 -1
  14. data/spec/factories/dictionary_file_loader_service.rb +1 -1
  15. data/spec/factories/dictionary_hash.rb +26 -26
  16. data/spec/factories/dictionary_key.rb +1 -1
  17. data/spec/factories/dictionary_killer_service.rb +1 -1
  18. data/spec/factories/dictionary_manager.rb +1 -1
  19. data/spec/factories/dictionary_metadata.rb +1 -1
  20. data/spec/factories/dictionary_metadata_service.rb +1 -1
  21. data/spec/factories/numeric_filter.rb +1 -1
  22. data/spec/factories/preprocessed_word.rb +1 -1
  23. data/spec/factories/preprocessed_words.rb +1 -1
  24. data/spec/factories/single_character_word_filter.rb +1 -1
  25. data/spec/factories/word_results.rb +1 -1
  26. data/spec/lib/LittleWeasel/block_results_spec.rb +23 -23
  27. data/spec/lib/LittleWeasel/configure_spec.rb +3 -3
  28. data/spec/lib/LittleWeasel/dictionary_key_spec.rb +9 -9
  29. data/spec/lib/LittleWeasel/dictionary_manager_spec.rb +29 -29
  30. data/spec/lib/LittleWeasel/dictionary_spec.rb +30 -29
  31. data/spec/lib/LittleWeasel/filters/en_us/currency_filter_spec.rb +26 -26
  32. data/spec/lib/LittleWeasel/filters/en_us/numeric_filter_spec.rb +17 -17
  33. data/spec/lib/LittleWeasel/filters/en_us/single_character_word_filter_spec.rb +8 -8
  34. data/spec/lib/LittleWeasel/filters/word_filter_managable_spec.rb +19 -19
  35. data/spec/lib/LittleWeasel/filters/word_filter_spec.rb +17 -17
  36. data/spec/lib/LittleWeasel/filters/word_filter_validatable_spec.rb +27 -12
  37. data/spec/lib/LittleWeasel/filters/word_filters_validatable_spec.rb +6 -6
  38. data/spec/lib/LittleWeasel/integraton_tests/dictionary_integration_spec.rb +23 -23
  39. data/spec/lib/LittleWeasel/metadata/dictionary_creator_servicable_spec.rb +7 -6
  40. data/spec/lib/LittleWeasel/metadata/dictionary_metadata_spec.rb +13 -13
  41. data/spec/lib/LittleWeasel/metadata/invalid_words_metadata_spec.rb +17 -17
  42. data/spec/lib/LittleWeasel/metadata/metadata_observerable_spec.rb +1 -1
  43. data/spec/lib/LittleWeasel/modules/dictionary_file_loader_spec.rb +30 -30
  44. data/spec/lib/LittleWeasel/modules/dictionary_sourceable_spec.rb +21 -21
  45. data/spec/lib/LittleWeasel/modules/language_spec.rb +5 -5
  46. data/spec/lib/LittleWeasel/modules/locale_spec.rb +1 -1
  47. data/spec/lib/LittleWeasel/modules/region_spec.rb +5 -5
  48. data/spec/lib/LittleWeasel/preprocessors/en_us/capitalize_preprocessor_spec.rb +8 -6
  49. data/spec/lib/LittleWeasel/preprocessors/preprocessed_word_spec.rb +3 -3
  50. data/spec/lib/LittleWeasel/preprocessors/preprocessed_word_validatable_spec.rb +14 -3
  51. data/spec/lib/LittleWeasel/preprocessors/preprocessed_words_spec.rb +8 -10
  52. data/spec/lib/LittleWeasel/preprocessors/preprocessed_words_validatable_spec.rb +6 -4
  53. data/spec/lib/LittleWeasel/preprocessors/word_preprocessor_managable_spec.rb +27 -28
  54. data/spec/lib/LittleWeasel/preprocessors/word_preprocessor_spec.rb +25 -29
  55. data/spec/lib/LittleWeasel/preprocessors/word_preprocessor_validatable_spec.rb +10 -2
  56. data/spec/lib/LittleWeasel/preprocessors/word_preprocessors_validatable_spec.rb +4 -6
  57. data/spec/lib/LittleWeasel/services/dictionary_cache_service_spec.rb +51 -49
  58. data/spec/lib/LittleWeasel/services/dictionary_creator_service_spec.rb +14 -14
  59. data/spec/lib/LittleWeasel/services/dictionary_file_loader_service_spec.rb +30 -30
  60. data/spec/lib/LittleWeasel/services/dictionary_metadata_service_spec.rb +22 -22
  61. data/spec/lib/LittleWeasel/word_results_spec.rb +29 -32
  62. data/spec/lib/LittleWeasel/workflow/workflow_spec.rb +2 -2
  63. data/spec/spec_helper.rb +56 -56
  64. data/spec/support/factory_bot.rb +1 -2
  65. data/spec/support/file_helpers.rb +2 -2
  66. data/spec/support/general_helpers.rb +2 -1
  67. data/spec/support/shared_contexts.rb +13 -9
  68. data/spec/support/shared_examples.rb +10 -8
  69. metadata +26 -19
@@ -3,11 +3,11 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  RSpec.describe LittleWeasel::Services::DictionaryMetadataService do
6
+ subject { create(:dictionary_metadata_service, dictionary_key: dictionary_key, dictionary_metadata: dictionary_metadata, dictionary_cache: dictionary_cache) }
7
+
6
8
  include_context 'dictionary cache'
7
9
  include_context 'dictionary keys'
8
10
 
9
- subject { create(:dictionary_metadata_service, dictionary_key: dictionary_key, dictionary_metadata: dictionary_metadata, dictionary_cache: dictionary_cache) }
10
-
11
11
  let(:en_us_dictionary_key) { dictionary_key_for(language: :en, region: :us) }
12
12
  let(:en_gb_dictionary_key) { dictionary_key_for(language: :en, region: :gb) }
13
13
  let(:es_es_dictionary_key) { dictionary_key_for(language: :es, region: :es) }
@@ -37,7 +37,7 @@ RSpec.describe LittleWeasel::Services::DictionaryMetadataService do
37
37
  end
38
38
 
39
39
  describe 'class methods' do
40
- #.init
40
+ # .init
41
41
  describe '.init' do
42
42
  context 'with a valid dictionary metadata argument' do
43
43
  it 'initializes the dictionary metadata' do
@@ -57,20 +57,20 @@ RSpec.describe LittleWeasel::Services::DictionaryMetadataService do
57
57
  end
58
58
  end
59
59
 
60
- #.init?
60
+ # .init?
61
61
  describe '.init?' do
62
62
  context 'with a valid dictionary metadata argument' do
63
63
  context 'when the dictionary metadata is in an initialized state' do
64
64
  let(:dictionary_metadata) { {} }
65
65
 
66
66
  it 'returns true' do
67
- expect(described_class.init?(dictionary_metadata: dictionary_metadata)).to eq true
67
+ expect(described_class.init?(dictionary_metadata: dictionary_metadata)).to be true
68
68
  end
69
69
  end
70
70
 
71
71
  context 'when the dictionary metadata is NOT in an initialized state' do
72
72
  it 'returns false' do
73
- expect(described_class.init?(dictionary_metadata: dictionary_metadata)).to eq false
73
+ expect(described_class.init?(dictionary_metadata: dictionary_metadata)).to be false
74
74
  end
75
75
  end
76
76
  end
@@ -83,11 +83,11 @@ RSpec.describe LittleWeasel::Services::DictionaryMetadataService do
83
83
  end
84
84
  end
85
85
 
86
- #.new
86
+ # .new
87
87
  describe '.new' do
88
88
  context 'when the arguments are valid' do
89
89
  it 'instantiates without errors' do
90
- expect { subject }.to_not raise_error
90
+ expect { subject }.not_to raise_error
91
91
  end
92
92
  end
93
93
 
@@ -96,11 +96,11 @@ RSpec.describe LittleWeasel::Services::DictionaryMetadataService do
96
96
  it_behaves_like 'the dictionary_metadata is invalid'
97
97
  end
98
98
 
99
- #init
99
+ # init
100
100
  describe '#init' do
101
101
  let(:expected_dictionary_metadata) do
102
102
  {
103
- 0 => { :metadata_key=>nil },
103
+ 0 => { metadata_key: nil },
104
104
  1 => { metadata_key1: :metadata_object1 }
105
105
  }
106
106
  end
@@ -135,7 +135,7 @@ RSpec.describe LittleWeasel::Services::DictionaryMetadataService do
135
135
  end
136
136
  end
137
137
 
138
- #dictionary_metadata?
138
+ # dictionary_metadata?
139
139
  describe '#dictionary_metadata?' do
140
140
  before do
141
141
  allow(subject).to receive(:dictionary_id).and_return(0)
@@ -143,7 +143,7 @@ RSpec.describe LittleWeasel::Services::DictionaryMetadataService do
143
143
 
144
144
  context 'when there is dictionary metadata associated with the dictionary for the metadata_key' do
145
145
  it 'returns true' do
146
- expect(subject.dictionary_metadata?(metadata_key: metadata_key)).to eq true
146
+ expect(subject.dictionary_metadata?(metadata_key: metadata_key)).to be true
147
147
  end
148
148
  end
149
149
 
@@ -156,19 +156,19 @@ RSpec.describe LittleWeasel::Services::DictionaryMetadataService do
156
156
  end
157
157
 
158
158
  it 'returns false' do
159
- expect(subject.dictionary_metadata?(metadata_key: metadata_key)).to eq false
159
+ expect(subject.dictionary_metadata?(metadata_key: metadata_key)).to be false
160
160
  end
161
161
  end
162
162
 
163
163
  context 'when there is no dictionary metadata for the metadata_key' do
164
164
  let(:dictionary_metadata) do
165
165
  {
166
- 0 => { :wrong_metadata_key => :metadata_object }
166
+ 0 => { wrong_metadata_key: :metadata_object }
167
167
  }
168
168
  end
169
169
 
170
170
  it 'returns false' do
171
- expect(subject.dictionary_metadata?(metadata_key: metadata_key)).to eq false
171
+ expect(subject.dictionary_metadata?(metadata_key: metadata_key)).to be false
172
172
  end
173
173
  end
174
174
 
@@ -180,13 +180,13 @@ RSpec.describe LittleWeasel::Services::DictionaryMetadataService do
180
180
  end
181
181
 
182
182
  it 'returns false' do
183
- expect(subject.dictionary_metadata?(metadata_key: metadata_key)).to eq false
183
+ expect(subject.dictionary_metadata?(metadata_key: metadata_key)).to be false
184
184
  end
185
185
  end
186
186
  end
187
187
  end
188
188
 
189
- #get_dictionary_metadata
189
+ # get_dictionary_metadata
190
190
  describe '#get_dictionary_metadata' do
191
191
  before do
192
192
  allow(subject).to receive(:dictionary_id!).and_return(0)
@@ -217,19 +217,19 @@ RSpec.describe LittleWeasel::Services::DictionaryMetadataService do
217
217
  end
218
218
 
219
219
  it 'returns false' do
220
- expect(subject.get_dictionary_metadata(metadata_key: metadata_key)).to eq nil
220
+ expect(subject.get_dictionary_metadata(metadata_key: metadata_key)).to be_nil
221
221
  end
222
222
  end
223
223
 
224
224
  context 'when there is no dictionary metadata for the metadata_key' do
225
225
  let(:dictionary_metadata) do
226
226
  {
227
- 0 => { :wrong_metadata_key => :metadata_object0 }
227
+ 0 => { wrong_metadata_key: :metadata_object0 }
228
228
  }
229
229
  end
230
230
 
231
231
  it 'returns false' do
232
- expect(subject.get_dictionary_metadata(metadata_key: metadata_key)).to eq nil
232
+ expect(subject.get_dictionary_metadata(metadata_key: metadata_key)).to be_nil
233
233
  end
234
234
  end
235
235
 
@@ -241,13 +241,13 @@ RSpec.describe LittleWeasel::Services::DictionaryMetadataService do
241
241
  end
242
242
 
243
243
  it 'returns false' do
244
- expect(subject.get_dictionary_metadata(metadata_key: metadata_key)).to eq nil
244
+ expect(subject.get_dictionary_metadata(metadata_key: metadata_key)).to be_nil
245
245
  end
246
246
  end
247
247
  end
248
248
  end
249
249
 
250
- #set_dictionary_metadata
250
+ # set_dictionary_metadata
251
251
  describe '#set_dictionary_metadata' do
252
252
  before do
253
253
  allow(subject).to receive(:dictionary_id!).and_return(0)
@@ -19,11 +19,11 @@ RSpec.describe LittleWeasel::WordResults do
19
19
  let(:word_cached) { false }
20
20
  let(:word_valid) { false }
21
21
 
22
- #.new
22
+ # .new
23
23
  describe '.new' do
24
24
  context 'with valid arguments' do
25
25
  it 'instantiates the object' do
26
- expect { subject }.to_not raise_error
26
+ expect { subject }.not_to raise_error
27
27
  end
28
28
  end
29
29
 
@@ -70,7 +70,7 @@ RSpec.describe LittleWeasel::WordResults do
70
70
  end
71
71
  end
72
72
 
73
- #original_word=
73
+ # original_word=
74
74
  describe '#original_word=' do
75
75
  let(:changed_value) { "#{original_word}-changed" }
76
76
 
@@ -81,7 +81,7 @@ RSpec.describe LittleWeasel::WordResults do
81
81
  end
82
82
  end
83
83
 
84
- #filters_matched=
84
+ # filters_matched=
85
85
  describe '#filters_matched=' do
86
86
  let(:filters_matched) { [:filters_matched] }
87
87
  let(:changed_value) { [:filters_matched_changed] }
@@ -93,7 +93,7 @@ RSpec.describe LittleWeasel::WordResults do
93
93
  end
94
94
  end
95
95
 
96
- #word_cached=
96
+ # word_cached=
97
97
  describe '#word_cached=' do
98
98
  let(:changed_value) { !word_cached }
99
99
 
@@ -104,7 +104,7 @@ RSpec.describe LittleWeasel::WordResults do
104
104
  end
105
105
  end
106
106
 
107
- #word_valid=
107
+ # word_valid=
108
108
  describe '#word_valid=' do
109
109
  let(:changed_value) { !word_valid }
110
110
 
@@ -115,7 +115,7 @@ RSpec.describe LittleWeasel::WordResults do
115
115
  end
116
116
  end
117
117
 
118
- #preprocesed_words=
118
+ # preprocesed_words=
119
119
  describe '#preprocesed_words=' do
120
120
  let(:changed_value) do
121
121
  create(:preprocessed_words, with_word_processors: 2, original_word: original_word)
@@ -123,18 +123,17 @@ RSpec.describe LittleWeasel::WordResults do
123
123
 
124
124
  it 'sets @preprocesed_words' do
125
125
  expect { subject.preprocessed_words = changed_value }.to \
126
- change { subject.preprocessed_words }
126
+ change(subject, :preprocessed_words)
127
127
  .from(preprocessed_words)
128
128
  .to(changed_value)
129
129
  end
130
130
  end
131
131
 
132
- #success?
132
+ # success?
133
133
  describe '#success?' do
134
134
  context 'when #filter_match? is false AND #word_valid? is false' do
135
135
  before do
136
- allow(subject).to receive(:filter_match?).and_return false
137
- allow(subject).to receive(:word_valid?).and_return false
136
+ allow(subject).to receive_messages(filter_match?: false, word_valid?: false)
138
137
  end
139
138
 
140
139
  it 'returns false' do
@@ -145,8 +144,7 @@ RSpec.describe LittleWeasel::WordResults do
145
144
  context 'when #filter_match? is true OR #word_valid? is true' do
146
145
  context 'when #filter_match? is true' do
147
146
  before do
148
- allow(subject).to receive(:filter_match?).and_return true
149
- allow(subject).to receive(:word_valid?).and_return false
147
+ allow(subject).to receive_messages(filter_match?: true, word_valid?: false)
150
148
  end
151
149
 
152
150
  it 'returns true' do
@@ -156,8 +154,7 @@ RSpec.describe LittleWeasel::WordResults do
156
154
 
157
155
  context 'when #word_valid? is true' do
158
156
  before do
159
- allow(subject).to receive(:filter_match?).and_return false
160
- allow(subject).to receive(:word_valid?).and_return true
157
+ allow(subject).to receive_messages(filter_match?: false, word_valid?: true)
161
158
  end
162
159
 
163
160
  it 'returns true' do
@@ -167,58 +164,58 @@ RSpec.describe LittleWeasel::WordResults do
167
164
  end
168
165
  end
169
166
 
170
- #filter_match?
167
+ # filter_match?
171
168
  describe '#filter_match?' do
172
- context '#when filters_matched is present' do
169
+ describe '#when filters_matched is present' do
173
170
  let(:filters_matched) { [:matched_filter] }
174
171
 
175
172
  it 'returns true' do
176
- expect(subject.filter_match?).to eq true
173
+ expect(subject.filter_match?).to be true
177
174
  end
178
175
  end
179
176
 
180
- context '#when filters_matched is NOT present' do
177
+ describe '#when filters_matched is NOT present' do
181
178
  it 'returns false' do
182
- expect(subject.filter_match?).to eq false
179
+ expect(subject.filter_match?).to be false
183
180
  end
184
181
  end
185
182
  end
186
183
 
187
- #word_cached?
184
+ # word_cached?
188
185
  describe '#word_cached?' do
189
- context '#when word_cached is true' do
186
+ describe '#when word_cached is true' do
190
187
  let(:word_cached) { true }
191
188
 
192
189
  it 'returns true' do
193
- expect(subject.word_cached?).to eq true
190
+ expect(subject.word_cached?).to be true
194
191
  end
195
192
  end
196
193
 
197
- context '#when word_cached is false' do
194
+ describe '#when word_cached is false' do
198
195
  it 'returns false' do
199
- expect(subject.word_cached?).to eq false
196
+ expect(subject.word_cached?).to be false
200
197
  end
201
198
  end
202
199
  end
203
200
 
204
- #word_valid?
201
+ # word_valid?
205
202
  describe '#word_valid?' do
206
- context '#when word_valid is true' do
203
+ describe '#when word_valid is true' do
207
204
  let(:word_valid) { true }
208
205
 
209
206
  it 'returns true' do
210
- expect(subject.word_valid?).to eq true
207
+ expect(subject.word_valid?).to be true
211
208
  end
212
209
  end
213
210
 
214
- context '#when word_valid is false' do
211
+ describe '#when word_valid is false' do
215
212
  it 'returns false' do
216
- expect(subject.word_valid?).to eq false
213
+ expect(subject.word_valid?).to be false
217
214
  end
218
215
  end
219
216
  end
220
217
 
221
- #preprocessed_word?
218
+ # preprocessed_word?
222
219
  describe '#preprocessed_word?' do
223
220
  subject do
224
221
  create(:word_results,
@@ -250,7 +247,7 @@ RSpec.describe LittleWeasel::WordResults do
250
247
  end
251
248
  end
252
249
 
253
- #preprocessed_word_or_original_word
250
+ # preprocessed_word_or_original_word
254
251
  describe '#preprocessed_word_or_original_word' do
255
252
  let(:original_word) { 'word' }
256
253
 
@@ -3,11 +3,11 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  RSpec.describe 'Workflow tests' do
6
+ subject { LittleWeasel::DictionaryManager.new }
7
+
6
8
  include_context 'dictionary cache'
7
9
  include_context 'dictionary keys'
8
10
 
9
- subject { LittleWeasel::DictionaryManager.new }
10
-
11
11
  # This loads the BIG en-US-big dictionary
12
12
  let(:en_us_dictionary_key) { dictionary_key_for(language: :en, region: :us, tag: :big) }
13
13
  let(:en_gb_dictionary_key) { dictionary_key_for(language: :en, region: :gb) }
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'pry-byebug'
2
4
  require 'simplecov'
3
5
 
@@ -5,7 +7,7 @@ SimpleCov.start do
5
7
  add_filter 'spec'
6
8
  end
7
9
 
8
- require File.expand_path(File.dirname(__FILE__) + '../../lib/LittleWeasel')
10
+ require File.expand_path("#{File.dirname(__FILE__)}../../lib/LittleWeasel")
9
11
  Dir[File.join('.', 'spec/support/**/*.rb')].each do |f|
10
12
  require f
11
13
  end
@@ -56,68 +58,66 @@ RSpec.configure do |config|
56
58
  # triggering implicit auto-inclusion in groups with matching metadata.
57
59
  config.shared_context_metadata_behavior = :apply_to_host_groups
58
60
 
59
- # The settings below are suggested to provide a good initial experience
60
- # with RSpec, but feel free to customize to your heart's content.
61
- =begin
62
- # This allows you to limit a spec run to individual examples or groups
63
- # you care about by tagging them with `:focus` metadata. When nothing
64
- # is tagged with `:focus`, all examples get run. RSpec also provides
65
- # aliases for `it`, `describe`, and `context` that include `:focus`
66
- # metadata: `fit`, `fdescribe` and `fcontext`, respectively.
67
- config.filter_run_when_matching :focus
68
-
69
- # Allows RSpec to persist some state between runs in order to support
70
- # the `--only-failures` and `--next-failure` CLI options. We recommend
71
- # you configure your source control system to ignore this file.
72
- config.example_status_persistence_file_path = "spec/examples.txt"
73
-
74
- # Limits the available syntax to the non-monkey patched syntax that is
75
- # recommended. For more details, see:
76
- # - http://rspec.info/blog/2012/06/rspecs-new-expectation-syntax/
77
- # - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
78
- # - http://rspec.info/blog/2014/05/notable-changes-in-rspec-3/#zero-monkey-patching-mode
79
- config.disable_monkey_patching!
80
-
81
- # This setting enables warnings. It's recommended, but in some cases may
82
- # be too noisy due to issues in dependencies.
83
- config.warnings = true
84
-
85
- # Many RSpec users commonly either run the entire suite or an individual
86
- # file, and it's useful to allow more verbose output when running an
87
- # individual spec file.
88
- if config.files_to_run.one?
89
- # Use the documentation formatter for detailed output,
90
- # unless a formatter has already been configured
91
- # (e.g. via a command-line flag).
92
- config.default_formatter = "doc"
93
- end
94
-
95
- # Print the 10 slowest examples and example groups at the
96
- # end of the spec run, to help surface which specs are running
97
- # particularly slow.
98
- config.profile_examples = 10
99
-
100
- # Run specs in random order to surface order dependencies. If you find an
101
- # order dependency and want to debug it, you can fix the order by providing
102
- # the seed, which is printed after each run.
103
- # --seed 1234
104
- config.order = :random
105
-
106
- # Seed global randomization in this process using the `--seed` CLI option.
107
- # Setting this allows you to use `--seed` to deterministically reproduce
108
- # test failures related to randomization by passing the same `--seed` value
109
- # as the one that triggered the failure.
110
- Kernel.srand config.seed
111
- =end
61
+ # The settings below are suggested to provide a good initial experience
62
+ # with RSpec, but feel free to customize to your heart's content.
63
+ # # This allows you to limit a spec run to individual examples or groups
64
+ # # you care about by tagging them with `:focus` metadata. When nothing
65
+ # # is tagged with `:focus`, all examples get run. RSpec also provides
66
+ # # aliases for `it`, `describe`, and `context` that include `:focus`
67
+ # # metadata: `fit`, `fdescribe` and `fcontext`, respectively.
68
+ # config.filter_run_when_matching :focus
69
+ #
70
+ # # Allows RSpec to persist some state between runs in order to support
71
+ # # the `--only-failures` and `--next-failure` CLI options. We recommend
72
+ # # you configure your source control system to ignore this file.
73
+ # config.example_status_persistence_file_path = "spec/examples.txt"
74
+ #
75
+ # # Limits the available syntax to the non-monkey patched syntax that is
76
+ # # recommended. For more details, see:
77
+ # # - http://rspec.info/blog/2012/06/rspecs-new-expectation-syntax/
78
+ # # - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
79
+ # # - http://rspec.info/blog/2014/05/notable-changes-in-rspec-3/#zero-monkey-patching-mode
80
+ # config.disable_monkey_patching!
81
+ #
82
+ # # This setting enables warnings. It's recommended, but in some cases may
83
+ # # be too noisy due to issues in dependencies.
84
+ # config.warnings = true
85
+ #
86
+ # # Many RSpec users commonly either run the entire suite or an individual
87
+ # # file, and it's useful to allow more verbose output when running an
88
+ # # individual spec file.
89
+ # if config.files_to_run.one?
90
+ # # Use the documentation formatter for detailed output,
91
+ # # unless a formatter has already been configured
92
+ # # (e.g. via a command-line flag).
93
+ # config.default_formatter = "doc"
94
+ # end
95
+ #
96
+ # # Print the 10 slowest examples and example groups at the
97
+ # # end of the spec run, to help surface which specs are running
98
+ # # particularly slow.
99
+ # config.profile_examples = 10
100
+ #
101
+ # # Run specs in random order to surface order dependencies. If you find an
102
+ # # order dependency and want to debug it, you can fix the order by providing
103
+ # # the seed, which is printed after each run.
104
+ # # --seed 1234
105
+ # config.order = :random
106
+ #
107
+ # # Seed global randomization in this process using the `--seed` CLI option.
108
+ # # Setting this allows you to use `--seed` to deterministically reproduce
109
+ # # test failures related to randomization by passing the same `--seed` value
110
+ # # as the one that triggered the failure.
111
+ # Kernel.srand config.seed
112
112
 
113
113
  # Enable both should and expect until the old specs are upgraded.
114
114
  config.expect_with :rspec do |c|
115
- c.syntax = %i[should, expect]
115
+ c.syntax = %i[should expect]
116
116
  end
117
117
 
118
118
  # Load support files
119
119
  config.include Support::FileHelpers
120
120
  config.include Support::GeneralHelpers
121
121
 
122
- config.before(:each) { LittleWeasel.configure { |config| config.reset } }
122
+ config.before { LittleWeasel.configure(&:reset) }
123
123
  end
@@ -3,7 +3,7 @@
3
3
  require 'factory_bot'
4
4
  require_relative 'file_helpers'
5
5
 
6
- FactoryBot::SyntaxRunner.send(:include, Support::FileHelpers)
6
+ FactoryBot::SyntaxRunner.include Support::FileHelpers
7
7
 
8
8
  RSpec.configure do |config|
9
9
  config.include FactoryBot::Syntax::Methods
@@ -12,4 +12,3 @@ RSpec.configure do |config|
12
12
  FactoryBot.find_definitions
13
13
  end
14
14
  end
15
-
@@ -23,12 +23,12 @@ module Support
23
23
  Locale.new(language: language, region: region).locale
24
24
  end
25
25
 
26
- def region_dictionary_path language:, region:
26
+ def region_dictionary_path(language:, region:)
27
27
  file_name = locale_for language: language, region: region
28
28
  dictionary_path_for file_name: file_name
29
29
  end
30
30
 
31
- def language_dictionary_path language:
31
+ def language_dictionary_path(language:)
32
32
  file_name = locale_for language: language
33
33
  dictionary_path_for file_name: file_name
34
34
  end
@@ -50,7 +50,7 @@ module Support
50
50
  puts "#{indent * 2}filter_match? #=> #{results.filter_match?}"
51
51
  puts "#{indent * 2}filters_matched: #=> #{results.filters_matched}"
52
52
  puts "#{indent * 2}preprocessed_words #=>"
53
- results.preprocessed_words&.preprocessed_words.each_with_index do |preprocessed_word, index|
53
+ results.preprocessed_words&.preprocessed_words&.each_with_index do |preprocessed_word, index|
54
54
  puts "#{indent * 3}preprocessed_words[#{index}] #=>"
55
55
  puts "#{indent * 4}preprocessed_word #=>"
56
56
  puts "#{indent * 5}preprocessor: :#{preprocessed_word.preprocessor}"
@@ -61,6 +61,7 @@ module Support
61
61
 
62
62
  def string_or_nil(value)
63
63
  return 'nil' if value.nil?
64
+
64
65
  "\"#{value}\""
65
66
  end
66
67
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec.shared_context 'dictionary cache' do
2
4
  def dictionary_cache_for(dictionary_key:, dictionary_file_source: true, load: false)
3
5
  dictionary_cache_from(dictionary_keys: [{ dictionary_key: dictionary_key, dictionary_file_source: dictionary_file_source, load: load }])
@@ -22,7 +24,9 @@ RSpec.shared_context 'dictionary cache' do
22
24
  dictionary_cache = {}
23
25
 
24
26
  dictionary_keys.each do |hash|
25
- raise ArgumentError, "Expected required Hash key :dictionary_key but it was not found" unless hash.key? :dictionary_key
27
+ unless hash.key? :dictionary_key
28
+ raise ArgumentError, 'Expected required Hash key :dictionary_key but it was not found'
29
+ end
26
30
 
27
31
  create(:dictionary_cache_service,
28
32
  dictionary_cache: dictionary_cache,
@@ -38,32 +42,32 @@ end
38
42
 
39
43
  RSpec.shared_context 'dictionary keys' do
40
44
  def dictionary_key_for(language:, region: nil, tag: nil)
41
- create(:dictionary_key, language: language, region: region, tag: tag)
45
+ create(:dictionary_key, language: language, region: region, tag: tag)
42
46
  end
43
47
  end
44
48
 
45
49
  RSpec.shared_context 'mock word filters' do
46
- unless Object.const_defined?('WordFilter01')
50
+ unless Object.const_defined?(:WordFilter01)
47
51
  class WordFilter01 < LittleWeasel::Filters::WordFilter
48
52
  class << self
49
- def filter_match?(word)
53
+ def filter_match?(_word)
50
54
  true
51
55
  end
52
56
  end
53
57
  end
54
58
  end
55
59
 
56
- unless Object.const_defined?('WordFilter02')
60
+ unless Object.const_defined?(:WordFilter02)
57
61
  class WordFilter02 < LittleWeasel::Filters::WordFilter
58
62
  class << self
59
- def filter_match?(word)
63
+ def filter_match?(_word)
60
64
  true
61
65
  end
62
66
  end
63
67
  end
64
68
  end
65
69
 
66
- unless Object.const_defined?('DollarSignFilter')
70
+ unless Object.const_defined?(:DollarSignFilter)
67
71
  class DollarSignFilter < LittleWeasel::Filters::WordFilter
68
72
  class << self
69
73
  def filter_match?(word)
@@ -78,7 +82,7 @@ RSpec.shared_context 'mock word preprocessors' do
78
82
  class UpcaseWordPreprocessor < LittleWeasel::Preprocessors::WordPreprocessor
79
83
  class << self
80
84
  def preprocess(word)
81
- [true, word.upcase];
85
+ [true, word.upcase]
82
86
  end
83
87
  end
84
88
  end
@@ -86,7 +90,7 @@ RSpec.shared_context 'mock word preprocessors' do
86
90
  class DowncaseWordPreprocessor < LittleWeasel::Preprocessors::WordPreprocessor
87
91
  class << self
88
92
  def preprocess(word)
89
- [true, word.downcase];
93
+ [true, word.downcase]
90
94
  end
91
95
  end
92
96
  end