rubysmith 6.10.0 → 7.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 (105) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/README.adoc +46 -57
  4. data/lib/rubysmith/builder.rb +9 -9
  5. data/lib/rubysmith/builders/abstract.rb +4 -4
  6. data/lib/rubysmith/builders/bundler.rb +2 -2
  7. data/lib/rubysmith/builders/caliber.rb +4 -4
  8. data/lib/rubysmith/builders/circle_ci.rb +3 -3
  9. data/lib/rubysmith/builders/console.rb +3 -3
  10. data/lib/rubysmith/builders/core.rb +6 -6
  11. data/lib/rubysmith/builders/documentation/citation.rb +3 -3
  12. data/lib/rubysmith/builders/documentation/license.rb +8 -9
  13. data/lib/rubysmith/builders/documentation/readme.rb +4 -4
  14. data/lib/rubysmith/builders/documentation/version.rb +4 -5
  15. data/lib/rubysmith/builders/git/commit.rb +4 -8
  16. data/lib/rubysmith/builders/git/ignore.rb +3 -3
  17. data/lib/rubysmith/builders/git/safe.rb +3 -3
  18. data/lib/rubysmith/builders/git/setup.rb +3 -3
  19. data/lib/rubysmith/builders/git_hub/ci.rb +27 -0
  20. data/lib/rubysmith/builders/git_hub/funding.rb +23 -0
  21. data/lib/rubysmith/builders/git_hub/template.rb +32 -0
  22. data/lib/rubysmith/builders/guard.rb +4 -4
  23. data/lib/rubysmith/builders/init.rb +2 -2
  24. data/lib/rubysmith/builders/rake/binstub.rb +24 -0
  25. data/lib/rubysmith/builders/rake/configuration.rb +29 -0
  26. data/lib/rubysmith/builders/reek.rb +3 -3
  27. data/lib/rubysmith/builders/rspec/binstub.rb +3 -3
  28. data/lib/rubysmith/builders/rspec/context.rb +6 -6
  29. data/lib/rubysmith/builders/rspec/helper.rb +3 -3
  30. data/lib/rubysmith/builders/setup.rb +3 -3
  31. data/lib/rubysmith/builders/version.rb +2 -2
  32. data/lib/rubysmith/cli/actions/amazing_print.rb +3 -3
  33. data/lib/rubysmith/cli/actions/caliber.rb +3 -3
  34. data/lib/rubysmith/cli/actions/circle_ci.rb +4 -4
  35. data/lib/rubysmith/cli/actions/citation.rb +3 -3
  36. data/lib/rubysmith/cli/actions/community.rb +3 -3
  37. data/lib/rubysmith/cli/actions/conduct.rb +3 -3
  38. data/lib/rubysmith/cli/actions/console.rb +3 -3
  39. data/lib/rubysmith/cli/actions/contributions.rb +3 -3
  40. data/lib/rubysmith/cli/actions/debug.rb +3 -3
  41. data/lib/rubysmith/cli/actions/funding.rb +4 -4
  42. data/lib/rubysmith/cli/actions/git.rb +3 -3
  43. data/lib/rubysmith/cli/actions/git_hub.rb +3 -3
  44. data/lib/rubysmith/cli/actions/git_hub_ci.rb +3 -3
  45. data/lib/rubysmith/cli/actions/git_lint.rb +3 -3
  46. data/lib/rubysmith/cli/actions/guard.rb +3 -3
  47. data/lib/rubysmith/cli/actions/irb_kit.rb +3 -3
  48. data/lib/rubysmith/cli/actions/license.rb +3 -3
  49. data/lib/rubysmith/cli/actions/maximum.rb +4 -4
  50. data/lib/rubysmith/cli/actions/minimum.rb +4 -4
  51. data/lib/rubysmith/cli/actions/name.rb +2 -2
  52. data/lib/rubysmith/cli/actions/rake.rb +3 -3
  53. data/lib/rubysmith/cli/actions/readme.rb +3 -3
  54. data/lib/rubysmith/cli/actions/reek.rb +3 -3
  55. data/lib/rubysmith/cli/actions/refinements.rb +3 -3
  56. data/lib/rubysmith/cli/actions/rspec.rb +3 -3
  57. data/lib/rubysmith/cli/actions/rtc.rb +3 -3
  58. data/lib/rubysmith/cli/actions/security.rb +3 -3
  59. data/lib/rubysmith/cli/actions/setup.rb +3 -3
  60. data/lib/rubysmith/cli/actions/simple_cov.rb +3 -3
  61. data/lib/rubysmith/cli/actions/versions.rb +3 -3
  62. data/lib/rubysmith/cli/actions/zeitwerk.rb +3 -3
  63. data/lib/rubysmith/cli/commands/build.rb +33 -31
  64. data/lib/rubysmith/cli/shell.rb +0 -1
  65. data/lib/rubysmith/configuration/contract.rb +16 -14
  66. data/lib/rubysmith/configuration/defaults.yml +21 -1
  67. data/lib/rubysmith/configuration/model.rb +30 -28
  68. data/lib/rubysmith/configuration/transformers/git_hub_user.rb +2 -2
  69. data/lib/rubysmith/container.rb +19 -9
  70. data/lib/rubysmith/extensions/bundler.rb +7 -7
  71. data/lib/rubysmith/extensions/pragmater.rb +10 -10
  72. data/lib/rubysmith/extensions/rubocop.rb +7 -7
  73. data/lib/rubysmith/extensions/tocer.rb +8 -8
  74. data/lib/rubysmith/renderers/erb.rb +4 -4
  75. data/lib/rubysmith/templates/%project_name%/.circleci/config.yml.erb +1 -1
  76. data/lib/rubysmith/templates/%project_name%/.github/FUNDING.yml.erb +1 -1
  77. data/lib/rubysmith/templates/%project_name%/.github/workflows/ci.yml.erb +1 -1
  78. data/lib/rubysmith/templates/%project_name%/CITATION.cff.erb +12 -12
  79. data/lib/rubysmith/templates/%project_name%/Gemfile.erb +18 -18
  80. data/lib/rubysmith/templates/%project_name%/LICENSE-apache.adoc.erb +1 -1
  81. data/lib/rubysmith/templates/%project_name%/LICENSE-apache.md.erb +1 -1
  82. data/lib/rubysmith/templates/%project_name%/LICENSE-mit.adoc.erb +1 -1
  83. data/lib/rubysmith/templates/%project_name%/LICENSE-mit.md.erb +1 -1
  84. data/lib/rubysmith/templates/%project_name%/README.adoc.erb +21 -21
  85. data/lib/rubysmith/templates/%project_name%/README.md.erb +21 -21
  86. data/lib/rubysmith/templates/%project_name%/Rakefile.erb +10 -10
  87. data/lib/rubysmith/templates/%project_name%/VERSIONS.adoc.erb +1 -1
  88. data/lib/rubysmith/templates/%project_name%/VERSIONS.md.erb +1 -1
  89. data/lib/rubysmith/templates/%project_name%/bin/console.erb +1 -1
  90. data/lib/rubysmith/templates/%project_name%/bin/setup.erb +1 -1
  91. data/lib/rubysmith/templates/%project_name%/lib/%project_path%.rb.erb +7 -7
  92. data/lib/rubysmith/templates/%project_name%/spec/lib/%project_path%_spec.rb.erb +2 -2
  93. data/lib/rubysmith/templates/%project_name%/spec/spec_helper.rb.erb +4 -4
  94. data/lib/rubysmith/templates/%project_name%/spec/support/shared_contexts/temp_dir.rb.erb +3 -3
  95. data/lib/rubysmith.rb +1 -0
  96. data/rubysmith.gemspec +11 -12
  97. data.tar.gz.sig +0 -0
  98. metadata +28 -43
  99. metadata.gz.sig +4 -2
  100. data/lib/rubysmith/builders/git_hub.rb +0 -39
  101. data/lib/rubysmith/builders/git_hub_ci.rb +0 -25
  102. data/lib/rubysmith/builders/rake.rb +0 -39
  103. data/lib/rubysmith/cli/actions/publish.rb +0 -35
  104. data/lib/rubysmith/configuration/transformers/target_root.rb +0 -18
  105. data/lib/rubysmith/extensions/milestoner.rb +0 -23
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubysmith
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.10.0
4
+ version: 7.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -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-06-16 00:00:00.000000000 Z
38
+ date: 2024-07-10 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: cogger
@@ -57,14 +57,14 @@ dependencies:
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '0.0'
60
+ version: '0.2'
61
61
  type: :runtime
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: '0.0'
67
+ version: '0.2'
68
68
  - !ruby/object:Gem::Dependency
69
69
  name: dry-monads
70
70
  requirement: !ruby/object:Gem::Requirement
@@ -99,126 +99,112 @@ dependencies:
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: '1.6'
102
+ version: '2.1'
103
103
  type: :runtime
104
104
  prerelease: false
105
105
  version_requirements: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: '1.6'
109
+ version: '2.1'
110
110
  - !ruby/object:Gem::Dependency
111
111
  name: gitt
112
112
  requirement: !ruby/object:Gem::Requirement
113
113
  requirements:
114
114
  - - "~>"
115
115
  - !ruby/object:Gem::Version
116
- version: '3.2'
116
+ version: '3.6'
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: '3.2'
123
+ version: '3.6'
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: infusible
126
126
  requirement: !ruby/object:Gem::Requirement
127
127
  requirements:
128
128
  - - "~>"
129
129
  - !ruby/object:Gem::Version
130
- version: '3.5'
131
- type: :runtime
132
- prerelease: false
133
- version_requirements: !ruby/object:Gem::Requirement
134
- requirements:
135
- - - "~>"
136
- - !ruby/object:Gem::Version
137
- version: '3.5'
138
- - !ruby/object:Gem::Dependency
139
- name: milestoner
140
- requirement: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - "~>"
143
- - !ruby/object:Gem::Version
144
- version: '17.8'
130
+ version: '3.8'
145
131
  type: :runtime
146
132
  prerelease: false
147
133
  version_requirements: !ruby/object:Gem::Requirement
148
134
  requirements:
149
135
  - - "~>"
150
136
  - !ruby/object:Gem::Version
151
- version: '17.8'
137
+ version: '3.8'
152
138
  - !ruby/object:Gem::Dependency
153
139
  name: pragmater
154
140
  requirement: !ruby/object:Gem::Requirement
155
141
  requirements:
156
142
  - - "~>"
157
143
  - !ruby/object:Gem::Version
158
- version: '14.6'
144
+ version: '15.0'
159
145
  type: :runtime
160
146
  prerelease: false
161
147
  version_requirements: !ruby/object:Gem::Requirement
162
148
  requirements:
163
149
  - - "~>"
164
150
  - !ruby/object:Gem::Version
165
- version: '14.6'
151
+ version: '15.0'
166
152
  - !ruby/object:Gem::Dependency
167
153
  name: refinements
168
154
  requirement: !ruby/object:Gem::Requirement
169
155
  requirements:
170
156
  - - "~>"
171
157
  - !ruby/object:Gem::Version
172
- version: '12.1'
158
+ version: '12.5'
173
159
  type: :runtime
174
160
  prerelease: false
175
161
  version_requirements: !ruby/object:Gem::Requirement
176
162
  requirements:
177
163
  - - "~>"
178
164
  - !ruby/object:Gem::Version
179
- version: '12.1'
165
+ version: '12.5'
180
166
  - !ruby/object:Gem::Dependency
181
167
  name: rubocop
182
168
  requirement: !ruby/object:Gem::Requirement
183
169
  requirements:
184
170
  - - "~>"
185
171
  - !ruby/object:Gem::Version
186
- version: '1.63'
172
+ version: '1.65'
187
173
  type: :runtime
188
174
  prerelease: false
189
175
  version_requirements: !ruby/object:Gem::Requirement
190
176
  requirements:
191
177
  - - "~>"
192
178
  - !ruby/object:Gem::Version
193
- version: '1.63'
179
+ version: '1.65'
194
180
  - !ruby/object:Gem::Dependency
195
181
  name: runcom
196
182
  requirement: !ruby/object:Gem::Requirement
197
183
  requirements:
198
184
  - - "~>"
199
185
  - !ruby/object:Gem::Version
200
- version: '11.0'
186
+ version: '11.5'
201
187
  type: :runtime
202
188
  prerelease: false
203
189
  version_requirements: !ruby/object:Gem::Requirement
204
190
  requirements:
205
191
  - - "~>"
206
192
  - !ruby/object:Gem::Version
207
- version: '11.0'
193
+ version: '11.5'
208
194
  - !ruby/object:Gem::Dependency
209
195
  name: sod
210
196
  requirement: !ruby/object:Gem::Requirement
211
197
  requirements:
212
198
  - - "~>"
213
199
  - !ruby/object:Gem::Version
214
- version: '0.8'
200
+ version: '0.12'
215
201
  type: :runtime
216
202
  prerelease: false
217
203
  version_requirements: !ruby/object:Gem::Requirement
218
204
  requirements:
219
205
  - - "~>"
220
206
  - !ruby/object:Gem::Version
221
- version: '0.8'
207
+ version: '0.12'
222
208
  - !ruby/object:Gem::Dependency
223
209
  name: spek
224
210
  requirement: !ruby/object:Gem::Requirement
@@ -239,14 +225,14 @@ dependencies:
239
225
  requirements:
240
226
  - - "~>"
241
227
  - !ruby/object:Gem::Version
242
- version: '17.5'
228
+ version: '18.0'
243
229
  type: :runtime
244
230
  prerelease: false
245
231
  version_requirements: !ruby/object:Gem::Requirement
246
232
  requirements:
247
233
  - - "~>"
248
234
  - !ruby/object:Gem::Version
249
- version: '17.5'
235
+ version: '18.0'
250
236
  - !ruby/object:Gem::Dependency
251
237
  name: tone
252
238
  requirement: !ruby/object:Gem::Requirement
@@ -304,11 +290,13 @@ files:
304
290
  - lib/rubysmith/builders/git/ignore.rb
305
291
  - lib/rubysmith/builders/git/safe.rb
306
292
  - lib/rubysmith/builders/git/setup.rb
307
- - lib/rubysmith/builders/git_hub.rb
308
- - lib/rubysmith/builders/git_hub_ci.rb
293
+ - lib/rubysmith/builders/git_hub/ci.rb
294
+ - lib/rubysmith/builders/git_hub/funding.rb
295
+ - lib/rubysmith/builders/git_hub/template.rb
309
296
  - lib/rubysmith/builders/guard.rb
310
297
  - lib/rubysmith/builders/init.rb
311
- - lib/rubysmith/builders/rake.rb
298
+ - lib/rubysmith/builders/rake/binstub.rb
299
+ - lib/rubysmith/builders/rake/configuration.rb
312
300
  - lib/rubysmith/builders/reek.rb
313
301
  - lib/rubysmith/builders/rspec/binstub.rb
314
302
  - lib/rubysmith/builders/rspec/context.rb
@@ -335,7 +323,6 @@ files:
335
323
  - lib/rubysmith/cli/actions/maximum.rb
336
324
  - lib/rubysmith/cli/actions/minimum.rb
337
325
  - lib/rubysmith/cli/actions/name.rb
338
- - lib/rubysmith/cli/actions/publish.rb
339
326
  - lib/rubysmith/cli/actions/rake.rb
340
327
  - lib/rubysmith/cli/actions/readme.rb
341
328
  - lib/rubysmith/cli/actions/reek.rb
@@ -355,11 +342,9 @@ files:
355
342
  - lib/rubysmith/configuration/transformers/git_email.rb
356
343
  - lib/rubysmith/configuration/transformers/git_hub_user.rb
357
344
  - lib/rubysmith/configuration/transformers/git_user.rb
358
- - lib/rubysmith/configuration/transformers/target_root.rb
359
345
  - lib/rubysmith/configuration/transformers/template_root.rb
360
346
  - lib/rubysmith/container.rb
361
347
  - lib/rubysmith/extensions/bundler.rb
362
- - lib/rubysmith/extensions/milestoner.rb
363
348
  - lib/rubysmith/extensions/pragmater.rb
364
349
  - lib/rubysmith/extensions/rubocop.rb
365
350
  - lib/rubysmith/extensions/tocer.rb
@@ -428,7 +413,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
428
413
  - !ruby/object:Gem::Version
429
414
  version: '0'
430
415
  requirements: []
431
- rubygems_version: 3.5.12
416
+ rubygems_version: 3.5.15
432
417
  signing_key:
433
418
  specification_version: 4
434
419
  summary: A command line interface for smithing Ruby projects.
metadata.gz.sig CHANGED
@@ -1,2 +1,4 @@
1
- jn[��&EBQ���cTFݡ.Z!�¬��5�F��'#I���以v��R*��ʱ#j��j7 �.i$V(4�J���N)$����-�|E" bR��}0���!��o��s��:s�{��a"��Z$[{�D>�uiP�LF���|,���=�`��w�c����k ��'���4�(g�����{P�
2
- }Tm���,�'�����D}`Q��w���W*5�'�ٛ�]�Ǻ�/
1
+ ���R4ٕ�NHxӘ\?���&��:�­�T{RCh�BM5�l����b��n�� ���ul�#�"@��� 6��
2
+ Ԏ��r����6jޔ @!�1�
3
+ ��=��(;E� ���l��Z��{7
4
+ ӟA堹(5����o�G���ٺ&\m���s�t@$r��cΞ�WL��ݕ��xg&\Aǽ�L���ˮ M��Q����6�L��Bnf?���o�R��k��O�b��Zi��k��$�a=i����djgu����à�.�ܨr�0����w7+Ɏp4Jv�J�'������x��2 ��tRpZ4�'����N$��ʚ�k��A��U���>��o�gnjh��K�H��g2�����^Z}2��Z�9Z�f����;J
@@ -1,39 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "refinements/struct"
4
-
5
- module Rubysmith
6
- module Builders
7
- # Builds project skeleton GitHub templates.
8
- class GitHub < Abstract
9
- using Refinements::Struct
10
-
11
- def call
12
- render_funding
13
-
14
- return configuration unless configuration.build_git_hub
15
-
16
- builder.call(with_issue_template).render
17
- builder.call(with_pull_request_template).render
18
- configuration
19
- end
20
-
21
- private
22
-
23
- def render_funding
24
- return unless configuration.build_funding
25
-
26
- configuration.merge(template_path: "%project_name%/.github/FUNDING.yml.erb")
27
- .then { |updated_configuration| builder.call(updated_configuration).render }
28
- end
29
-
30
- def with_issue_template
31
- configuration.merge template_path: "%project_name%/.github/ISSUE_TEMPLATE.md.erb"
32
- end
33
-
34
- def with_pull_request_template
35
- configuration.merge template_path: "%project_name%/.github/PULL_REQUEST_TEMPLATE.md.erb"
36
- end
37
- end
38
- end
39
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "refinements/struct"
4
-
5
- module Rubysmith
6
- module Builders
7
- # Builds project skeleton GitHub CI template.
8
- class GitHubCI < Abstract
9
- using Refinements::Struct
10
-
11
- def call
12
- return configuration unless configuration.build_git_hub_ci
13
-
14
- builder.call(configuration_with_template).render.replace(/\n\n\Z/, "\n")
15
- configuration
16
- end
17
-
18
- private
19
-
20
- def configuration_with_template
21
- configuration.merge template_path: "%project_name%/.github/workflows/ci.yml.erb"
22
- end
23
- end
24
- end
25
- end
@@ -1,39 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "refinements/struct"
4
-
5
- module Rubysmith
6
- module Builders
7
- # Builds project skeleton Rake support.
8
- class Rake < Abstract
9
- using Refinements::Struct
10
-
11
- def call
12
- return configuration unless configuration.build_rake
13
-
14
- add_binstub
15
- add_configuration
16
- configuration
17
- end
18
-
19
- private
20
-
21
- def add_binstub
22
- builder.call(configuration.merge(template_path: "%project_name%/bin/rake.erb"))
23
- .render
24
- .permit 0o755
25
- end
26
-
27
- def add_configuration
28
- builder.call(configuration.merge(template_path: "%project_name%/Rakefile.erb"))
29
- .render
30
- .replace(/\[\s+/, "[")
31
- .replace(/\s+\]/, "]")
32
- .replace(" ", "")
33
- .replace("task.options", " task.options")
34
- .replace(/\n+(?=require)/, "\n")
35
- .replace(/\n{2,}/, "\n\n")
36
- end
37
- end
38
- end
39
- end
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "milestoner"
4
- require "refinements/struct"
5
- require "sod"
6
-
7
- module Rubysmith
8
- module CLI
9
- module Actions
10
- # Publishes project.
11
- class Publish < Sod::Action
12
- include Import[:input]
13
-
14
- using ::Refinements::Struct
15
-
16
- description "Publish milestone."
17
-
18
- on %w[-p --publish], argument: "[VERSION]"
19
-
20
- default { Milestoner::Commits::Versioner.new.call }
21
-
22
- def initialize(extension: Extensions::Milestoner, **)
23
- super(**)
24
- @extension = extension
25
- end
26
-
27
- def call(version = nil) = extension.call input.merge(project_version: version || default)
28
-
29
- private
30
-
31
- attr_reader :extension
32
- end
33
- end
34
- end
35
- end
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "dry/monads"
4
-
5
- module Rubysmith
6
- module Configuration
7
- # Sets target root which defaults to current directory when key is missing.
8
- module Transformers
9
- include Dry::Monads[:result]
10
-
11
- TargetRoot = lambda do |attributes, key = :target_root, path: Pathname.pwd|
12
- attributes.fetch(:target_root) { path }
13
- .then { |value| attributes.merge! key => value }
14
- .then { |updated_attributes| Dry::Monads::Success updated_attributes }
15
- end
16
- end
17
- end
18
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "milestoner"
4
-
5
- module Rubysmith
6
- module Extensions
7
- # Ensures project can be published (tagged) in a reliable and consistent fashion.
8
- class Milestoner
9
- def self.call(...) = new(...).call
10
-
11
- def initialize configuration, client: ::Milestoner::Tags::Publisher.new
12
- @configuration = configuration
13
- @client = client
14
- end
15
-
16
- def call = client.call(configuration.project_version) && configuration
17
-
18
- private
19
-
20
- attr_reader :configuration, :client
21
- end
22
- end
23
- end