LittleWeasel 5.0.10 → 5.0.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ed8ab6b42033fadcc7cc14fe6cf270831cc07a4d619d3c726ba2a37220e68f91
4
- data.tar.gz: 560d08ec9a9221fece78a957b7b8abe42d8d0c1fdbee87547eb9b85788850968
3
+ metadata.gz: 482215cb6c09deff74d3d4ec5c04cbf2f2b28638be7a9c7e4db54bd08b4e044f
4
+ data.tar.gz: 61e36d7c84d0bf524340c5354dea6e5531d06d712f9e784ffa74394a18afe695
5
5
  SHA512:
6
- metadata.gz: fca98f865141c33efe43435cff387263c506db30c33992c335542afa11a0d599d8f2594135c7b543f33dcfff94b08b0d6f9c87689f2b8738aa0493d92e1529c8
7
- data.tar.gz: ae65613cffe2b137cef35ff857ccacbe4cfe6c2013ac3eb275ad1e8eba4197b2e7d9458c9c524dd072a4e906b174237d1e28c8e6d26a3e7bc44263f43324bb7d
6
+ metadata.gz: 59f4fc68c4b6590cb71302ad2a7512bb6160225d962bcd4b337571112aa576c72b15f3841b13e9ecfc67bc104c81869dced42765667e0cedb5fb051467da72f5
7
+ data.tar.gz: 876cac504cde595a3dbf3d8da467cd9d608f1bf28766c8c96230e2d057c19d7426386ed0c4e666c25c2d0bfc943784b234a1f16250b7626879a66c4a3d1b8130
data/.rubocop.yml CHANGED
@@ -3,6 +3,7 @@ require:
3
3
  - rubocop-rspec
4
4
 
5
5
  AllCops:
6
+ SuggestExtensions: false
6
7
  TargetRubyVersion: 3.0.1
7
8
  NewCops: enable
8
9
  Exclude:
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ### 5.0.11 2024-02-18
2
+
3
+ * Changes
4
+ * Update gems.
5
+
1
6
  ### 5.0.10 2024-01-07
2
7
 
3
8
  * Changes
data/Gemfile CHANGED
@@ -5,18 +5,28 @@ source 'https://rubygems.org'
5
5
  # Specify your gem's dependencies in LittleWeasel.gemspec
6
6
  gemspec
7
7
 
8
- gem 'benchmark-ips', '>= 2.3', '< 3.0'
8
+ group :development, :test do
9
+ gem 'factory_bot', '>= 6.3', '< 7.0'
10
+ gem 'pry-byebug', '>= 3.9', '< 4.0'
11
+ gem 'reek', '>= 6.0', '< 7.0'
12
+ gem 'rspec', '>= 3.12', '< 4.0'
13
+ gem 'rubocop', '>= 1.56', '< 2.0'
14
+ gem 'rubocop-performance', '>= 1.19', '< 2.0'
15
+ gem 'rubocop-rspec', '>= 2.23', '< 3.0'
16
+ gem 'simplecov', '>= 0.22.0', '< 1.0'
17
+ end
18
+
19
+ group :benchmarking do
20
+ gem 'benchmark-ips', '>= 2.3', '< 3.0'
21
+ end
22
+
23
+ group :documentation do
24
+ # Needed for yard
25
+ gem 'webrick', '>= 1.7', '< 2.0'
26
+ gem 'yard', '>= 0.9.26', '< 1.0'
27
+ end
28
+
29
+ # Global gems, commonly used in development but not necessarily tied to a specific task
9
30
  gem 'bundler', '~> 2.5', '>= 2.5.3'
10
- gem 'factory_bot', '>= 6.3', '< 7.0'
11
- gem 'pry-byebug', '>= 3.9', '< 4.0'
12
31
  gem 'rake', '>= 13.0', '< 14'
13
32
  gem 'redcarpet', '>= 3.5', '< 4.0'
14
- gem 'reek', '>= 6.0', '< 7.0'
15
- gem 'rspec', '>= 3.12', '< 4.0'
16
- gem 'rubocop', '>= 1.56', '< 2.0'
17
- gem 'rubocop-performance', '>= 1.19', '< 2.0'
18
- gem 'rubocop-rspec', '>= 2.23', '< 3.0'
19
- gem 'simplecov', '>= 0.22.0', '< 1.0'
20
- # Needed for yard
21
- gem 'webrick', '>= 1.7', '< 2.0'
22
- gem 'yard', '>= 0.9.26', '< 1.0'
data/Gemfile.lock CHANGED
@@ -1,13 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- LittleWeasel (5.0.10)
4
+ LittleWeasel (5.0.11)
5
5
  activesupport (>= 7.0.8, < 8.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- activesupport (7.1.2)
10
+ activesupport (7.1.3)
11
11
  base64
12
12
  bigdecimal
13
13
  concurrent-ruby (~> 1.0, >= 1.0.2)
@@ -20,12 +20,12 @@ GEM
20
20
  ast (2.4.2)
21
21
  base64 (0.2.0)
22
22
  benchmark-ips (2.13.0)
23
- bigdecimal (3.1.5)
23
+ bigdecimal (3.1.6)
24
24
  byebug (11.1.3)
25
25
  coderay (1.1.3)
26
- concurrent-ruby (1.2.2)
26
+ concurrent-ruby (1.2.3)
27
27
  connection_pool (2.4.1)
28
- diff-lcs (1.5.0)
28
+ diff-lcs (1.5.1)
29
29
  docile (1.4.0)
30
30
  drb (2.2.0)
31
31
  ruby2_keywords
@@ -56,17 +56,17 @@ GEM
56
56
  dry-inflector (~> 1.0)
57
57
  dry-logic (~> 1.4)
58
58
  zeitwerk (~> 2.6)
59
- factory_bot (6.4.5)
59
+ factory_bot (6.4.6)
60
60
  activesupport (>= 5.0.0)
61
61
  i18n (1.14.1)
62
62
  concurrent-ruby (~> 1.0)
63
63
  json (2.7.1)
64
64
  language_server-protocol (3.17.0.3)
65
65
  method_source (1.0.0)
66
- minitest (5.20.0)
66
+ minitest (5.22.2)
67
67
  mutex_m (0.2.0)
68
68
  parallel (1.24.0)
69
- parser (3.2.2.4)
69
+ parser (3.3.0.5)
70
70
  ast (~> 2.4.1)
71
71
  racc
72
72
  pry (0.14.2)
@@ -79,31 +79,31 @@ GEM
79
79
  rainbow (3.1.1)
80
80
  rake (13.1.0)
81
81
  redcarpet (3.6.0)
82
- reek (6.2.0)
82
+ reek (6.3.0)
83
83
  dry-schema (~> 1.13.0)
84
- parser (~> 3.2.0)
84
+ parser (~> 3.3.0)
85
85
  rainbow (>= 2.0, < 4.0)
86
86
  rexml (~> 3.1)
87
- regexp_parser (2.8.3)
87
+ regexp_parser (2.9.0)
88
88
  rexml (3.2.6)
89
- rspec (3.12.0)
90
- rspec-core (~> 3.12.0)
91
- rspec-expectations (~> 3.12.0)
92
- rspec-mocks (~> 3.12.0)
93
- rspec-core (3.12.2)
94
- rspec-support (~> 3.12.0)
95
- rspec-expectations (3.12.3)
89
+ rspec (3.13.0)
90
+ rspec-core (~> 3.13.0)
91
+ rspec-expectations (~> 3.13.0)
92
+ rspec-mocks (~> 3.13.0)
93
+ rspec-core (3.13.0)
94
+ rspec-support (~> 3.13.0)
95
+ rspec-expectations (3.13.0)
96
96
  diff-lcs (>= 1.2.0, < 2.0)
97
- rspec-support (~> 3.12.0)
98
- rspec-mocks (3.12.6)
97
+ rspec-support (~> 3.13.0)
98
+ rspec-mocks (3.13.0)
99
99
  diff-lcs (>= 1.2.0, < 2.0)
100
- rspec-support (~> 3.12.0)
101
- rspec-support (3.12.1)
102
- rubocop (1.59.0)
100
+ rspec-support (~> 3.13.0)
101
+ rspec-support (3.13.0)
102
+ rubocop (1.60.2)
103
103
  json (~> 2.3)
104
104
  language_server-protocol (>= 3.17.0)
105
105
  parallel (~> 1.10)
106
- parser (>= 3.2.2.4)
106
+ parser (>= 3.3.0.2)
107
107
  rainbow (>= 2.2.2, < 4.0)
108
108
  regexp_parser (>= 1.8, < 3.0)
109
109
  rexml (>= 3.2.5, < 4.0)
@@ -114,9 +114,9 @@ GEM
114
114
  parser (>= 3.2.1.0)
115
115
  rubocop-capybara (2.20.0)
116
116
  rubocop (~> 1.41)
117
- rubocop-factory_bot (2.25.0)
118
- rubocop (~> 1.33)
119
- rubocop-performance (1.20.1)
117
+ rubocop-factory_bot (2.25.1)
118
+ rubocop (~> 1.41)
119
+ rubocop-performance (1.20.2)
120
120
  rubocop (>= 1.48.1, < 2.0)
121
121
  rubocop-ast (>= 1.30.0, < 2.0)
122
122
  rubocop-rspec (2.26.1)
@@ -136,7 +136,7 @@ GEM
136
136
  unicode-display_width (2.5.0)
137
137
  webrick (1.8.1)
138
138
  yard (0.9.34)
139
- zeitwerk (2.6.12)
139
+ zeitwerk (2.6.13)
140
140
 
141
141
  PLATFORMS
142
142
  ruby
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  [![Ruby](https://github.com/gangelo/LittleWeasel/actions/workflows/ruby.yml/badge.svg)](https://github.com/gangelo/LittleWeasel/actions/workflows/ruby.yml)
2
- [![GitHub version](http://badge.fury.io/gh/gangelo%2FLittleWeasel.svg?version=1)](https://badge.fury.io/gh/gangelo%2FLittleWeasel)
3
- [![Gem Version](https://badge.fury.io/rb/LittleWeasel.svg?version=1)](https://badge.fury.io/rb/LittleWeasel)
2
+ [![GitHub version](http://badge.fury.io/gh/gangelo%2FLittleWeasel.svg?version=2)](https://badge.fury.io/gh/gangelo%2FLittleWeasel)
3
+ [![Gem Version](https://badge.fury.io/rb/LittleWeasel.svg?version=2)](https://badge.fury.io/rb/LittleWeasel)
4
4
  [![](http://ruby-gem-downloads-badge.herokuapp.com/LittleWeasel?type=total)](http://www.rubydoc.info/gems/LittleWeasel/)
5
5
  [![Documentation](http://img.shields.io/badge/docs-rdoc.info-blue.svg)](http://www.rubydoc.info/gems/LittleWeasel/)
6
6
  [![Report Issues](https://img.shields.io/badge/report-issues-red.svg)](https://github.com/gangelo/LittleWeasel/issues)
data/Rakefile CHANGED
@@ -1,10 +1,11 @@
1
- # frozen_string_literal: true
1
+ # frozen_string_literal: false
2
2
 
3
3
  require 'active_support/core_ext/object/try.rb'
4
4
  require 'active_support/inflector'
5
5
  require 'benchmark/ips'
6
6
  require 'bundler/gem_tasks'
7
7
  require 'pry'
8
+ require 'rubocop/rake_task'
8
9
 
9
10
  require_relative 'lib/LittleWeasel'
10
11
  require_relative 'spec/support/file_helpers'
@@ -30,7 +31,7 @@ end
30
31
  # Tasks related to the #word_results API
31
32
 
32
33
  namespace 'word_results' do
33
- # Creates a dictionary from a file on disk
34
+ desc 'Creates a dictionary from a file on disk - perform basic word search results operations'
34
35
  task :basic do
35
36
  LittleWeasel.configure do |config|
36
37
  # TODO: Configure as needed here.
@@ -67,7 +68,7 @@ namespace 'word_results' do
67
68
  end
68
69
  end
69
70
 
70
- # Creates a dictionary of names from memory
71
+ desc 'Creates a dictionary from memory - perform basic word search results operations'
71
72
  task :from_memory do
72
73
  LittleWeasel.configure do |config|
73
74
  # TODO: Configure as needed here.
@@ -101,7 +102,7 @@ namespace 'word_results' do
101
102
  end
102
103
  end
103
104
 
104
- # Shows application of word filters and word preprocessors.
105
+ desc 'Creates a dictionary from memory - perform advanced word search results operations using word filters and preprocessors'
105
106
  task :advanced do
106
107
  LittleWeasel.configure do |config|
107
108
  # TODO: Configure as needed here.
@@ -175,6 +176,7 @@ namespace 'word_results' do
175
176
  end
176
177
  end
177
178
 
179
+ desc 'Creates a dictionary from memory - perform advanced word search results operations using word filters and preprocessors'
178
180
  task :word_filters do
179
181
  LittleWeasel.configure do |config|
180
182
  # TODO: Configure as needed here.
@@ -217,6 +219,7 @@ end
217
219
  # Tasks related to the #block_results API
218
220
 
219
221
  namespace 'block_results' do
222
+ desc 'Perform basic #block_results API operations'
220
223
  task :basic do
221
224
  LittleWeasel.configure do |config|
222
225
  # TODO: Configure as needed here.
@@ -253,32 +256,17 @@ namespace 'block_results' do
253
256
  end
254
257
 
255
258
  namespace :bm do
259
+ desc 'Performs benchmarking on Hash lookups performance.'
256
260
  task :hash do
257
261
  STRING_LOCALE = { 'en-US' => 'en-us' }
258
- SYMBOL_LOCALE = { 'en-US' => :enUS }
262
+ SYMBOL_LOCALE = { enUS: 'en-US' }
259
263
 
260
- puts 'String variable vs. normal String.'
264
+ puts "Benchmark Hash lookups using different Hash key data types."
261
265
  Benchmark.ips do |x|
262
- string_variable = 'string_variable'
266
+ string_variable = 'en-US'
267
+ x.report('hard-coded string') { STRING_LOCALE['en-US'] }
268
+ x.report('hard-coded frozen string') { STRING_LOCALE['en-US'.freeze] }
263
269
  x.report('string variable') { STRING_LOCALE[string_variable] }
264
- x.report('normal') { STRING_LOCALE['en-US'] }
265
- end
266
-
267
- puts 'String#freeze vs. normal String.'
268
- Benchmark.ips do |x|
269
- x.report('freeze') { STRING_LOCALE['en-US'.freeze] }
270
- x.report('normal') { STRING_LOCALE['en-US'] }
271
- end
272
-
273
- puts 'String vs Symbol'
274
- Benchmark.ips do |x|
275
- x.report('string') { STRING_LOCALE['en-US'] }
276
- x.report('symbol') { SYMBOL_LOCALE[:enUS] }
277
- end
278
-
279
- puts 'String#freeze vs. Symbol'
280
- Benchmark.ips do |x|
281
- x.report('string') { STRING_LOCALE['en-US'.freeze] }
282
270
  x.report('symbol') { SYMBOL_LOCALE[:enUS] }
283
271
  end
284
272
  rescue StandardError => e
@@ -288,6 +276,7 @@ namespace :bm do
288
276
  end
289
277
  end
290
278
 
279
+ desc 'Performs benchmarking on the DictionaryKey class.'
291
280
  task :dictionary_key do
292
281
  puts 'DictionaryKey test'
293
282
  Benchmark.ips do |x|
@@ -303,4 +292,9 @@ namespace :bm do
303
292
  end
304
293
  end
305
294
 
306
- task default: :spec
295
+
296
+ desc 'Run LittleWeasel benchmark tests.'
297
+ task benchmarking: %w[bm:hash bm:dictionary_key]
298
+
299
+ RuboCop::RakeTask.new
300
+ task default: %i[spec rubocop]
@@ -21,7 +21,7 @@ module LittleWeasel
21
21
 
22
22
  attr_reader :dictionary_metadata_object, :dictionary_words
23
23
 
24
- def initialize(dictionary_key:, dictionary_words:, dictionary_cache:,
24
+ def initialize(dictionary_key:, dictionary_words:, dictionary_cache:, # rubocop:disable Metrics/ParameterLists
25
25
  dictionary_metadata:, word_filters: nil, word_preprocessors: nil)
26
26
  validate_dictionary_key dictionary_key: dictionary_key
27
27
  self.dictionary_key = dictionary_key
@@ -2,5 +2,5 @@
2
2
 
3
3
  # The version of this gem
4
4
  module LittleWeasel
5
- VERSION = '5.0.10'
5
+ VERSION = '5.0.11'
6
6
  end
data/lib/LittleWeasel.rb CHANGED
@@ -1,72 +1,11 @@
1
+ # rubocop:disable Naming/FileName
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require 'active_support/core_ext/object/blank'
4
5
 
5
- require_relative 'LittleWeasel/block_results'
6
- require_relative 'LittleWeasel/configure'
7
- require_relative 'LittleWeasel/dictionary'
8
- require_relative 'LittleWeasel/dictionary_key'
9
- require_relative 'LittleWeasel/dictionary_manager'
10
- require_relative 'LittleWeasel/errors/dictionary_file_already_loaded_error'
11
- require_relative 'LittleWeasel/errors/dictionary_file_empty_error'
12
- require_relative 'LittleWeasel/errors/dictionary_file_not_found_error'
13
- require_relative 'LittleWeasel/errors/dictionary_file_too_large_error'
14
- require_relative 'LittleWeasel/errors/language_required_error'
15
- require_relative 'LittleWeasel/errors/must_override_error'
16
- require_relative 'LittleWeasel/filters/en_us/currency_filter'
17
- require_relative 'LittleWeasel/filters/en_us/numeric_filter'
18
- require_relative 'LittleWeasel/filters/en_us/single_character_word_filter'
19
- require_relative 'LittleWeasel/filters/word_filter'
20
- require_relative 'LittleWeasel/filters/word_filter_managable'
21
- require_relative 'LittleWeasel/filters/word_filter_validatable'
22
- require_relative 'LittleWeasel/filters/word_filterable'
23
- require_relative 'LittleWeasel/filters/word_filters_validatable'
24
- require_relative 'LittleWeasel/metadata/dictionary_metadata'
25
- require_relative 'LittleWeasel/metadata/invalid_words_metadata'
26
- require_relative 'LittleWeasel/metadata/invalid_words_service_results'
27
- require_relative 'LittleWeasel/metadata/metadata_observable_validatable'
28
- require_relative 'LittleWeasel/metadata/metadata_observerable'
29
- require_relative 'LittleWeasel/metadata/metadatable'
30
- require_relative 'LittleWeasel/modules/class_name_to_symbol'
31
- require_relative 'LittleWeasel/modules/configurable'
32
- require_relative 'LittleWeasel/modules/deep_dup'
33
- require_relative 'LittleWeasel/modules/dictionary_cache_keys'
34
- require_relative 'LittleWeasel/modules/dictionary_cache_servicable'
35
- require_relative 'LittleWeasel/modules/dictionary_cache_validatable'
36
- require_relative 'LittleWeasel/modules/dictionary_creator_servicable'
37
- require_relative 'LittleWeasel/modules/dictionary_file_loader'
38
- require_relative 'LittleWeasel/modules/dictionary_key_validatable'
39
- require_relative 'LittleWeasel/modules/dictionary_keyable'
40
- require_relative 'LittleWeasel/modules/dictionary_metadata_servicable'
41
- require_relative 'LittleWeasel/modules/dictionary_metadata_validatable'
42
- require_relative 'LittleWeasel/modules/dictionary_source_validatable'
43
- require_relative 'LittleWeasel/modules/dictionary_sourceable'
44
- require_relative 'LittleWeasel/modules/dictionary_validatable'
45
- require_relative 'LittleWeasel/modules/language'
46
- require_relative 'LittleWeasel/modules/language_validatable'
47
- require_relative 'LittleWeasel/modules/locale'
48
- require_relative 'LittleWeasel/modules/order_validatable'
49
- require_relative 'LittleWeasel/modules/orderable'
50
- require_relative 'LittleWeasel/modules/region'
51
- require_relative 'LittleWeasel/modules/region_validatable'
52
- require_relative 'LittleWeasel/modules/tag_validatable'
53
- require_relative 'LittleWeasel/modules/taggable'
54
- require_relative 'LittleWeasel/modules/word_results_validatable'
55
- require_relative 'LittleWeasel/preprocessors/en_us/capitalize_preprocessor'
56
- require_relative 'LittleWeasel/preprocessors/preprocessed_word'
57
- require_relative 'LittleWeasel/preprocessors/preprocessed_word_validatable'
58
- require_relative 'LittleWeasel/preprocessors/preprocessed_words'
59
- require_relative 'LittleWeasel/preprocessors/preprocessed_words_validatable'
60
- require_relative 'LittleWeasel/preprocessors/word_preprocessable'
61
- require_relative 'LittleWeasel/preprocessors/word_preprocessor'
62
- require_relative 'LittleWeasel/preprocessors/word_preprocessor_managable'
63
- require_relative 'LittleWeasel/preprocessors/word_preprocessor_validatable'
64
- require_relative 'LittleWeasel/preprocessors/word_preprocessors_validatable'
65
- require_relative 'LittleWeasel/services/dictionary_cache_service'
66
- require_relative 'LittleWeasel/services/dictionary_creator_service'
67
- require_relative 'LittleWeasel/services/dictionary_file_loader_service'
68
- require_relative 'LittleWeasel/services/dictionary_killer_service'
69
- require_relative 'LittleWeasel/services/dictionary_metadata_service'
70
- require_relative 'LittleWeasel/services/invalid_words_service'
71
- require_relative 'LittleWeasel/version'
72
- require_relative 'LittleWeasel/word_results'
6
+ Dir.glob(File.join(__dir__, 'LittleWeasel', '**', '*.rb')).each do |file|
7
+ # Require the file relative to this file's directory
8
+ require_relative file.sub(File.join(__dir__, '/'), '')
9
+ end
10
+
11
+ # rubocop:enable Naming/FileName
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: LittleWeasel
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.10
4
+ version: 5.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gene M. Angelo, Jr.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-07 00:00:00.000000000 Z
11
+ date: 2024-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport