LittleWeasel 3.0.4 → 5.0.1
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 +5 -5
- data/.github/workflows/codeql-analysis.yml +72 -0
- data/.gitignore +19 -17
- data/.reek.yml +17 -0
- data/.rspec +4 -2
- data/.rubocop.yml +187 -0
- data/.ruby-version +1 -1
- data/.yardopts +2 -0
- data/CHANGELOG.md +21 -1
- data/Gemfile +3 -1
- data/Gemfile.lock +114 -0
- data/Jenkinsfile +20 -0
- data/LittleWeasel.gemspec +31 -18
- data/README.md +408 -42
- data/Rakefile +296 -3
- data/lib/LittleWeasel/block_results.rb +81 -0
- data/lib/LittleWeasel/configure.rb +98 -0
- data/lib/LittleWeasel/dictionary.rb +125 -0
- data/lib/LittleWeasel/dictionary_key.rb +48 -0
- data/lib/LittleWeasel/dictionary_manager.rb +91 -0
- data/lib/LittleWeasel/errors/dictionary_file_already_loaded_error.rb +9 -0
- data/lib/LittleWeasel/errors/dictionary_file_empty_error.rb +8 -0
- data/lib/LittleWeasel/errors/dictionary_file_not_found_error.rb +8 -0
- data/lib/LittleWeasel/errors/dictionary_file_too_large_error.rb +16 -0
- data/lib/LittleWeasel/errors/language_required_error.rb +8 -0
- data/lib/LittleWeasel/errors/must_override_error.rb +8 -0
- data/lib/LittleWeasel/filters/en_us/currency_filter.rb +19 -0
- data/lib/LittleWeasel/filters/en_us/numeric_filter.rb +19 -0
- data/lib/LittleWeasel/filters/en_us/single_character_word_filter.rb +21 -0
- data/lib/LittleWeasel/filters/word_filter.rb +59 -0
- data/lib/LittleWeasel/filters/word_filter_managable.rb +80 -0
- data/lib/LittleWeasel/filters/word_filter_validatable.rb +31 -0
- data/lib/LittleWeasel/filters/word_filterable.rb +19 -0
- data/lib/LittleWeasel/filters/word_filters_validatable.rb +29 -0
- data/lib/LittleWeasel/metadata/dictionary_metadata.rb +145 -0
- data/lib/LittleWeasel/metadata/invalid_words_metadata.rb +134 -0
- data/lib/LittleWeasel/metadata/invalid_words_service_results.rb +45 -0
- data/lib/LittleWeasel/metadata/metadata_observable_validatable.rb +22 -0
- data/lib/LittleWeasel/metadata/metadata_observerable.rb +90 -0
- data/lib/LittleWeasel/metadata/metadatable.rb +134 -0
- data/lib/LittleWeasel/modules/class_name_to_symbol.rb +26 -0
- data/lib/LittleWeasel/modules/configurable.rb +26 -0
- data/lib/LittleWeasel/modules/deep_dup.rb +11 -0
- data/lib/LittleWeasel/modules/dictionary_cache_keys.rb +34 -0
- data/lib/LittleWeasel/modules/dictionary_cache_servicable.rb +26 -0
- data/lib/LittleWeasel/modules/dictionary_cache_validatable.rb +18 -0
- data/lib/LittleWeasel/modules/dictionary_creator_servicable.rb +27 -0
- data/lib/LittleWeasel/modules/dictionary_file_loader.rb +67 -0
- data/lib/LittleWeasel/modules/dictionary_key_validatable.rb +17 -0
- data/lib/LittleWeasel/modules/dictionary_keyable.rb +24 -0
- data/lib/LittleWeasel/modules/dictionary_metadata_servicable.rb +29 -0
- data/lib/LittleWeasel/modules/dictionary_metadata_validatable.rb +15 -0
- data/lib/LittleWeasel/modules/dictionary_source_validatable.rb +15 -0
- data/lib/LittleWeasel/modules/dictionary_sourceable.rb +86 -0
- data/lib/LittleWeasel/modules/dictionary_validatable.rb +18 -0
- data/lib/LittleWeasel/modules/language.rb +24 -0
- data/lib/LittleWeasel/modules/language_validatable.rb +14 -0
- data/lib/LittleWeasel/modules/locale.rb +23 -0
- data/lib/LittleWeasel/modules/order_validatable.rb +16 -0
- data/lib/LittleWeasel/modules/orderable.rb +17 -0
- data/lib/LittleWeasel/modules/region.rb +24 -0
- data/lib/LittleWeasel/modules/region_validatable.rb +14 -0
- data/lib/LittleWeasel/modules/tag_validatable.rb +14 -0
- data/lib/LittleWeasel/modules/taggable.rb +31 -0
- data/lib/LittleWeasel/modules/word_results_validatable.rb +28 -0
- data/lib/LittleWeasel/preprocessors/en_us/capitalize_preprocessor.rb +22 -0
- data/lib/LittleWeasel/preprocessors/preprocessed_word.rb +29 -0
- data/lib/LittleWeasel/preprocessors/preprocessed_word_validatable.rb +56 -0
- data/lib/LittleWeasel/preprocessors/preprocessed_words.rb +59 -0
- data/lib/LittleWeasel/preprocessors/preprocessed_words_validatable.rb +28 -0
- data/lib/LittleWeasel/preprocessors/word_preprocessable.rb +19 -0
- data/lib/LittleWeasel/preprocessors/word_preprocessor.rb +123 -0
- data/lib/LittleWeasel/preprocessors/word_preprocessor_managable.rb +114 -0
- data/lib/LittleWeasel/preprocessors/word_preprocessor_validatable.rb +40 -0
- data/lib/LittleWeasel/preprocessors/word_preprocessors_validatable.rb +24 -0
- data/lib/LittleWeasel/services/dictionary_cache_service.rb +211 -0
- data/lib/LittleWeasel/services/dictionary_creator_service.rb +94 -0
- data/lib/LittleWeasel/services/dictionary_file_loader_service.rb +37 -0
- data/lib/LittleWeasel/services/dictionary_killer_service.rb +35 -0
- data/lib/LittleWeasel/services/dictionary_metadata_service.rb +116 -0
- data/lib/LittleWeasel/services/invalid_words_service.rb +59 -0
- data/lib/LittleWeasel/version.rb +3 -1
- data/lib/LittleWeasel/word_results.rb +146 -0
- data/lib/LittleWeasel.rb +72 -186
- data/spec/factories/dictionary.rb +43 -0
- data/spec/factories/dictionary_cache_service.rb +95 -0
- data/spec/factories/dictionary_creator_service.rb +16 -0
- data/spec/factories/dictionary_file_loader_service.rb +13 -0
- data/spec/factories/dictionary_hash.rb +39 -0
- data/spec/factories/dictionary_key.rb +14 -0
- data/spec/factories/dictionary_killer_service.rb +14 -0
- data/spec/factories/dictionary_manager.rb +10 -0
- data/spec/factories/dictionary_metadata.rb +16 -0
- data/spec/factories/dictionary_metadata_service.rb +16 -0
- data/spec/factories/numeric_filter.rb +12 -0
- data/spec/factories/preprocessed_word.rb +16 -0
- data/spec/factories/preprocessed_words.rb +41 -0
- data/spec/factories/single_character_word_filter.rb +12 -0
- data/spec/factories/word_results.rb +16 -0
- data/spec/lib/LittleWeasel/block_results_spec.rb +248 -0
- data/spec/lib/LittleWeasel/configure_spec.rb +74 -0
- data/spec/lib/LittleWeasel/dictionary_key_spec.rb +118 -0
- data/spec/lib/LittleWeasel/dictionary_manager_spec.rb +166 -0
- data/spec/lib/LittleWeasel/dictionary_spec.rb +289 -0
- data/spec/lib/LittleWeasel/filters/en_us/currency_filter_spec.rb +80 -0
- data/spec/lib/LittleWeasel/filters/en_us/numeric_filter_spec.rb +66 -0
- data/spec/lib/LittleWeasel/filters/en_us/single_character_word_filter_spec.rb +58 -0
- data/spec/lib/LittleWeasel/filters/word_filter_managable_spec.rb +180 -0
- data/spec/lib/LittleWeasel/filters/word_filter_spec.rb +151 -0
- data/spec/lib/LittleWeasel/filters/word_filter_validatable_spec.rb +94 -0
- data/spec/lib/LittleWeasel/filters/word_filters_validatable_spec.rb +48 -0
- data/spec/lib/LittleWeasel/integraton_tests/dictionary_integration_spec.rb +201 -0
- data/spec/lib/LittleWeasel/metadata/dictionary_creator_servicable_spec.rb +54 -0
- data/spec/lib/LittleWeasel/metadata/dictionary_metadata_spec.rb +209 -0
- data/spec/lib/LittleWeasel/metadata/invalid_words_metadata_spec.rb +155 -0
- data/spec/lib/LittleWeasel/metadata/metadata_observerable_spec.rb +31 -0
- data/spec/lib/LittleWeasel/metadata/metadatable_spec.rb +35 -0
- data/spec/lib/LittleWeasel/modules/class_name_to_symbol_spec.rb +21 -0
- data/spec/lib/LittleWeasel/modules/dictionary_file_loader_spec.rb +125 -0
- data/spec/lib/LittleWeasel/modules/dictionary_sourceable_spec.rb +81 -0
- data/spec/lib/LittleWeasel/modules/language_spec.rb +112 -0
- data/spec/lib/LittleWeasel/modules/locale_spec.rb +95 -0
- data/spec/lib/LittleWeasel/modules/region_spec.rb +112 -0
- data/spec/lib/LittleWeasel/preprocessors/en_us/capitalize_preprocessor_spec.rb +34 -0
- data/spec/lib/LittleWeasel/preprocessors/preprocessed_word_spec.rb +105 -0
- data/spec/lib/LittleWeasel/preprocessors/preprocessed_word_validatable_spec.rb +143 -0
- data/spec/lib/LittleWeasel/preprocessors/preprocessed_words_spec.rb +77 -0
- data/spec/lib/LittleWeasel/preprocessors/preprocessed_words_validatable_spec.rb +58 -0
- data/spec/lib/LittleWeasel/preprocessors/word_preprocessor_managable_spec.rb +242 -0
- data/spec/lib/LittleWeasel/preprocessors/word_preprocessor_spec.rb +218 -0
- data/spec/lib/LittleWeasel/preprocessors/word_preprocessor_validatable_spec.rb +109 -0
- data/spec/lib/LittleWeasel/preprocessors/word_preprocessors_validatable_spec.rb +49 -0
- data/spec/lib/LittleWeasel/services/dictionary_cache_service_spec.rb +444 -0
- data/spec/lib/LittleWeasel/services/dictionary_creator_service_spec.rb +119 -0
- data/spec/lib/LittleWeasel/services/dictionary_file_loader_service_spec.rb +71 -0
- data/spec/lib/LittleWeasel/services/dictionary_metadata_service_spec.rb +279 -0
- data/spec/lib/LittleWeasel/word_results_spec.rb +275 -0
- data/spec/lib/LittleWeasel/workflow/workflow_spec.rb +20 -0
- data/spec/spec_helper.rb +117 -6
- data/spec/support/factory_bot.rb +15 -0
- data/spec/support/file_helpers.rb +46 -0
- data/spec/support/files/empty-dictionary.txt +0 -0
- data/{lib/dictionary → spec/support/files/en-US-big.txt} +262156 -31488
- data/spec/support/files/en-US-tagged.txt +26 -0
- data/spec/support/files/en-US.txt +26 -0
- data/spec/support/files/en.txt +26 -0
- data/spec/support/files/es-ES.txt +27 -0
- data/spec/support/files/es.txt +27 -0
- data/spec/support/general_helpers.rb +68 -0
- data/spec/support/shared_contexts.rb +107 -0
- data/spec/support/shared_examples.rb +105 -0
- metadata +418 -70
- data/spec/checker/checker_spec.rb +0 -286
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 99ff1b68a2ef5252c7db91a9407b9f580c41fcf994b9f139e3f0df05a3a747bc
|
|
4
|
+
data.tar.gz: 107edfb03a8a9b60a2701005175b6352b699279abb0d3d11f9f1708df09755cc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0fafbb1416486a516734f2ea08bc464a797bb63ed14388ed837e3f812cfe0e9bb600aa9b36b0608eb196ae18a4bb6f49423b2594a3ac565ef3ecece8e9733bec
|
|
7
|
+
data.tar.gz: c8dc7d656636e4dc17a32341c324cd7c0e83271251b355c6ac1e1cc87746088745251e32d4cc9352f5cd296829abe2b3fac491d4b201b10cb66c6a45fb99fe63
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# For most projects, this workflow file will not need changing; you simply need
|
|
2
|
+
# to commit it to your repository.
|
|
3
|
+
#
|
|
4
|
+
# You may wish to alter this file to override the set of languages analyzed,
|
|
5
|
+
# or to provide custom queries or build logic.
|
|
6
|
+
#
|
|
7
|
+
# ******** NOTE ********
|
|
8
|
+
# We have attempted to detect the languages in your repository. Please check
|
|
9
|
+
# the `language` matrix defined below to confirm you have the correct set of
|
|
10
|
+
# supported CodeQL languages.
|
|
11
|
+
#
|
|
12
|
+
name: "CodeQL"
|
|
13
|
+
|
|
14
|
+
on:
|
|
15
|
+
push:
|
|
16
|
+
branches: [ "master" ]
|
|
17
|
+
pull_request:
|
|
18
|
+
# The branches below must be a subset of the branches above
|
|
19
|
+
branches: [ "master" ]
|
|
20
|
+
schedule:
|
|
21
|
+
- cron: '38 19 * * 0'
|
|
22
|
+
|
|
23
|
+
jobs:
|
|
24
|
+
analyze:
|
|
25
|
+
name: Analyze
|
|
26
|
+
runs-on: ubuntu-latest
|
|
27
|
+
permissions:
|
|
28
|
+
actions: read
|
|
29
|
+
contents: read
|
|
30
|
+
security-events: write
|
|
31
|
+
|
|
32
|
+
strategy:
|
|
33
|
+
fail-fast: false
|
|
34
|
+
matrix:
|
|
35
|
+
language: [ 'ruby' ]
|
|
36
|
+
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
|
37
|
+
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
|
|
38
|
+
|
|
39
|
+
steps:
|
|
40
|
+
- name: Checkout repository
|
|
41
|
+
uses: actions/checkout@v3
|
|
42
|
+
|
|
43
|
+
# Initializes the CodeQL tools for scanning.
|
|
44
|
+
- name: Initialize CodeQL
|
|
45
|
+
uses: github/codeql-action/init@v2
|
|
46
|
+
with:
|
|
47
|
+
languages: ${{ matrix.language }}
|
|
48
|
+
# If you wish to specify custom queries, you can do so here or in a config file.
|
|
49
|
+
# By default, queries listed here will override any specified in a config file.
|
|
50
|
+
# Prefix the list here with "+" to use these queries and those in the config file.
|
|
51
|
+
|
|
52
|
+
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
|
|
53
|
+
# queries: security-extended,security-and-quality
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
|
57
|
+
# If this step fails, then you should remove it and run the build manually (see below)
|
|
58
|
+
- name: Autobuild
|
|
59
|
+
uses: github/codeql-action/autobuild@v2
|
|
60
|
+
|
|
61
|
+
# ℹ️ Command-line programs to run using the OS shell.
|
|
62
|
+
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
|
63
|
+
|
|
64
|
+
# If the Autobuild fails above, remove it and uncomment the following three lines.
|
|
65
|
+
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
|
|
66
|
+
|
|
67
|
+
# - run: |
|
|
68
|
+
# echo "Run, Build Application using script"
|
|
69
|
+
# ./location_of_script_within_repo/buildscript.sh
|
|
70
|
+
|
|
71
|
+
- name: Perform CodeQL Analysis
|
|
72
|
+
uses: github/codeql-action/analyze@v2
|
data/.gitignore
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
|
+
/.bundle/
|
|
2
|
+
/.yardoc
|
|
3
|
+
/_yardoc/
|
|
4
|
+
/coverage/
|
|
5
|
+
/doc/
|
|
6
|
+
/pkg/
|
|
7
|
+
/spec/reports/
|
|
8
|
+
/tmp/
|
|
9
|
+
|
|
10
|
+
/rdoc/
|
|
1
11
|
*.gem
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
doc/
|
|
12
|
-
lib/bundler/man
|
|
13
|
-
pkg
|
|
14
|
-
rdoc
|
|
15
|
-
spec/reports
|
|
16
|
-
test/tmp
|
|
17
|
-
test/version_tmp
|
|
18
|
-
tmp
|
|
12
|
+
|
|
13
|
+
# rspec failure tracking
|
|
14
|
+
.rspec_status
|
|
15
|
+
|
|
16
|
+
/.vscode/
|
|
17
|
+
*.code-workspace
|
|
18
|
+
|
|
19
|
+
scratch.rb
|
|
20
|
+
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
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
|
-
|
|
1
|
+
3.0.1
|
data/.yardopts
ADDED
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,23 @@
|
|
|
1
|
+
### 5.0.1
|
|
2
|
+
* bug fix
|
|
3
|
+
* Fix error loading support files in LittleWeasel.rb.
|
|
4
|
+
### 5.0.0
|
|
5
|
+
* changes
|
|
6
|
+
* Add spec coverage where lacking.
|
|
7
|
+
* Remove unused DictionaryLoaderService and associated modules, specs, factories.
|
|
8
|
+
* Refactor Locale, Language and Region modules to simplify.
|
|
9
|
+
* Fix up DictionaryManager#dictionary_for which was published
|
|
10
|
+
half-baked in 4.0.0.
|
|
11
|
+
* DeprecateDictionaryCacheService#dictionary_exists? (plural); add typical DeprecateDictionaryCacheService#dictionary_exist? method in its palce.
|
|
12
|
+
* Update rake gem version to eliminate command injection vulerability.
|
|
13
|
+
* Change description and summary reflecting 4.0.0 changes.
|
|
14
|
+
* Various reek gem violation fixes/suppressions where reasonable.
|
|
15
|
+
* Fix most rubocop violations.
|
|
16
|
+
|
|
17
|
+
### 4.0.0
|
|
18
|
+
* enhancements
|
|
19
|
+
* Complete overhaul; see README.md
|
|
20
|
+
|
|
1
21
|
### 3.0.4
|
|
2
22
|
* enhancements
|
|
3
23
|
* Relax requirements on ruby version to ~> 2.0.
|
|
@@ -13,4 +33,4 @@
|
|
|
13
33
|
* None
|
|
14
34
|
|
|
15
35
|
* bug fix
|
|
16
|
-
* Calling #exists? no longer alters the original input.
|
|
36
|
+
* Calling #exists? no longer alters the original input.
|
data/Gemfile
CHANGED
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
LittleWeasel (5.0.1)
|
|
5
|
+
activesupport (~> 6.1, >= 6.1.3.2)
|
|
6
|
+
|
|
7
|
+
GEM
|
|
8
|
+
remote: https://rubygems.org/
|
|
9
|
+
specs:
|
|
10
|
+
activesupport (6.1.6.1)
|
|
11
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
12
|
+
i18n (>= 1.6, < 2)
|
|
13
|
+
minitest (>= 5.1)
|
|
14
|
+
tzinfo (~> 2.0)
|
|
15
|
+
zeitwerk (~> 2.3)
|
|
16
|
+
ast (2.4.2)
|
|
17
|
+
benchmark-ips (2.10.0)
|
|
18
|
+
byebug (11.1.3)
|
|
19
|
+
coderay (1.1.3)
|
|
20
|
+
concurrent-ruby (1.1.10)
|
|
21
|
+
diff-lcs (1.5.0)
|
|
22
|
+
docile (1.4.0)
|
|
23
|
+
factory_bot (6.2.1)
|
|
24
|
+
activesupport (>= 5.0.0)
|
|
25
|
+
i18n (1.12.0)
|
|
26
|
+
concurrent-ruby (~> 1.0)
|
|
27
|
+
kwalify (0.7.2)
|
|
28
|
+
method_source (1.0.0)
|
|
29
|
+
minitest (5.16.3)
|
|
30
|
+
parallel (1.22.1)
|
|
31
|
+
parser (3.1.2.1)
|
|
32
|
+
ast (~> 2.4.1)
|
|
33
|
+
pry (0.14.1)
|
|
34
|
+
coderay (~> 1.1)
|
|
35
|
+
method_source (~> 1.0)
|
|
36
|
+
pry-byebug (3.10.1)
|
|
37
|
+
byebug (~> 11.0)
|
|
38
|
+
pry (>= 0.13, < 0.15)
|
|
39
|
+
rainbow (3.1.1)
|
|
40
|
+
rake (12.3.3)
|
|
41
|
+
redcarpet (3.5.1)
|
|
42
|
+
reek (6.1.1)
|
|
43
|
+
kwalify (~> 0.7.0)
|
|
44
|
+
parser (~> 3.1.0)
|
|
45
|
+
rainbow (>= 2.0, < 4.0)
|
|
46
|
+
regexp_parser (2.5.0)
|
|
47
|
+
rexml (3.2.5)
|
|
48
|
+
rspec (3.11.0)
|
|
49
|
+
rspec-core (~> 3.11.0)
|
|
50
|
+
rspec-expectations (~> 3.11.0)
|
|
51
|
+
rspec-mocks (~> 3.11.0)
|
|
52
|
+
rspec-core (3.11.0)
|
|
53
|
+
rspec-support (~> 3.11.0)
|
|
54
|
+
rspec-expectations (3.11.0)
|
|
55
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
56
|
+
rspec-support (~> 3.11.0)
|
|
57
|
+
rspec-mocks (3.11.1)
|
|
58
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
59
|
+
rspec-support (~> 3.11.0)
|
|
60
|
+
rspec-support (3.11.0)
|
|
61
|
+
rubocop (1.9.1)
|
|
62
|
+
parallel (~> 1.10)
|
|
63
|
+
parser (>= 3.0.0.0)
|
|
64
|
+
rainbow (>= 2.2.2, < 4.0)
|
|
65
|
+
regexp_parser (>= 1.8, < 3.0)
|
|
66
|
+
rexml
|
|
67
|
+
rubocop-ast (>= 1.2.0, < 2.0)
|
|
68
|
+
ruby-progressbar (~> 1.7)
|
|
69
|
+
unicode-display_width (>= 1.4.0, < 3.0)
|
|
70
|
+
rubocop-ast (1.21.0)
|
|
71
|
+
parser (>= 3.1.1.0)
|
|
72
|
+
rubocop-performance (1.14.3)
|
|
73
|
+
rubocop (>= 1.7.0, < 2.0)
|
|
74
|
+
rubocop-ast (>= 0.4.0)
|
|
75
|
+
rubocop-rspec (2.4.0)
|
|
76
|
+
rubocop (~> 1.0)
|
|
77
|
+
rubocop-ast (>= 1.1.0)
|
|
78
|
+
ruby-progressbar (1.11.0)
|
|
79
|
+
simplecov (0.21.2)
|
|
80
|
+
docile (~> 1.1)
|
|
81
|
+
simplecov-html (~> 0.11)
|
|
82
|
+
simplecov_json_formatter (~> 0.1)
|
|
83
|
+
simplecov-html (0.12.3)
|
|
84
|
+
simplecov_json_formatter (0.1.4)
|
|
85
|
+
tzinfo (2.0.5)
|
|
86
|
+
concurrent-ruby (~> 1.0)
|
|
87
|
+
unicode-display_width (2.2.0)
|
|
88
|
+
webrick (1.7.0)
|
|
89
|
+
yard (0.9.28)
|
|
90
|
+
webrick (~> 1.7.0)
|
|
91
|
+
zeitwerk (2.6.0)
|
|
92
|
+
|
|
93
|
+
PLATFORMS
|
|
94
|
+
ruby
|
|
95
|
+
|
|
96
|
+
DEPENDENCIES
|
|
97
|
+
LittleWeasel!
|
|
98
|
+
benchmark-ips (~> 2.3)
|
|
99
|
+
bundler (~> 2.2, >= 2.2.17)
|
|
100
|
+
factory_bot (~> 6.2)
|
|
101
|
+
pry-byebug (~> 3.9)
|
|
102
|
+
rake (~> 12.3, >= 12.3.3)
|
|
103
|
+
redcarpet (~> 3.5, >= 3.5.1)
|
|
104
|
+
reek (~> 6.0, >= 6.0.4)
|
|
105
|
+
rspec (~> 3.10)
|
|
106
|
+
rubocop (~> 1.9.1)
|
|
107
|
+
rubocop-performance (~> 1.11, >= 1.11.3)
|
|
108
|
+
rubocop-rspec (~> 2.3)
|
|
109
|
+
simplecov (~> 0.21.2)
|
|
110
|
+
webrick (~> 1.7)
|
|
111
|
+
yard (~> 0.9.26)
|
|
112
|
+
|
|
113
|
+
BUNDLED WITH
|
|
114
|
+
2.2.17
|
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
|
-
#
|
|
2
|
-
|
|
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 =
|
|
8
|
+
spec.name = 'LittleWeasel'
|
|
8
9
|
spec.version = LittleWeasel::VERSION
|
|
9
|
-
spec.authors = [
|
|
10
|
-
spec.email = [
|
|
11
|
-
spec.description =
|
|
12
|
-
spec.summary =
|
|
13
|
-
spec.homepage =
|
|
14
|
-
spec.license =
|
|
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 = [
|
|
20
|
+
spec.require_paths = ['lib']
|
|
20
21
|
|
|
21
|
-
spec.required_ruby_version = '~>
|
|
22
|
-
spec.add_runtime_dependency 'activesupport', '~>
|
|
23
|
-
spec.add_development_dependency
|
|
24
|
-
spec.add_development_dependency
|
|
25
|
-
spec.add_development_dependency
|
|
26
|
-
spec.add_development_dependency
|
|
27
|
-
spec.add_development_dependency
|
|
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', '>= 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
|