floss_funding 1.0.0.pre.alpha.1 → 1.0.0.pre.alpha.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b45daa39a243f7b6fd37bcc70d1f01c8c2d373cc2b3e5cfd34f51dea19bb22a5
4
- data.tar.gz: e54d87904228a79996f45e3e37a11679ea39b860ef67cc38bcf701667927ca69
3
+ metadata.gz: 5e1383e87ce894cd049a31d50223a90d4a8892f156e0ac2aaf70e23b2b69c72e
4
+ data.tar.gz: c6ec56d60aad6f9a9d9ba4e96a64d8a80cd84d05f743175264c229274e93b149
5
5
  SHA512:
6
- metadata.gz: 54bc48b6c013465b5e52ddfe5e15cd8230980b529c4570547471e8f3ebd1a904afde8997b99aa03e35653be3957a751cfa19bdd7ba1075f38c89df6e9fd138e9
7
- data.tar.gz: d1620ef3a2894f44334a3d689054492a9d1263aeeb04e236ad8d74ab0fcd77e40e1e7745ac757a8e78b7fff5ebe00f071b4f0e7913f5bb6275d0ed2c79f6c39e
6
+ metadata.gz: 35134a247fa7847f546255ad276a8547cea0953d2308820639e662d571065b1d8a4dda4610efa91c6e91107419a24014f244474b9926a07f4cc71f8daff4c2b0
7
+ data.tar.gz: 0cb29346ceadd887594fb7b1b223a166a391fb56b2e85cbcb6c3cb351ec3d68d7bc234f77faeed73d0b220ab7ee0becec8d6aafadefc8601ec69bc0d6c420655
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -12,7 +12,18 @@ and this project adheres to [Semantic Versioning v2](https://semver.org/spec/v2.
12
12
  ### Fixed
13
13
  ### Security
14
14
 
15
- ## [1.0.0-alpha.1] - 2025-08-08
15
+ ## [1.0.0-alpha.2] - 2025-08-10
16
+ - TAG: [v1.0.0-alpha.2][1.0.0-alpha.2t]
17
+ - COVERAGE: 100.00% -- 263/263 lines in 6 files
18
+ - BRANCH COVERAGE: 100.00% -- 85/85 branches in 6 files
19
+ - 100.00% documented
20
+ ### Added
21
+ - More documentation
22
+ ### Fixed
23
+ - Required `base.txt` added to gem package
24
+ - Documentation typos
25
+
26
+ ## [1.0.0-alpha.1] - 2025-08-10
16
27
  - TAG: [v1.0.0-alpha.1][1.0.0-alpha.1t]
17
28
  - COVERAGE: 100.00% -- 262/262 lines in 6 files
18
29
  - BRANCH COVERAGE: 100.00% -- 85/85 branches in 6 files
@@ -20,6 +31,8 @@ and this project adheres to [Semantic Versioning v2](https://semver.org/spec/v2.
20
31
  ### Added
21
32
  - Initial release
22
33
 
23
- [Unreleased]: https://gitlab.com/galtzo-floss/floss_funding/-/compare/v1.0.0-alpha.1...main
34
+ [Unreleased]: https://gitlab.com/galtzo-floss/floss_funding/-/compare/v1.0.0-v1.0.0-alpha.1...main
35
+ [1.0.0-alpha.2]: https://gitlab.com/galtzo-floss/floss_funding/-/compare/v1.0.0-alpha.1...v1.0.0-alpha.2
36
+ [1.0.0-alpha.2t]: https://gitlab.com/galtzo-floss/floss_funding/-/tags/v1.0.0-alpha.1
24
37
  [1.0.0-alpha.1]: https://gitlab.com/galtzo-floss/floss_funding/-/compare/389ece6fb9bd04013d11edca6fb6830139a84f4c...v1.0.0-alpha.1
25
38
  [1.0.0-alpha.1t]: https://gitlab.com/galtzo-floss/floss_funding/-/tags/v1.0.0-alpha.1
data/CITATION.cff ADDED
@@ -0,0 +1,20 @@
1
+ cff-version: 1.2.0
2
+ title: FlossFunding
3
+ message: >-
4
+ If you use this work and you want to cite it,
5
+ then you can use the metadata from this file.
6
+ type: software
7
+ authors:
8
+ - given-names: Peter Hurn
9
+ family-names: Boling
10
+ email: peter@railsbling.com
11
+ affiliation: railsbling.com
12
+ orcid: 'https://orcid.org/0009-0008-8519-441X'
13
+ identifiers:
14
+ - type: url
15
+ value: 'https://github.com/galtzo-floss/floss_funding/'
16
+ description: FlossFunding
17
+ repository-code: 'https://github.com/galtzo-floss/floss_funding/'
18
+ abstract: >-
19
+ FlossFunding
20
+ license: See license file
data/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  [🖼️galtzo-i]: https://logos.galtzo.com/assets/images/galtzo-floss/avatar-192px.svg
4
4
  [🖼️galtzo-discord]: https://discord.gg/3qme4XHNKN
5
5
  [🖼️ruby-lang-i]: https://logos.galtzo.com/assets/images/ruby-lang/avatar-192px.svg
6
- [🖼️ruby-lang]: https://github.com/ruby-lang
6
+ [🖼️ruby-lang]: https://www.ruby-lang.org/
7
7
  [🖼️floss_funding-i]: https://logos.galtzo.com/assets/images/galtzo-floss/floss_funding/avatar-192px.svg
8
8
  [🖼️floss_funding]: https://github.com/galtzo-floss/floss_funding
9
9
 
@@ -51,7 +51,7 @@ It has been my experience that work on the dark underbelly of software, down in
51
51
 
52
52
  This tool makes it far easier to get paid for your work down there at the bottom of the stack, in the dev dependencies that get overlooked by most OSS funding tools.
53
53
 
54
- Activation keys use a cipher encryption algorithm against a 2400-word dictionary to make valid activation keys slightly difficult to discover manually. The activation keys are _opaque_, rather than _private_. They are not tied to you in any way. Other people may use the same one. And that's fine! They don't do anything except silence some STDOUT nagging.
54
+ Activation keys use a cipher encryption algorithm against a 2400-word dictionary, with some other data, like the project's namespace, and the current month, thrown in, to make valid activation keys slightly difficult to discover manually. Once a key is made it is valid forever. There is no revocation. The activation keys are _opaque_, rather than _private_. They are not tied to you in any way. Other people may use the same one. And that's fine! They don't do anything except silence some STDOUT nagging.
55
55
 
56
56
  ## TO DO List
57
57
 
@@ -140,7 +140,7 @@ If bundler is not being used to manage dependencies, install the gem by executin
140
140
  <details>
141
141
  <summary>For Medium or High Security Installations</summary>
142
142
 
143
- `floss_funding` is cryptographically signed, and has verifiable [SHA-256 and SHA-512][💎SHA_checksums] checksums by
143
+ This gem is cryptographically signed, and has verifiable [SHA-256 and SHA-512][💎SHA_checksums] checksums by
144
144
  [stone_checksums][💎stone_checksums]. Be sure the gem you install hasn’t been tampered with
145
145
  by following the instructions below.
146
146
 
@@ -180,7 +180,6 @@ module MyGemLibrary
180
180
  include FlossFunding::Poke.new(__FILE__)
181
181
  end
182
182
  ```
183
-
184
183
  2. Arbitrary custom namespace (can add version, or anything else):
185
184
  ```ruby
186
185
  module MyGemLibrary
@@ -198,7 +197,7 @@ The following options can be configured in the `.floss_funding.yml` file:
198
197
 
199
198
  1. `suggested_donation_amount` - The suggested donation amount to display in the begging message (default: 5)
200
199
  2. `floss_funding_url` - The URL to direct users to for donations or sponsorship
201
- a. default: https://floss-funding.dev, which doesn't take donations on behalf of other projects, so it will have helpful tips on how to find a way to donate.
200
+ a. default: https://floss-funding.dev, which doesn't take donations on behalf of other projects, but it will have helpful tips on how to find a way to donate.
202
201
 
203
202
  ### Example Configuration
204
203
 
@@ -216,7 +215,7 @@ See [SECURITY.md][🔐security].
216
215
  ## 🤝 Contributing
217
216
 
218
217
  If you need some ideas of where to help, you could work on adding more code coverage,
219
- or if it is already 💯 (see [below](#code-coverage)) check [issues][🤝gh-issues], or [PRs][🤝gh-pulls],
218
+ or if it is already 💯 (see [below](#code-coverage)) check [reek](REEK), [issues][🤝gh-issues], or [PRs][🤝gh-pulls],
220
219
  or use the gem and think about how it could be better.
221
220
 
222
221
  We [![Keep A Changelog][📗keep-changelog-img]][📗keep-changelog] so if you make changes, remember to update it.
data/REEK ADDED
@@ -0,0 +1,111 @@
1
+ lib/floss_funding/check.rb -- 15 warnings:
2
+ [39]:Attribute: FlossFunding::Check::ClassMethods#now_time is a writable attribute [https://github.com/troessner/reek/blob/v6.5.0/docs/Attribute.md]
3
+ [65]:ControlParameter: FlossFunding::Check::ClassMethods#check_unpaid_silence is controlled by argument 'activation_key' [https://github.com/troessner/reek/blob/v6.5.0/docs/Control-Parameter.md]
4
+ [47, 64, 105, 163]:DataClump: FlossFunding::Check::ClassMethods takes parameters ['activation_key', 'namespace'] to 4 methods [https://github.com/troessner/reek/blob/v6.5.0/docs/Data-Clump.md]
5
+ [105, 163, 191]:DataClump: FlossFunding::Check::ClassMethods takes parameters ['env_var_name', 'namespace'] to 3 methods [https://github.com/troessner/reek/blob/v6.5.0/docs/Data-Clump.md]
6
+ [114, 131]:DuplicateMethodCall: FlossFunding::Check::ClassMethods#floss_funding_initiate_begging calls '::FlossFunding.add_activated(namespace)' 2 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
7
+ [115, 132]:DuplicateMethodCall: FlossFunding::Check::ClassMethods#floss_funding_initiate_begging calls '::FlossFunding.add_activation_occurrence(namespace)' 2 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
8
+ [108, 122, 137]:DuplicateMethodCall: FlossFunding::Check::ClassMethods#floss_funding_initiate_begging calls '::FlossFunding.add_unactivated(namespace)' 3 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
9
+ [109, 138]:DuplicateMethodCall: FlossFunding::Check::ClassMethods#floss_funding_initiate_begging calls 'start_begging(namespace, env_var_name)' 2 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
10
+ [154, 154]:DuplicateMethodCall: FlossFunding::Check::ClassMethods#now_month calls 'ClassMethods.now_time' 2 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
11
+ [91, 92, 94]:FeatureEnvy: FlossFunding::Check::ClassMethods#check_activation refers to 'words' more than self (maybe move it to another class?) [https://github.com/troessner/reek/blob/v6.5.0/docs/Feature-Envy.md]
12
+ [91]:ManualDispatch: FlossFunding::Check::ClassMethods#check_activation manually dispatches method call [https://github.com/troessner/reek/blob/v6.5.0/docs/Manual-Dispatch.md]
13
+ [105]:TooManyStatements: FlossFunding::Check::ClassMethods#floss_funding_initiate_begging has approx 14 statements [https://github.com/troessner/reek/blob/v6.5.0/docs/Too-Many-Statements.md]
14
+ [52]:UncommunicativeVariableName: FlossFunding::Check::ClassMethods#floss_funding_decrypt has the variable name 's' [https://github.com/troessner/reek/blob/v6.5.0/docs/Uncommunicative-Variable-Name.md]
15
+ [47]:UtilityFunction: FlossFunding::Check::ClassMethods#floss_funding_decrypt doesn't depend on instance state (maybe move it to another class?) [https://github.com/troessner/reek/blob/v6.5.0/docs/Utility-Function.md]
16
+ [153]:UtilityFunction: FlossFunding::Check::ClassMethods#now_month doesn't depend on instance state (maybe move it to another class?) [https://github.com/troessner/reek/blob/v6.5.0/docs/Utility-Function.md]
17
+ lib/floss_funding/config.rb -- 16 warnings:
18
+ [131, 141]:DuplicateMethodCall: FlossFunding::Config#find_config_file calls 'File.dirname(current_dir)' 2 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
19
+ [116, 126]:DuplicateMethodCall: FlossFunding::Config#find_config_file calls 'File.dirname(start_dir)' 2 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
20
+ [129, 139]:DuplicateMethodCall: FlossFunding::Config#find_config_file calls 'File.exist?(candidate)' 2 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
21
+ [128, 138]:DuplicateMethodCall: FlossFunding::Config#find_config_file calls 'File.join(current_dir, CONFIG_FILE_NAME)' 2 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
22
+ [127, 137]:DuplicateMethodCall: FlossFunding::Config#find_config_file calls 'current_dir != "/"' 2 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
23
+ [76, 76, 77, 78]:DuplicateMethodCall: FlossFunding::Config#load_config calls 'gemspec_data[:funding_uri]' 4 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
24
+ [74, 74]:DuplicateMethodCall: FlossFunding::Config#load_config calls 'gemspec_data[:homepage]' 2 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
25
+ [91, 92, 93]:DuplicateMethodCall: FlossFunding::Config#load_config calls 'merged[key]' 3 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
26
+ [76, 78]:DuplicateMethodCall: FlossFunding::Config#load_config calls 'normalize_to_array(gemspec_data[:funding_uri])' 2 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
27
+ [125]:NilCheck: FlossFunding::Config#find_config_file performs a nil-check [https://github.com/troessner/reek/blob/v6.5.0/docs/Nil-Check.md]
28
+ [209]:NilCheck: FlossFunding::Config#normalize_to_array performs a nil-check [https://github.com/troessner/reek/blob/v6.5.0/docs/Nil-Check.md]
29
+ [107]:TooManyStatements: FlossFunding::Config#find_config_file has approx 17 statements [https://github.com/troessner/reek/blob/v6.5.0/docs/Too-Many-Statements.md]
30
+ [46]:TooManyStatements: FlossFunding::Config#load_config has approx 26 statements [https://github.com/troessner/reek/blob/v6.5.0/docs/Too-Many-Statements.md]
31
+ [185]:TooManyStatements: FlossFunding::Config#read_gemspec_data has approx 8 statements [https://github.com/troessner/reek/blob/v6.5.0/docs/Too-Many-Statements.md]
32
+ [60]:UncommunicativeVariableName: FlossFunding::Config#load_config has the variable name 'k' [https://github.com/troessner/reek/blob/v6.5.0/docs/Uncommunicative-Variable-Name.md]
33
+ [60]:UncommunicativeVariableName: FlossFunding::Config#load_config has the variable name 'v' [https://github.com/troessner/reek/blob/v6.5.0/docs/Uncommunicative-Variable-Name.md]
34
+ lib/floss_funding/poke.rb -- 9 warnings:
35
+ [79, 89]:DuplicateMethodCall: FlossFunding::Poke#setup_begging calls '!custom_namespace.empty?' 2 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
36
+ [63, 63, 82, 87]:DuplicateMethodCall: FlossFunding::Poke#setup_begging calls 'base.name' 4 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
37
+ [86, 87, 91]:DuplicateMethodCall: FlossFunding::Poke#setup_begging calls 'config["base_namespaces"]' 3 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
38
+ [88, 89, 92]:DuplicateMethodCall: FlossFunding::Poke#setup_begging calls 'config["custom_namespaces"]' 3 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
39
+ [79, 89]:DuplicateMethodCall: FlossFunding::Poke#setup_begging calls 'custom_namespace.empty?' 2 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
40
+ [59]:LongParameterList: FlossFunding::Poke#setup_begging has 4 parameters [https://github.com/troessner/reek/blob/v6.5.0/docs/Long-Parameter-List.md]
41
+ [63]:ManualDispatch: FlossFunding::Poke#setup_begging manually dispatches method call [https://github.com/troessner/reek/blob/v6.5.0/docs/Manual-Dispatch.md]
42
+ [59]:TooManyStatements: FlossFunding::Poke#setup_begging has approx 18 statements [https://github.com/troessner/reek/blob/v6.5.0/docs/Too-Many-Statements.md]
43
+ [30]:UnusedParameters: FlossFunding::Poke#included has unused parameter 'base' [https://github.com/troessner/reek/blob/v6.5.0/docs/Unused-Parameters.md]
44
+ lib/floss_funding/under_bar.rb -- 2 warnings:
45
+ [32]:TooManyStatements: FlossFunding::UnderBar#env_variable_name has approx 7 statements [https://github.com/troessner/reek/blob/v6.5.0/docs/Too-Many-Statements.md]
46
+ [47]:TooManyStatements: FlossFunding::UnderBar#to_under_bar has approx 6 statements [https://github.com/troessner/reek/blob/v6.5.0/docs/Too-Many-Statements.md]
47
+ lib/floss_funding.rb -- 6 warnings:
48
+ [139, 140, 141]:DuplicateMethodCall: FlossFunding#set_configuration calls 'merged[k]' 3 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
49
+ [184, 189]:NilCheck: FlossFunding#base_words performs a nil-check [https://github.com/troessner/reek/blob/v6.5.0/docs/Nil-Check.md]
50
+ [15]:TooManyConstants: FlossFunding has 8 constants [https://github.com/troessner/reek/blob/v6.5.0/docs/Too-Many-Constants.md]
51
+ [183]:TooManyStatements: FlossFunding#base_words has approx 8 statements [https://github.com/troessner/reek/blob/v6.5.0/docs/Too-Many-Statements.md]
52
+ [131]:TooManyStatements: FlossFunding#set_configuration has approx 10 statements [https://github.com/troessner/reek/blob/v6.5.0/docs/Too-Many-Statements.md]
53
+ [137]:UncommunicativeVariableName: FlossFunding#set_configuration has the variable name 'k' [https://github.com/troessner/reek/blob/v6.5.0/docs/Uncommunicative-Variable-Name.md]
54
+ spec/fixtures/custom_test.rb -- 1 warning:
55
+ [5]:IrresponsibleModule: CustomTest::InnerModule has no descriptive comment [https://github.com/troessner/reek/blob/v6.5.0/docs/Irresponsible-Module.md]
56
+ spec/fixtures/end_hook_script.rb -- 2 warnings:
57
+ [21]:IrresponsibleModule: OtherTest::InnerModule has no descriptive comment [https://github.com/troessner/reek/blob/v6.5.0/docs/Irresponsible-Module.md]
58
+ [15]:IrresponsibleModule: TraditionalTest::InnerModule has no descriptive comment [https://github.com/troessner/reek/blob/v6.5.0/docs/Irresponsible-Module.md]
59
+ spec/fixtures/traditional_test.rb -- 1 warning:
60
+ [5]:IrresponsibleModule: TraditionalTest::InnerModule has no descriptive comment [https://github.com/troessner/reek/blob/v6.5.0/docs/Irresponsible-Module.md]
61
+ spec/floss_funding/bench_fixtures_spec.rb -- 5 warnings:
62
+ [30]:ManualDispatch: enabled_count manually dispatches method call [https://github.com/troessner/reek/blob/v6.5.0/docs/Manual-Dispatch.md]
63
+ [18]:TooManyStatements: load_with_groups has approx 6 statements [https://github.com/troessner/reek/blob/v6.5.0/docs/Too-Many-Statements.md]
64
+ [27]:UncommunicativeVariableName: enabled_count has the variable name 'i' [https://github.com/troessner/reek/blob/v6.5.0/docs/Uncommunicative-Variable-Name.md]
65
+ [21, 22]:UncommunicativeVariableName: load_with_groups has the variable name 'g' [https://github.com/troessner/reek/blob/v6.5.0/docs/Uncommunicative-Variable-Name.md]
66
+ [10]:UncommunicativeVariableName: remove_bench_constants has the variable name 'i' [https://github.com/troessner/reek/blob/v6.5.0/docs/Uncommunicative-Variable-Name.md]
67
+ spec/floss_funding/bench_integration_spec.rb -- 24 warnings:
68
+ [53]:BooleanParameter: build_activation_env has boolean parameter 'unpaid' [https://github.com/troessner/reek/blob/v6.5.0/docs/Boolean-Parameter.md]
69
+ [65]:ControlParameter: build_activation_env is controlled by argument 'unpaid' [https://github.com/troessner/reek/blob/v6.5.0/docs/Control-Parameter.md]
70
+ [59, 65]:DuplicateMethodCall: build_activation_env calls 'env_var_for(row[:namespace])' 2 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
71
+ [58, 63]:DuplicateMethodCall: build_activation_env calls 'keys_rows.each' 2 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
72
+ [59, 64, 65]:DuplicateMethodCall: build_activation_env calls 'row[:namespace]' 3 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
73
+ [59, 64, 65, 65]:FeatureEnvy: build_activation_env refers to 'row' more than self (maybe move it to another class?) [https://github.com/troessner/reek/blob/v6.5.0/docs/Feature-Envy.md]
74
+ [86, 100, 101]:FeatureEnvy: set_percentage_env refers to 'percentage' more than self (maybe move it to another class?) [https://github.com/troessner/reek/blob/v6.5.0/docs/Feature-Envy.md]
75
+ [121]:LongParameterList: bench_step has 5 parameters [https://github.com/troessner/reek/blob/v6.5.0/docs/Long-Parameter-List.md]
76
+ [53]:LongParameterList: build_activation_env has 4 parameters [https://github.com/troessner/reek/blob/v6.5.0/docs/Long-Parameter-List.md]
77
+ [117]:ManualDispatch: enabled_count manually dispatches method call [https://github.com/troessner/reek/blob/v6.5.0/docs/Manual-Dispatch.md]
78
+ [35]:TooManyStatements: activated_bench_namespaces_for_percentage has approx 8 statements [https://github.com/troessner/reek/blob/v6.5.0/docs/Too-Many-Statements.md]
79
+ [121]:TooManyStatements: bench_step has approx 9 statements [https://github.com/troessner/reek/blob/v6.5.0/docs/Too-Many-Statements.md]
80
+ [53]:TooManyStatements: build_activation_env has approx 8 statements [https://github.com/troessner/reek/blob/v6.5.0/docs/Too-Many-Statements.md]
81
+ [16]:TooManyStatements: parsed_keys has approx 6 statements [https://github.com/troessner/reek/blob/v6.5.0/docs/Too-Many-Statements.md]
82
+ [85]:TooManyStatements: set_percentage_env has approx 9 statements [https://github.com/troessner/reek/blob/v6.5.0/docs/Too-Many-Statements.md]
83
+ [47]:UncommunicativeVariableName: activated_bench_namespaces_for_percentage has the variable name 'i' [https://github.com/troessner/reek/blob/v6.5.0/docs/Uncommunicative-Variable-Name.md]
84
+ [114]:UncommunicativeVariableName: enabled_count has the variable name 'i' [https://github.com/troessner/reek/blob/v6.5.0/docs/Uncommunicative-Variable-Name.md]
85
+ [20]:UncommunicativeVariableName: parsed_keys has the variable name 'k2025' [https://github.com/troessner/reek/blob/v6.5.0/docs/Uncommunicative-Variable-Name.md]
86
+ [20]:UncommunicativeVariableName: parsed_keys has the variable name 'k5425' [https://github.com/troessner/reek/blob/v6.5.0/docs/Uncommunicative-Variable-Name.md]
87
+ [74]:UncommunicativeVariableName: remove_bench_constants has the variable name 'i' [https://github.com/troessner/reek/blob/v6.5.0/docs/Uncommunicative-Variable-Name.md]
88
+ [89]:UncommunicativeVariableName: set_percentage_env has the variable name 'g' [https://github.com/troessner/reek/blob/v6.5.0/docs/Uncommunicative-Variable-Name.md]
89
+ [121]:UnusedParameters: bench_step has unused parameter 'options' [https://github.com/troessner/reek/blob/v6.5.0/docs/Unused-Parameters.md]
90
+ [27]:UtilityFunction: env_var_for doesn't depend on instance state (maybe move it to another class?) [https://github.com/troessner/reek/blob/v6.5.0/docs/Utility-Function.md]
91
+ [16]:UtilityFunction: parsed_keys doesn't depend on instance state (maybe move it to another class?) [https://github.com/troessner/reek/blob/v6.5.0/docs/Utility-Function.md]
92
+ spec/floss_funding/non_gem_fixtures_spec.rb -- 3 warnings:
93
+ [30, 30]:DuplicateMethodCall: remove_fixture_constants calls 'fx[:name]' 2 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
94
+ [30, 30]:FeatureEnvy: remove_fixture_constants refers to 'fx' more than self (maybe move it to another class?) [https://github.com/troessner/reek/blob/v6.5.0/docs/Feature-Envy.md]
95
+ [24]:UtilityFunction: env_var_for doesn't depend on instance state (maybe move it to another class?) [https://github.com/troessner/reek/blob/v6.5.0/docs/Utility-Function.md]
96
+ spec/floss_funding/poke_spec.rb -- 1 warning:
97
+ [77]:IrresponsibleModule: DirectIncludeTest has no descriptive comment [https://github.com/troessner/reek/blob/v6.5.0/docs/Irresponsible-Module.md]
98
+ spec/support/bench_gems_generator.rb -- 5 warnings:
99
+ [6]:IrresponsibleModule: FlossFunding::BenchGemsGenerator has no descriptive comment [https://github.com/troessner/reek/blob/v6.5.0/docs/Irresponsible-Module.md]
100
+ [24]:TooManyStatements: FlossFunding::BenchGemsGenerator#generate_one has approx 14 statements [https://github.com/troessner/reek/blob/v6.5.0/docs/Too-Many-Statements.md]
101
+ [24]:UncommunicativeParameterName: FlossFunding::BenchGemsGenerator#generate_one has the parameter name 'i' [https://github.com/troessner/reek/blob/v6.5.0/docs/Uncommunicative-Parameter-Name.md]
102
+ [19]:UncommunicativeVariableName: FlossFunding::BenchGemsGenerator#generate_all has the variable name 'i' [https://github.com/troessner/reek/blob/v6.5.0/docs/Uncommunicative-Variable-Name.md]
103
+ [13]:UncommunicativeVariableName: FlossFunding::BenchGemsGenerator#namespaces has the variable name 'i' [https://github.com/troessner/reek/blob/v6.5.0/docs/Uncommunicative-Variable-Name.md]
104
+ .yard_gfm_support.rb -- 1 warning:
105
+ [9, 9]:FeatureEnvy: KramdownGfmDocument#initialize refers to 'options' more than self (maybe move it to another class?) [https://github.com/troessner/reek/blob/v6.5.0/docs/Feature-Envy.md]
106
+ test/debug_check.rb -- 1 warning:
107
+ [12]:IrresponsibleModule: TestModule::InnerModule has no descriptive comment [https://github.com/troessner/reek/blob/v6.5.0/docs/Irresponsible-Module.md]
108
+ test/test_poke_patterns.rb -- 2 warnings:
109
+ [18]:IrresponsibleModule: CustomTest::InnerModule has no descriptive comment [https://github.com/troessner/reek/blob/v6.5.0/docs/Irresponsible-Module.md]
110
+ [10]:IrresponsibleModule: TraditionalTest::InnerModule has no descriptive comment [https://github.com/troessner/reek/blob/v6.5.0/docs/Irresponsible-Module.md]
111
+ 94 total warnings
data/RUBOCOP.md ADDED
@@ -0,0 +1,60 @@
1
+ # RuboCop Usage Guide
2
+
3
+ ## Overview
4
+
5
+ A tale of two RuboCop plugin gems.
6
+
7
+ ### RuboCop Gradual
8
+
9
+ This project uses `rubocop_gradual` instead of vanilla RuboCop for code style checking. The `rubocop_gradual` tool allows for gradual adoption of RuboCop rules by tracking violations in a lock file.
10
+
11
+ ### RuboCop LTS
12
+
13
+ This project uses `rubocop-lts` to ensure, on a best-effort basis, compatibility with Ruby >= 1.9.2.
14
+ RuboCop rules are meticulously configured by the `rubocop-lts` family of gems to ensure that a project is compatible with a specific version of Ruby. See: https://rubocop-lts.gitlab.io for more.
15
+
16
+ ## Checking RuboCop Violations
17
+
18
+ To check for RuboCop violations in this project, always use:
19
+
20
+ ```bash
21
+ bundle exec rake rubocop_gradual:check
22
+ ```
23
+
24
+ **Do not use** the standard RuboCop commands like:
25
+ - `bundle exec rubocop`
26
+ - `rubocop`
27
+
28
+ ## Understanding the Lock File
29
+
30
+ The `.rubocop_gradual.lock` file tracks all current RuboCop violations in the project. This allows the team to:
31
+
32
+ 1. Prevent new violations while gradually fixing existing ones
33
+ 2. Track progress on code style improvements
34
+ 3. Ensure CI builds don't fail due to pre-existing violations
35
+
36
+ ## Common Commands
37
+
38
+ - **Check violations**
39
+ - `bundle exec rake rubocop_gradual`
40
+ - `bundle exec rake rubocop_gradual:check`
41
+ - **(Safe) Autocorrect violations, and update lockfile if no new violations**
42
+ - `bundle exec rake rubocop_gradual:autocorrect`
43
+ - **Force update the lock file (w/o autocorrect) to match violations present in code**
44
+ - `bundle exec rake rubocop_gradual:force_update`
45
+
46
+ ## Workflow
47
+
48
+ 1. Before submitting a PR, run `bundle exec rake rubocop_gradual:autocorrect`
49
+ a. or just the default `bundle exec rake`, as autocorrection is a pre-requisite of the default task.
50
+ 2. If there are new violations, either:
51
+ - Fix them in your code
52
+ - Run `bundle exec rake rubocop_gradual:force_update` to update the lock file (only for violations you can't fix immediately)
53
+ 3. Commit the updated `.rubocop_gradual.lock` file along with your changes
54
+
55
+ ## Benefits of rubocop_gradual
56
+
57
+ - Allows incremental adoption of code style rules
58
+ - Prevents CI failures due to pre-existing violations
59
+ - Provides a clear record of code style debt
60
+ - Enables focused efforts on improving code quality over time