caliber 0.50.0 → 0.52.0

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: 5e7a1033cb425d798e602a3a706bcc7223782cac9d711d45c1b3060d4a4bb828
4
- data.tar.gz: a7b939a6b4cd1479508a18f1af2e72930d884fe7fc6c78475740464f503247a3
3
+ metadata.gz: 03ef9e509842c030139692644b4dde8a99fcfc596338eb82cf9fb095f0af4160
4
+ data.tar.gz: 40ecc02698b9dfb3d25a416942ff11b49b1b67208d765a4b4aeba856e72a12ca
5
5
  SHA512:
6
- metadata.gz: 8454458ac0ed7d3cd0da41fc6f9c34d6b24d2eb76e4ea14a8939fe301922a0e29b11b9b4689e784fb3880603e79e50bc6b8b3bc4b9ff15258ab1e73fc5babfc5
7
- data.tar.gz: 3ecce3cf41490ea1d94982890d1959f953eb18ceb0b1f7e90a2c58df06557806082af777e687ccac7476d05ed45cb392152837030107947141bbc56733657457
6
+ metadata.gz: 62fbe47abd8dad48d2fa46a43c75b58d72b90448c28921cc51f79b854771e70ce082dff58a5d6c4826343b9673a361fdcf12951b2ecf2bbd37fb948dd650fab6
7
+ data.tar.gz: 475f059c2703b912cce667f19b99401bdaf05c84890b7b54dbe9e33734ea5eeb7029737d25ab39b768a58fafd3e82e3e0c9a5fce5bd7430894f9a750e8fabd35
checksums.yaml.gz.sig CHANGED
Binary file
data/README.adoc CHANGED
@@ -2,15 +2,16 @@
2
2
  :toclevels: 5
3
3
  :figure-caption!:
4
4
 
5
- :rubocop_link: link:https://docs.rubocop.org/rubocop[RuboCop]
6
5
  :rubocop_capybara_link: link:https://docs.rubocop.org/rubocop-capybara[RuboCop Capybara]
7
6
  :rubocop_disable_syntax_link: link:https://github.com/fatkodima/rubocop-disable_syntax[RuboCop Disable Syntax]
8
7
  :rubocop_factory_bot_link: link:https://docs.rubocop.org/rubocop-factory_bot/[RuboCop FactoryBot]
8
+ :rubocop_link: link:https://docs.rubocop.org/rubocop[RuboCop]
9
9
  :rubocop_packaging_link: link:https://docs.rubocop.org/rubocop-packaging[RuboCop Packaging]
10
10
  :rubocop_performance_link: link:https://docs.rubocop.org/rubocop-performance[RuboCop Performance]
11
- :rubocop_thread_safety_link: link:https://github.com/rubocop/rubocop-thread_safety[RuboCop Thread Safety]
12
11
  :rubocop_rake_link: link:https://docs.rubocop.org/rubocop-rspec[RuboCop Rake]
13
12
  :rubocop_rspec_link: link:https://docs.rubocop.org/rubocop-rspec[RuboCop RSpec]
13
+ :rubocop_thread_safety_link: link:https://github.com/rubocop/rubocop-thread_safety[RuboCop Thread Safety]
14
+ :xdg_configuration_link: link:https://alchemists.io/articles/xdg_base_directory_specification[XDG Base Directory Specification]
14
15
 
15
16
  = Caliber
16
17
 
@@ -291,6 +292,26 @@ require:
291
292
 
292
293
  Adding additional RuboCop gems only requires adding them to your YAML configuration.
293
294
 
295
+ === Command Line Interface (CLI)
296
+
297
+ ⚠️ This is experimental but might be of interest to anyone using RuboCop's local {xdg_configuration_link} (highly recommend).
298
+
299
+ At the moment, RuboCop doesn't have native functionality for handling these updates and this CLI is one solution to that problem (see this link:https://github.com/rubocop/rubocop/issues/12729[issue] for details). So this CLI automates the updating of outstanding issues you have not resolved for your RuboCop configuration (i.e. `.rubocop_todo.yml`) and is handy when you've fixed issues and want to update your configuration to reflect these changes. The CLI assumes you are using the following structure:
300
+
301
+ ....
302
+ .config/rubocop/config.yml
303
+ .config/rubocop/issues.yml
304
+ ....
305
+
306
+ ...and that you have this line in `.config/rubocop/config.yml`:
307
+
308
+ [source,yaml]
309
+ ----
310
+ inherit_from: issues.yml
311
+ ----
312
+
313
+ Assuming the above is true, you can run the `caliber` CLI and follow the prompts for either updating your outstanding issues or exiting. Upon competition, the CLI will update your `.config/rubocop/issues.yml` so you can commit these updates/changes to your repository.
314
+
294
315
  == Development
295
316
 
296
317
  To contribute, run:
data/caliber.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "caliber"
5
- spec.version = "0.50.0"
5
+ spec.version = "0.52.0"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
8
  spec.homepage = "https://alchemists.io/projects/caliber"
@@ -23,14 +23,16 @@ Gem::Specification.new do |spec|
23
23
  spec.cert_chain = [Gem.default_cert_path]
24
24
 
25
25
  spec.required_ruby_version = "~> 3.3"
26
- spec.add_dependency "rubocop", "~> 1.60"
26
+ spec.add_dependency "rubocop", "~> 1.61"
27
27
  spec.add_dependency "rubocop-disable_syntax", "~> 0.1"
28
28
  spec.add_dependency "rubocop-packaging", "~> 0.5"
29
- spec.add_dependency "rubocop-performance", "~> 1.20"
29
+ spec.add_dependency "rubocop-performance", "~> 1.21"
30
30
  spec.add_dependency "rubocop-rake", "~> 0.6"
31
- spec.add_dependency "rubocop-rspec", "~> 2.26"
31
+ spec.add_dependency "rubocop-rspec", "~> 2.27.1"
32
32
  spec.add_dependency "rubocop-thread_safety", "~> 0.5"
33
33
 
34
+ spec.bindir = "exe"
35
+ spec.executables << "caliber"
34
36
  spec.extra_rdoc_files = Dir["README*", "LICENSE*"]
35
37
  spec.files = Dir["*.gemspec", "config/**/*", "lib/**/*"]
36
38
  end
data/config/rspec.yml CHANGED
@@ -62,6 +62,8 @@ RSpec/IdenticalEqualityAssertion:
62
62
  Enabled: true
63
63
  RSpec/IndexedLet:
64
64
  Enabled: true
65
+ RSpec/IsExpectedSpecify:
66
+ Enabled: true
65
67
  RSpec/MatchArray:
66
68
  Enabled: true
67
69
  RSpec/MetadataStyle:
@@ -80,6 +82,8 @@ RSpec/RedundantPredicateMatcher:
80
82
  Enabled: true
81
83
  RSpec/RemoveConst:
82
84
  Enabled: true
85
+ RSpec/RepeatedSubjectCall:
86
+ Enabled: true
83
87
  RSpec/Rails/AvoidSetupHook:
84
88
  Enabled: true
85
89
  RSpec/Rails/HaveHttpStatus:
data/exe/caliber ADDED
@@ -0,0 +1,82 @@
1
+ #! /usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require "pathname"
5
+
6
+ PATHS = {
7
+ xdg_config: ".config/rubocop/config.yml",
8
+ xdg_issues: ".config/rubocop/issues.yml",
9
+ config: ".rubocop.yml",
10
+ todo: ".rubocop_todo.yml"
11
+ }.freeze
12
+
13
+ class Updater
14
+ def initialize root: Pathname.pwd, paths: PATHS
15
+ @root = root
16
+ @paths = paths
17
+ end
18
+
19
+ def call
20
+ prompt
21
+ check_xdg_configuration
22
+ check_standard_configuration
23
+ copy_configuration
24
+ remove_inheritance
25
+ generate_issues
26
+ apply_changes
27
+ end
28
+
29
+ private
30
+
31
+ attr_reader :root, :paths
32
+
33
+ def prompt
34
+ puts "Update RuboCop configuration with outstanding issues (y/n)?"
35
+
36
+ return if gets.chomp == "y"
37
+
38
+ puts "RuboCop configuration update canceled."
39
+ exit
40
+ end
41
+
42
+ def check_xdg_configuration
43
+ return if full_path(:xdg_config).exist?
44
+
45
+ abort "RuboCop XDG configuration must exist before proceeding."
46
+ end
47
+
48
+ def check_standard_configuration
49
+ return unless full_path(:config).exist?
50
+
51
+ abort "RuboCop configuration exists. Please use a XDG configuration instead."
52
+ end
53
+
54
+ def copy_configuration = full_path(:config).write full_path(:xdg_config).read
55
+
56
+ def generate_issues = system "bundle exec rubocop --auto-gen-config"
57
+
58
+ def remove_inheritance
59
+ full_path(:config).then do |path|
60
+ content = path.read.sub(/inherit_from:\s(issues|\.rubocop_todo.).yml/, "")
61
+ path.write content
62
+ end
63
+ end
64
+
65
+ def apply_changes
66
+ config_path = full_path :config
67
+ todo_path = full_path :todo
68
+
69
+ if todo_path.empty?
70
+ puts "No changes were detected."
71
+ else
72
+ full_path(:xdg_issues).write todo_path.read
73
+ end
74
+
75
+ config_path.delete
76
+ todo_path.delete
77
+ end
78
+
79
+ def full_path(key) = root.join(paths.fetch(key))
80
+ end
81
+
82
+ Updater.new.call
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,12 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: caliber
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.50.0
4
+ version: 0.52.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
@@ -35,7 +35,7 @@ cert_chain:
35
35
  3n5C8/6Zh9DYTkpcwPSuIfAga6wf4nXc9m6JAw8AuMLaiWN/r/2s4zJsUHYERJEu
36
36
  gZGm4JqtuSg8pYjPeIJxS960owq+SfuC+jxqmRA54BisFCv/0VOJi7tiJVY=
37
37
  -----END CERTIFICATE-----
38
- date: 2024-01-28 00:00:00.000000000 Z
38
+ date: 2024-03-30 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: rubocop
@@ -43,14 +43,14 @@ dependencies:
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '1.60'
46
+ version: '1.61'
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '1.60'
53
+ version: '1.61'
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: rubocop-disable_syntax
56
56
  requirement: !ruby/object:Gem::Requirement
@@ -85,14 +85,14 @@ dependencies:
85
85
  requirements:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: '1.20'
88
+ version: '1.21'
89
89
  type: :runtime
90
90
  prerelease: false
91
91
  version_requirements: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
- version: '1.20'
95
+ version: '1.21'
96
96
  - !ruby/object:Gem::Dependency
97
97
  name: rubocop-rake
98
98
  requirement: !ruby/object:Gem::Requirement
@@ -113,14 +113,14 @@ dependencies:
113
113
  requirements:
114
114
  - - "~>"
115
115
  - !ruby/object:Gem::Version
116
- version: '2.26'
116
+ version: 2.27.1
117
117
  type: :runtime
118
118
  prerelease: false
119
119
  version_requirements: !ruby/object:Gem::Requirement
120
120
  requirements:
121
121
  - - "~>"
122
122
  - !ruby/object:Gem::Version
123
- version: '2.26'
123
+ version: 2.27.1
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: rubocop-thread_safety
126
126
  requirement: !ruby/object:Gem::Requirement
@@ -138,7 +138,8 @@ dependencies:
138
138
  description:
139
139
  email:
140
140
  - brooke@alchemists.io
141
- executables: []
141
+ executables:
142
+ - caliber
142
143
  extensions: []
143
144
  extra_rdoc_files:
144
145
  - README.adoc
@@ -157,6 +158,7 @@ files:
157
158
  - config/rspec.yml
158
159
  - config/ruby.yml
159
160
  - config/thread.yml
161
+ - exe/caliber
160
162
  - lib/caliber.rb
161
163
  homepage: https://alchemists.io/projects/caliber
162
164
  licenses:
@@ -184,7 +186,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
184
186
  - !ruby/object:Gem::Version
185
187
  version: '0'
186
188
  requirements: []
187
- rubygems_version: 3.5.5
189
+ rubygems_version: 3.5.7
188
190
  signing_key:
189
191
  specification_version: 4
190
192
  summary: A global, high quality, and constantly updated RuboCop configuration.
metadata.gz.sig CHANGED
Binary file