LittleWeasel 3.0.3 → 5.0.0

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 (151) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +3 -0
  3. data/.reek.yml +17 -0
  4. data/.rspec +4 -2
  5. data/.rubocop.yml +187 -0
  6. data/.ruby-version +1 -1
  7. data/.yardopts +2 -0
  8. data/CHANGELOG.md +22 -1
  9. data/Gemfile +3 -1
  10. data/Jenkinsfile +20 -0
  11. data/LittleWeasel.gemspec +31 -18
  12. data/README.md +408 -42
  13. data/Rakefile +296 -3
  14. data/lib/LittleWeasel/block_results.rb +81 -0
  15. data/lib/LittleWeasel/configure.rb +98 -0
  16. data/lib/LittleWeasel/dictionary.rb +125 -0
  17. data/lib/LittleWeasel/dictionary_key.rb +48 -0
  18. data/lib/LittleWeasel/dictionary_manager.rb +91 -0
  19. data/lib/LittleWeasel/errors/dictionary_file_already_loaded_error.rb +9 -0
  20. data/lib/LittleWeasel/errors/dictionary_file_empty_error.rb +8 -0
  21. data/lib/LittleWeasel/errors/dictionary_file_not_found_error.rb +8 -0
  22. data/lib/LittleWeasel/errors/dictionary_file_too_large_error.rb +16 -0
  23. data/lib/LittleWeasel/errors/language_required_error.rb +8 -0
  24. data/lib/LittleWeasel/errors/must_override_error.rb +8 -0
  25. data/lib/LittleWeasel/filters/en_us/currency_filter.rb +19 -0
  26. data/lib/LittleWeasel/filters/en_us/numeric_filter.rb +19 -0
  27. data/lib/LittleWeasel/filters/en_us/single_character_word_filter.rb +21 -0
  28. data/lib/LittleWeasel/filters/word_filter.rb +59 -0
  29. data/lib/LittleWeasel/filters/word_filter_managable.rb +80 -0
  30. data/lib/LittleWeasel/filters/word_filter_validatable.rb +31 -0
  31. data/lib/LittleWeasel/filters/word_filterable.rb +19 -0
  32. data/lib/LittleWeasel/filters/word_filters_validatable.rb +29 -0
  33. data/lib/LittleWeasel/metadata/dictionary_metadata.rb +145 -0
  34. data/lib/LittleWeasel/metadata/invalid_words_metadata.rb +134 -0
  35. data/lib/LittleWeasel/metadata/invalid_words_service_results.rb +45 -0
  36. data/lib/LittleWeasel/metadata/metadata_observable_validatable.rb +22 -0
  37. data/lib/LittleWeasel/metadata/metadata_observerable.rb +90 -0
  38. data/lib/LittleWeasel/metadata/metadatable.rb +134 -0
  39. data/lib/LittleWeasel/modules/class_name_to_symbol.rb +26 -0
  40. data/lib/LittleWeasel/modules/configurable.rb +26 -0
  41. data/lib/LittleWeasel/modules/deep_dup.rb +11 -0
  42. data/lib/LittleWeasel/modules/dictionary_cache_keys.rb +34 -0
  43. data/lib/LittleWeasel/modules/dictionary_cache_servicable.rb +26 -0
  44. data/lib/LittleWeasel/modules/dictionary_cache_validatable.rb +18 -0
  45. data/lib/LittleWeasel/modules/dictionary_creator_servicable.rb +27 -0
  46. data/lib/LittleWeasel/modules/dictionary_file_loader.rb +67 -0
  47. data/lib/LittleWeasel/modules/dictionary_key_validatable.rb +17 -0
  48. data/lib/LittleWeasel/modules/dictionary_keyable.rb +24 -0
  49. data/lib/LittleWeasel/modules/dictionary_metadata_servicable.rb +29 -0
  50. data/lib/LittleWeasel/modules/dictionary_metadata_validatable.rb +15 -0
  51. data/lib/LittleWeasel/modules/dictionary_source_validatable.rb +15 -0
  52. data/lib/LittleWeasel/modules/dictionary_sourceable.rb +86 -0
  53. data/lib/LittleWeasel/modules/dictionary_validatable.rb +18 -0
  54. data/lib/LittleWeasel/modules/language.rb +24 -0
  55. data/lib/LittleWeasel/modules/language_validatable.rb +14 -0
  56. data/lib/LittleWeasel/modules/locale.rb +23 -0
  57. data/lib/LittleWeasel/modules/order_validatable.rb +16 -0
  58. data/lib/LittleWeasel/modules/orderable.rb +17 -0
  59. data/lib/LittleWeasel/modules/region.rb +24 -0
  60. data/lib/LittleWeasel/modules/region_validatable.rb +14 -0
  61. data/lib/LittleWeasel/modules/tag_validatable.rb +14 -0
  62. data/lib/LittleWeasel/modules/taggable.rb +31 -0
  63. data/lib/LittleWeasel/modules/word_results_validatable.rb +28 -0
  64. data/lib/LittleWeasel/preprocessors/en_us/capitalize_preprocessor.rb +22 -0
  65. data/lib/LittleWeasel/preprocessors/preprocessed_word.rb +29 -0
  66. data/lib/LittleWeasel/preprocessors/preprocessed_word_validatable.rb +56 -0
  67. data/lib/LittleWeasel/preprocessors/preprocessed_words.rb +59 -0
  68. data/lib/LittleWeasel/preprocessors/preprocessed_words_validatable.rb +28 -0
  69. data/lib/LittleWeasel/preprocessors/word_preprocessable.rb +19 -0
  70. data/lib/LittleWeasel/preprocessors/word_preprocessor.rb +123 -0
  71. data/lib/LittleWeasel/preprocessors/word_preprocessor_managable.rb +114 -0
  72. data/lib/LittleWeasel/preprocessors/word_preprocessor_validatable.rb +40 -0
  73. data/lib/LittleWeasel/preprocessors/word_preprocessors_validatable.rb +24 -0
  74. data/lib/LittleWeasel/services/dictionary_cache_service.rb +211 -0
  75. data/lib/LittleWeasel/services/dictionary_creator_service.rb +94 -0
  76. data/lib/LittleWeasel/services/dictionary_file_loader_service.rb +37 -0
  77. data/lib/LittleWeasel/services/dictionary_killer_service.rb +35 -0
  78. data/lib/LittleWeasel/services/dictionary_metadata_service.rb +116 -0
  79. data/lib/LittleWeasel/services/invalid_words_service.rb +59 -0
  80. data/lib/LittleWeasel/version.rb +3 -1
  81. data/lib/LittleWeasel/word_results.rb +146 -0
  82. data/lib/LittleWeasel.rb +5 -184
  83. data/spec/factories/dictionary.rb +43 -0
  84. data/spec/factories/dictionary_cache_service.rb +95 -0
  85. data/spec/factories/dictionary_creator_service.rb +16 -0
  86. data/spec/factories/dictionary_file_loader_service.rb +13 -0
  87. data/spec/factories/dictionary_hash.rb +39 -0
  88. data/spec/factories/dictionary_key.rb +14 -0
  89. data/spec/factories/dictionary_killer_service.rb +14 -0
  90. data/spec/factories/dictionary_manager.rb +10 -0
  91. data/spec/factories/dictionary_metadata.rb +16 -0
  92. data/spec/factories/dictionary_metadata_service.rb +16 -0
  93. data/spec/factories/numeric_filter.rb +12 -0
  94. data/spec/factories/preprocessed_word.rb +16 -0
  95. data/spec/factories/preprocessed_words.rb +41 -0
  96. data/spec/factories/single_character_word_filter.rb +12 -0
  97. data/spec/factories/word_results.rb +16 -0
  98. data/spec/lib/LittleWeasel/block_results_spec.rb +248 -0
  99. data/spec/lib/LittleWeasel/configure_spec.rb +74 -0
  100. data/spec/lib/LittleWeasel/dictionary_key_spec.rb +118 -0
  101. data/spec/lib/LittleWeasel/dictionary_manager_spec.rb +166 -0
  102. data/spec/lib/LittleWeasel/dictionary_spec.rb +289 -0
  103. data/spec/lib/LittleWeasel/filters/en_us/currency_filter_spec.rb +80 -0
  104. data/spec/lib/LittleWeasel/filters/en_us/numeric_filter_spec.rb +66 -0
  105. data/spec/lib/LittleWeasel/filters/en_us/single_character_word_filter_spec.rb +58 -0
  106. data/spec/lib/LittleWeasel/filters/word_filter_managable_spec.rb +180 -0
  107. data/spec/lib/LittleWeasel/filters/word_filter_spec.rb +151 -0
  108. data/spec/lib/LittleWeasel/filters/word_filter_validatable_spec.rb +94 -0
  109. data/spec/lib/LittleWeasel/filters/word_filters_validatable_spec.rb +48 -0
  110. data/spec/lib/LittleWeasel/integraton_tests/dictionary_integration_spec.rb +201 -0
  111. data/spec/lib/LittleWeasel/metadata/dictionary_creator_servicable_spec.rb +54 -0
  112. data/spec/lib/LittleWeasel/metadata/dictionary_metadata_spec.rb +209 -0
  113. data/spec/lib/LittleWeasel/metadata/invalid_words_metadata_spec.rb +155 -0
  114. data/spec/lib/LittleWeasel/metadata/metadata_observerable_spec.rb +31 -0
  115. data/spec/lib/LittleWeasel/metadata/metadatable_spec.rb +35 -0
  116. data/spec/lib/LittleWeasel/modules/class_name_to_symbol_spec.rb +21 -0
  117. data/spec/lib/LittleWeasel/modules/dictionary_file_loader_spec.rb +125 -0
  118. data/spec/lib/LittleWeasel/modules/dictionary_sourceable_spec.rb +81 -0
  119. data/spec/lib/LittleWeasel/modules/language_spec.rb +112 -0
  120. data/spec/lib/LittleWeasel/modules/locale_spec.rb +95 -0
  121. data/spec/lib/LittleWeasel/modules/region_spec.rb +112 -0
  122. data/spec/lib/LittleWeasel/preprocessors/en_us/capitalize_preprocessor_spec.rb +34 -0
  123. data/spec/lib/LittleWeasel/preprocessors/preprocessed_word_spec.rb +105 -0
  124. data/spec/lib/LittleWeasel/preprocessors/preprocessed_word_validatable_spec.rb +143 -0
  125. data/spec/lib/LittleWeasel/preprocessors/preprocessed_words_spec.rb +77 -0
  126. data/spec/lib/LittleWeasel/preprocessors/preprocessed_words_validatable_spec.rb +58 -0
  127. data/spec/lib/LittleWeasel/preprocessors/word_preprocessor_managable_spec.rb +242 -0
  128. data/spec/lib/LittleWeasel/preprocessors/word_preprocessor_spec.rb +218 -0
  129. data/spec/lib/LittleWeasel/preprocessors/word_preprocessor_validatable_spec.rb +109 -0
  130. data/spec/lib/LittleWeasel/preprocessors/word_preprocessors_validatable_spec.rb +49 -0
  131. data/spec/lib/LittleWeasel/services/dictionary_cache_service_spec.rb +444 -0
  132. data/spec/lib/LittleWeasel/services/dictionary_creator_service_spec.rb +119 -0
  133. data/spec/lib/LittleWeasel/services/dictionary_file_loader_service_spec.rb +71 -0
  134. data/spec/lib/LittleWeasel/services/dictionary_metadata_service_spec.rb +279 -0
  135. data/spec/lib/LittleWeasel/word_results_spec.rb +275 -0
  136. data/spec/lib/LittleWeasel/workflow/workflow_spec.rb +20 -0
  137. data/spec/spec_helper.rb +117 -6
  138. data/spec/support/factory_bot.rb +15 -0
  139. data/spec/support/file_helpers.rb +46 -0
  140. data/spec/support/files/empty-dictionary.txt +0 -0
  141. data/{lib/dictionary → spec/support/files/en-US-big.txt} +262156 -31488
  142. data/spec/support/files/en-US-tagged.txt +26 -0
  143. data/spec/support/files/en-US.txt +26 -0
  144. data/spec/support/files/en.txt +26 -0
  145. data/spec/support/files/es-ES.txt +27 -0
  146. data/spec/support/files/es.txt +27 -0
  147. data/spec/support/general_helpers.rb +68 -0
  148. data/spec/support/shared_contexts.rb +107 -0
  149. data/spec/support/shared_examples.rb +105 -0
  150. metadata +378 -38
  151. data/spec/checker/checker_spec.rb +0 -286
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 8077ebd3ea097532c9ca167b79b3195903a4ff1c
4
- data.tar.gz: b7ff804920931aff1c2567ae0c056fdfc8768026
2
+ SHA256:
3
+ metadata.gz: 96add6e70ce7b0619c3223931123d2ed9b438f7f294a2903053d2ba4a784af4b
4
+ data.tar.gz: bfe662b8c3a68295724139d68184f3413c7cad8193c491cae8737fadc29ea8ed
5
5
  SHA512:
6
- metadata.gz: b6c3711660636e2cd4db68bd86308e31935659fc8499e6fbce8b46331dac57b0d70035a8988612d3fbe6c43eb495464aa021b21b3e12a2d8dbc9d0301227228e
7
- data.tar.gz: d9a1bf68f2144b54a20ab7010708d0487e5168703dcee4828a2cf557ca4f111012fea5a70361b98e9fb600a36ab25c3d26fabd0aa92c374bb37581d2af4172e1
6
+ metadata.gz: c8959e2b10b5bb97caac98b64046595ac676b120073f0e30d5f6ff2603bca09254ef0e7053af9c38f9ed940a14ae39a003c0453fafbcb6245cb2031e6bd22329
7
+ data.tar.gz: 02d671ece9011d096f17cfd61e9871c11e8536ef277cc147f77ab3f2ae6821e87c9edb255ab1d8981199ec9bdce9232be8c127db9bf12f30776d03ed8a1587b1
data/.gitignore CHANGED
@@ -16,3 +16,6 @@ spec/reports
16
16
  test/tmp
17
17
  test/version_tmp
18
18
  tmp
19
+ LittleWeasel.sublime-*
20
+ scratch.txt
21
+ readme.txt
data/.reek.yml ADDED
@@ -0,0 +1,17 @@
1
+ exclude_paths:
2
+ - vendor
3
+ detectors:
4
+ TooManyInstanceVariables:
5
+ exclude:
6
+ - "LittleWeasel::Configuration"
7
+ - "LittleWeasel::WordResults"
8
+ # private methods do not have to depend on instance state
9
+ # https://github.com/troessner/reek/blob/master/docs/Utility-Function.md
10
+ UtilityFunction:
11
+ public_methods_only: true
12
+ # Check for variable name that doesn't communicate its intent well enough
13
+ # https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md
14
+ UncommunicativeVariableName:
15
+ accept:
16
+ - /^_$/
17
+ - /^e$/
data/.rspec CHANGED
@@ -1,2 +1,4 @@
1
- --color
2
- --profile
1
+ --require spec_helper
2
+ --format d
3
+ --force-color
4
+ --warnings
data/.rubocop.yml ADDED
@@ -0,0 +1,187 @@
1
+ require:
2
+ - rubocop-performance
3
+ - rubocop-rspec
4
+
5
+ AllCops:
6
+ TargetRubyVersion: 3.0.1
7
+ NewCops: enable
8
+ Exclude:
9
+ - '.git/**/*'
10
+ - '.idea/**/*'
11
+ - 'init/*'
12
+ - 'Rakefile'
13
+ - '*.gemspec'
14
+ - 'spec/**/*'
15
+ - 'vendor/**/*'
16
+
17
+ # Align the elements of a hash literal if they span more than one line.
18
+ Layout/HashAlignment:
19
+ EnforcedLastArgumentHashStyle: always_ignore
20
+
21
+ # Alignment of parameters in multi-line method definition.
22
+ # The `with_fixed_indentation` style aligns the following lines with one
23
+ # level of indentation relative to the start of the line with the method
24
+ # definition.
25
+ #
26
+ # def my_method(a,
27
+ # b)
28
+ Layout/ParameterAlignment:
29
+ EnforcedStyle: with_fixed_indentation
30
+
31
+ # Alignment of parameters in multi-line method call.
32
+ # The `with_fixed_indentation` style aligns the following lines with one
33
+ # level of indentation relative to the start of the line with the method call.
34
+ #
35
+ # my_method(a,
36
+ # b)
37
+ Layout/ArgumentAlignment:
38
+ EnforcedStyle: with_fixed_indentation
39
+
40
+ # a = case n
41
+ # when 0
42
+ # x * 2
43
+ # else
44
+ # y / 3
45
+ # end
46
+ Layout/CaseIndentation:
47
+ EnforcedStyle: end
48
+
49
+ # Enforces a configured order of definitions within a class body
50
+ Layout/ClassStructure:
51
+ Enabled: true
52
+
53
+ # Align `end` with the matching keyword or starting expression except for
54
+ # assignments, where it should be aligned with the LHS.
55
+ Layout/EndAlignment:
56
+ EnforcedStyleAlignWith: variable
57
+ AutoCorrect: true
58
+
59
+ # The `consistent` style enforces that the first element in an array
60
+ # literal where the opening bracket and the first element are on
61
+ # seprate lines is indented the same as an array literal which is not
62
+ # defined inside a method call.
63
+ Layout/FirstArrayElementIndentation:
64
+ EnforcedStyle: consistent
65
+
66
+ # The `consistent` style enforces that the first key in a hash
67
+ # literal where the opening brace and the first key are on
68
+ # seprate lines is indented the same as a hash literal which is not
69
+ # defined inside a method call.
70
+ Layout/FirstHashElementIndentation:
71
+ EnforcedStyle: consistent
72
+
73
+ # Indent multi-line methods instead of aligning with periods
74
+ Layout/MultilineMethodCallIndentation:
75
+ EnforcedStyle: indented
76
+
77
+ # Allow `debug` in tasks for now
78
+ Lint/Debugger:
79
+ Exclude:
80
+ - 'RakeFile'
81
+
82
+ # A calculated magnitude based on number of assignments, branches, and
83
+ # conditions.
84
+ # NOTE: This is temporarily disabled until we can eliminate existing Rubocop
85
+ # complaints
86
+ Metrics/AbcSize:
87
+ Enabled: false
88
+
89
+ # Avoid long blocks with many lines.
90
+ Metrics/BlockLength:
91
+ Exclude:
92
+ - 'RakeFile'
93
+ - 'db/seeds.rb'
94
+ - 'spec/**/*.rb'
95
+
96
+ # Avoid classes longer than 100 lines of code.
97
+ # NOTE: This is temporarily disabled until we can eliminate existing Rubocop
98
+ # complaints
99
+ Metrics/ClassLength:
100
+ Max: 200
101
+ Exclude:
102
+ - 'spec/**/*.rb'
103
+
104
+ # A complexity metric that is strongly correlated to the number of test cases
105
+ # needed to validate a method.
106
+ Metrics/CyclomaticComplexity:
107
+ Max: 9
108
+
109
+ # Limit lines to 80 characters
110
+ Layout/LineLength:
111
+ Exclude:
112
+ - 'RakeFile'
113
+ - 'spec/**/*.rb'
114
+
115
+ # Avoid methods longer than 15 lines of code.
116
+ Metrics/MethodLength:
117
+ Max: 20
118
+ IgnoredMethods:
119
+ - swagger_path
120
+ - operation
121
+
122
+
123
+ # A complexity metric geared towards measuring complexity for a human reader.
124
+ Metrics/PerceivedComplexity:
125
+ Max: 10
126
+
127
+ Naming/FileName:
128
+ Exclude:
129
+ - 'lib/LittleWeasel.rb'
130
+
131
+ # Allow `downcase == ` instead of forcing `casecmp`
132
+ Performance/Casecmp:
133
+ Enabled: false
134
+
135
+ # Require children definitions to be nested or compact in classes and modules
136
+ Style/ClassAndModuleChildren:
137
+ Enabled: false
138
+
139
+ # Document classes and non-namespace modules.
140
+ # (Disabled for now, may revisit later)
141
+ Style/Documentation:
142
+ Enabled: false
143
+
144
+ # Checks the formatting of empty method definitions.
145
+ Style/EmptyMethod:
146
+ EnforcedStyle: expanded
147
+
148
+ # Add the frozen_string_literal comment to the top of files to help transition
149
+ # to frozen string literals by default.
150
+ Style/FrozenStringLiteralComment:
151
+ EnforcedStyle: always
152
+
153
+ # Check for conditionals that can be replaced with guard clauses
154
+ Style/GuardClause:
155
+ Enabled: false
156
+
157
+ Style/MixinUsage:
158
+ Exclude:
159
+ - 'RakeFile'
160
+
161
+ # Avoid multi-line method signatures.
162
+ Style/MultilineMethodSignature:
163
+ Enabled: true
164
+
165
+ # Don't use option hashes when you can use keyword arguments.
166
+ Style/OptionHash:
167
+ Enabled: true
168
+
169
+ # Use return instead of return nil.
170
+ Style/ReturnNil:
171
+ Enabled: true
172
+
173
+ # Allow code like `return x, y` as it's occasionally handy.
174
+ Style/RedundantReturn:
175
+ AllowMultipleReturnValues: true
176
+
177
+ # Prefer symbols instead of strings as hash keys.
178
+ Style/StringHashKeys:
179
+ Enabled: true
180
+
181
+ # Checks if configured preferred methods are used over non-preferred.
182
+ Style/StringMethods:
183
+ Enabled: true
184
+
185
+ # Checks for use of parentheses around ternary conditions.
186
+ Style/TernaryParentheses:
187
+ EnforcedStyle: require_parentheses_when_complex
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.1.0
1
+ 3.0.1
data/.yardopts ADDED
@@ -0,0 +1,2 @@
1
+ --protected
2
+ --private
data/CHANGELOG.md CHANGED
@@ -1,3 +1,24 @@
1
+ ### 5.0.0
2
+ * changes
3
+ * Add spec coverage where lacking.
4
+ * Remove unused DictionaryLoaderService and associated modules, specs, factories.
5
+ * Refactor Locale, Language and Region modules to simplify.
6
+ * Fix up DictionaryManager#dictionary_for which was published
7
+ half-baked in 4.0.0.
8
+ * DeprecateDictionaryCacheService#dictionary_exists? (plural); add typical DeprecateDictionaryCacheService#dictionary_exist? method in its palce.
9
+ * Update rake gem version to eliminate command injection vulerability.
10
+ * Change description and summary reflecting 4.0.0 changes.
11
+ * Various reek gem violation fixes/suppressions where reasonable.
12
+ * Fix most rubocop violations.
13
+
14
+ ### 4.0.0
15
+ * enhancements
16
+ * Complete overhaul; see README.md
17
+
18
+ ### 3.0.4
19
+ * enhancements
20
+ * Relax requirements on ruby version to ~> 2.0.
21
+
1
22
  ### 3.0.3
2
23
 
3
24
  * enhancements
@@ -9,4 +30,4 @@
9
30
  * None
10
31
 
11
32
  * bug fix
12
- * Calling #exists? no longer alters the original input.
33
+ * Calling #exists? no longer alters the original input.
data/Gemfile CHANGED
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in LittleWeasel.gemspec
4
- gemspec
6
+ gemspec
data/Jenkinsfile ADDED
@@ -0,0 +1,20 @@
1
+ pipeline {
2
+ agent { docker { image 'ruby:3.0.1' } }
3
+ stages {
4
+ stage('requirements') {
5
+ steps {
6
+ sh 'gem install bundler -v 2.2.17'
7
+ }
8
+ }
9
+ stage('build') {
10
+ steps {
11
+ sh 'bundle install'
12
+ }
13
+ }
14
+ stage('test') {
15
+ steps {
16
+ sh 'bundle exec rspec'
17
+ }
18
+ }
19
+ }
20
+ }
data/LittleWeasel.gemspec CHANGED
@@ -1,28 +1,41 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
5
  require 'LittleWeasel/version'
5
6
 
6
7
  Gem::Specification.new do |spec|
7
- spec.name = "LittleWeasel"
8
+ spec.name = 'LittleWeasel'
8
9
  spec.version = LittleWeasel::VERSION
9
- spec.authors = ["Gene M. Angelo, Jr."]
10
- spec.email = ["public.gma@gmail.com"]
11
- spec.description = %q{Simple spellchecker for single, or multiple word blocks.}
12
- spec.summary = %q{Simply checks a word or group of words for validity against an english dictionary file.}
13
- spec.homepage = "http://www.geneangelo.com"
14
- spec.license = "MIT"
10
+ spec.authors = ['Gene M. Angelo, Jr.']
11
+ spec.email = ['public.gma@gmail.com']
12
+ spec.description = 'Spellchecker+ with preprocessing and filtering for single and multiple word blocks.'
13
+ spec.summary = 'Checks a word or group of words for validity against a dictionary/ies provided. Word filtering and word preprocessing is available.'
14
+ spec.homepage = 'http://www.geneangelo.com'
15
+ spec.license = 'MIT'
15
16
 
16
- spec.files = `git ls-files`.split($/)
17
+ spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
17
18
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
19
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
20
+ spec.require_paths = ['lib']
20
21
 
21
- spec.required_ruby_version = '~> 2.0.0'
22
- spec.add_runtime_dependency 'activesupport', '~> 4.1', '>= 4.1.1'
23
- spec.add_development_dependency "bundler", "~> 1.3"
24
- spec.add_development_dependency "rake", '~> 0'
25
- spec.add_development_dependency "rspec", '~> 3.0', '>= 3.0.0'
26
- spec.add_development_dependency "yard", "0.8.6.1"
27
- spec.add_development_dependency "redcarpet", '~> 2.3', '>= 2.3.0'
22
+ spec.required_ruby_version = '~> 3.0', '>= 3.0.1'
23
+ spec.add_runtime_dependency 'activesupport', '~> 6.1', '>= 6.1.3.2'
24
+ spec.add_development_dependency 'benchmark-ips', '~> 2.3'
25
+ spec.add_development_dependency 'bundler', '~> 2.2', '>= 2.2.17'
26
+ spec.add_development_dependency 'factory_bot', '~> 6.2'
27
+ spec.add_development_dependency 'pry-byebug', '~> 3.9'
28
+ spec.add_development_dependency 'rake', '>= 12.3.3'
29
+ spec.add_development_dependency 'redcarpet', '~> 3.5', '>= 3.5.1'
30
+ spec.add_development_dependency 'reek', '~> 6.0', '>= 6.0.4'
31
+ spec.add_development_dependency 'rspec', '~> 3.10'
32
+ # This verson of rubocop is returning errors.
33
+ # spec.add_development_dependency 'rubocop', '~> 1.14'
34
+ spec.add_development_dependency 'rubocop', '~> 1.9.1'
35
+ spec.add_development_dependency 'rubocop-performance', '~> 1.11', '>= 1.11.3'
36
+ spec.add_development_dependency 'rubocop-rspec', '~> 2.3'
37
+ spec.add_development_dependency 'simplecov', '~> 0.21.2'
38
+ # Needed for yard
39
+ spec.add_development_dependency 'webrick', '~> 1.7'
40
+ spec.add_development_dependency 'yard', '~> 0.9.26'
28
41
  end