gemsmith 18.9.0 → 19.1.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: 9903084baac0bbc66aec044900a169bad7727f1eba0fb62ff22d1c024bd6d50a
4
- data.tar.gz: 122d01ed4082d3f90caccf5b0e5a61d54f1cbf7f83edab61346783edb844f041
3
+ metadata.gz: 6b004535de235f70328a5c2066cb67c63c6d54140e8acdea5d7d84bd87b8b9c3
4
+ data.tar.gz: a970a4b45d2420421612dce9ee84365641fafe3e26d2a8d68b375951e66d3d80
5
5
  SHA512:
6
- metadata.gz: efe12bd5be6671d8b5a4cda0fe14a5b99b89761cf300d22e0e51757898bb58b51197554fc1b2cb840535cc75cd4938d37e84990986b861cee95c14599d7c91f6
7
- data.tar.gz: 244b8332e0a34f96467551b920385f5120e428c0fc57cdc2ac6f51964c645cda89ef83ab5a9c38b3a057e60f714dae62d7b13b5bd9547726baf48de7c0310acb
6
+ metadata.gz: d1d8cb1535e9ccf9cc1976d48bf443d2f7aff825c845e29dc798f11658c7c5f48bc3cfdb809cee8b4a56224001c29cd2b673662a783268bf0aaf350992f92d67
7
+ data.tar.gz: c68c396163452c2382190b495b1e67df7a80aeb472f3ebfd3ea19a7c516930175f15f0b06d0226539a4865c0ede8b5b466f04a9e50a37ce9b889ed0433ac7dc0
checksums.yaml.gz.sig CHANGED
@@ -1,3 +1,2 @@
1
- �:�h_��8phSJ
2
- P�<�=:���
3
- ��ŋ|u� ��]���G�3�u�t�[Yڅ�H#�uJlBٲ���g"Q���+�����D�����y�:����R�P��oS"�cW�a ��?l��?�5�;��UG6��|�����/�J�Jc�h�~�}�ae�ͩ =�@�����"M:z�UΣPs�|�#I�u�u�~Q}�f��f�1]�Ŕ�(�s3�s�ܻ›��e��a�E��]�?�Z
1
+ ���Eaŀ�#kp
2
+ f��w���=�
data/README.adoc CHANGED
@@ -53,7 +53,6 @@ USAGE:
53
53
 
54
54
  BUILD OPTIONS:
55
55
  --[no-]amazing_print Add Amazing Print gem. Default: true.
56
- --[no-]bundler-leak Add Bundler Leak gem. Default: true.
57
56
  --[no-]caliber Add Caliber gem. Default: true.
58
57
  --[no-]circle_ci Add Circle CI configuration and badge. Default: false.
59
58
  --[no-]citation Add citation documentation. Default: true.
@@ -65,6 +64,7 @@ BUILD OPTIONS:
65
64
  --[no-]funding Add GitHub funding configuration. Default: false.
66
65
  --[no-]git Add Git. Default: true.
67
66
  --[no-]git_hub Add GitHub templates. Default: false.
67
+ --[no-]git_hub_ci Add GitHub templates. Default: false.
68
68
  --[no-]git-lint Add Git Lint gem. Default: true.
69
69
  --[no-]guard Add Guard gem. Default: true.
70
70
  --[no-]license Add license documentation. Default: true.
data/gemsmith.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "gemsmith"
5
- spec.version = "18.9.0"
5
+ spec.version = "19.1.0"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
8
  spec.homepage = "https://www.alchemists.io/projects/gemsmith"
@@ -22,17 +22,17 @@ Gem::Specification.new do |spec|
22
22
  spec.signing_key = Gem.default_key_path
23
23
  spec.cert_chain = [Gem.default_cert_path]
24
24
 
25
- spec.required_ruby_version = "~> 3.1"
26
- spec.add_dependency "cogger", "~> 0.4"
25
+ spec.required_ruby_version = "~> 3.2"
26
+ spec.add_dependency "cogger", "~> 0.5"
27
27
  spec.add_dependency "dry-container", "~> 0.11"
28
- spec.add_dependency "dry-monads", "~> 1.5"
29
- spec.add_dependency "infusible", "~> 0.2"
30
- spec.add_dependency "milestoner", "~> 14.5"
31
- spec.add_dependency "refinements", "~> 9.7"
32
- spec.add_dependency "rubysmith", "~> 3.8"
33
- spec.add_dependency "runcom", "~> 8.7"
34
- spec.add_dependency "spek", "~> 0.6"
35
- spec.add_dependency "versionaire", "~> 10.6"
28
+ spec.add_dependency "dry-monads", "~> 1.6"
29
+ spec.add_dependency "infusible", "~> 1.0"
30
+ spec.add_dependency "milestoner", "~> 15.1"
31
+ spec.add_dependency "refinements", "~> 10.0"
32
+ spec.add_dependency "rubysmith", "~> 4.2"
33
+ spec.add_dependency "runcom", "~> 9.0"
34
+ spec.add_dependency "spek", "~> 1.0"
35
+ spec.add_dependency "versionaire", "~> 11.0"
36
36
  spec.add_dependency "zeitwerk", "~> 2.6"
37
37
 
38
38
  spec.bindir = "exe"
@@ -34,10 +34,8 @@ module Gemsmith
34
34
  attr_reader :configuration, :builder
35
35
 
36
36
  def body
37
- <<~CONTENT
38
- Generated with [#{specification.label}](#{specification.homepage_url})
39
- #{specification.version}.
40
- CONTENT
37
+ "Generated with [#{specification.label}](#{specification.homepage_url}) " \
38
+ "#{specification.version}."
41
39
  end
42
40
 
43
41
  def project_name = configuration.project_name
@@ -31,6 +31,7 @@ module Gemsmith
31
31
  Rubysmith::Builders::GitHub,
32
32
  Rubysmith::Builders::Guard,
33
33
  Rubysmith::Builders::Reek,
34
+ Rubysmith::Builders::RSpec::Binstub,
34
35
  Rubysmith::Builders::RSpec::Context,
35
36
  Rubysmith::Builders::RSpec::Helper,
36
37
  Builders::RSpec::Helper,
@@ -1,50 +1,32 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "pathname"
4
- require "refinements/arrays"
5
- require "refinements/hashes"
6
3
  require "refinements/structs"
7
4
  require "runcom"
8
- require "yaml"
9
5
 
10
6
  module Gemsmith
11
7
  module Configuration
12
8
  # Represents the fully assembled Command Line Interface (CLI) configuration.
13
- class Loader
14
- using Refinements::Arrays
15
- using Refinements::Hashes
9
+ class Loader < Rubysmith::Configuration::Loader
16
10
  using Refinements::Structs
17
11
 
18
12
  DEFAULTS = Rubysmith::Configuration::Loader::DEFAULTS
19
13
  CLIENT = Runcom::Config.new "gemsmith/configuration.yml", defaults: DEFAULTS
20
14
 
21
- ENHANCERS = Rubysmith::Configuration::Loader::ENHANCERS.including(Enhancers::TemplateRoot.new)
22
- .freeze
23
-
24
- def self.call(...) = new(...).call
25
-
26
- def self.with_defaults = new(client: DEFAULTS, enhancers: [])
27
-
28
- def self.with_overrides = new(client: DEFAULTS, enhancers: [Enhancers::TemplateRoot.new])
29
-
30
- def initialize content: Rubysmith::Configuration::Content.new,
31
- client: CLIENT,
32
- enhancers: ENHANCERS
33
- @content = content
34
- @client = client
35
- @enhancers = enhancers
15
+ def self.with_overrides
16
+ new client: DEFAULTS,
17
+ enhancers: {template_root: Rubysmith::Configuration::Enhancers::TemplateRoot}
36
18
  end
37
19
 
38
- def call
39
- enhancers.reduce(preload_content) { |preload, enhancer| enhancer.call preload }
40
- .freeze
20
+ def initialize client: CLIENT, **dependencies
21
+ super
41
22
  end
42
23
 
43
- private
44
-
45
- attr_reader :content, :client, :enhancers
24
+ def call
25
+ return super unless enhancers.key? :template_root
46
26
 
47
- def preload_content = content.merge(**client.to_h.flatten_keys)
27
+ enhancers[:template_root].call(super, overrides: Pathname(__dir__).join("../templates"))
28
+ .freeze
29
+ end
48
30
  end
49
31
  end
50
32
  end
@@ -35,20 +35,23 @@ Gem::Specification.new do |spec|
35
35
  <% end %>
36
36
 
37
37
  spec.required_ruby_version = "~> <%= RUBY_VERSION[/\d+\.\d+/] %>"
38
+ <% if configuration.build_cli %>
39
+ spec.add_dependency "cogger", "~> 0.5"
40
+ <% end %>
38
41
  <% if configuration.build_cli %>
39
42
  spec.add_dependency "dry-container", "~> 0.11"
40
43
  <% end %>
41
44
  <% if configuration.build_cli %>
42
- spec.add_dependency "infusible", "~> 0.2"
45
+ spec.add_dependency "infusible", "~> 1.0"
43
46
  <% end %>
44
47
  <% if configuration.build_refinements %>
45
- spec.add_dependency "refinements", "~> 9.7"
48
+ spec.add_dependency "refinements", "~> 10.0"
46
49
  <% end %>
47
50
  <% if configuration.build_cli %>
48
- spec.add_dependency "runcom", "~> 8.7"
51
+ spec.add_dependency "runcom", "~> 9.0"
49
52
  <% end %>
50
53
  <% if configuration.build_cli %>
51
- spec.add_dependency "spek", "~> 0.6"
54
+ spec.add_dependency "spek", "~> 1.0"
52
55
  <% end %>
53
56
  <% if configuration.build_zeitwerk %>
54
57
  spec.add_dependency "zeitwerk", "~> 2.6"
data/lib/gemsmith.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "zeitwerk"
4
3
  require "rubysmith"
4
+ require "zeitwerk"
5
5
 
6
6
  Zeitwerk::Loader.for_gem.then do |loader|
7
7
  loader.inflector.inflect "cli" => "CLI", "circle_ci" => "CircleCI", "rspec" => "RSpec"
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gemsmith
3
3
  version: !ruby/object:Gem::Version
4
- version: 18.9.0
4
+ version: 19.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -28,7 +28,7 @@ cert_chain:
28
28
  CxDe2+VuChj4I1nvIHdu+E6XoEVlanUPKmSg6nddhkKn2gC45Kyzh6FZqnzH/CRp
29
29
  RFE=
30
30
  -----END CERTIFICATE-----
31
- date: 2022-10-22 00:00:00.000000000 Z
31
+ date: 2023-01-01 00:00:00.000000000 Z
32
32
  dependencies:
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: cogger
@@ -36,14 +36,14 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '0.4'
39
+ version: '0.5'
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '0.4'
46
+ version: '0.5'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: dry-container
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -64,112 +64,112 @@ dependencies:
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: '1.5'
67
+ version: '1.6'
68
68
  type: :runtime
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: '1.5'
74
+ version: '1.6'
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: infusible
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: '0.2'
81
+ version: '1.0'
82
82
  type: :runtime
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: '0.2'
88
+ version: '1.0'
89
89
  - !ruby/object:Gem::Dependency
90
90
  name: milestoner
91
91
  requirement: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
- version: '14.5'
95
+ version: '15.1'
96
96
  type: :runtime
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: '14.5'
102
+ version: '15.1'
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: refinements
105
105
  requirement: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: '9.7'
109
+ version: '10.0'
110
110
  type: :runtime
111
111
  prerelease: false
112
112
  version_requirements: !ruby/object:Gem::Requirement
113
113
  requirements:
114
114
  - - "~>"
115
115
  - !ruby/object:Gem::Version
116
- version: '9.7'
116
+ version: '10.0'
117
117
  - !ruby/object:Gem::Dependency
118
118
  name: rubysmith
119
119
  requirement: !ruby/object:Gem::Requirement
120
120
  requirements:
121
121
  - - "~>"
122
122
  - !ruby/object:Gem::Version
123
- version: '3.8'
123
+ version: '4.2'
124
124
  type: :runtime
125
125
  prerelease: false
126
126
  version_requirements: !ruby/object:Gem::Requirement
127
127
  requirements:
128
128
  - - "~>"
129
129
  - !ruby/object:Gem::Version
130
- version: '3.8'
130
+ version: '4.2'
131
131
  - !ruby/object:Gem::Dependency
132
132
  name: runcom
133
133
  requirement: !ruby/object:Gem::Requirement
134
134
  requirements:
135
135
  - - "~>"
136
136
  - !ruby/object:Gem::Version
137
- version: '8.7'
137
+ version: '9.0'
138
138
  type: :runtime
139
139
  prerelease: false
140
140
  version_requirements: !ruby/object:Gem::Requirement
141
141
  requirements:
142
142
  - - "~>"
143
143
  - !ruby/object:Gem::Version
144
- version: '8.7'
144
+ version: '9.0'
145
145
  - !ruby/object:Gem::Dependency
146
146
  name: spek
147
147
  requirement: !ruby/object:Gem::Requirement
148
148
  requirements:
149
149
  - - "~>"
150
150
  - !ruby/object:Gem::Version
151
- version: '0.6'
151
+ version: '1.0'
152
152
  type: :runtime
153
153
  prerelease: false
154
154
  version_requirements: !ruby/object:Gem::Requirement
155
155
  requirements:
156
156
  - - "~>"
157
157
  - !ruby/object:Gem::Version
158
- version: '0.6'
158
+ version: '1.0'
159
159
  - !ruby/object:Gem::Dependency
160
160
  name: versionaire
161
161
  requirement: !ruby/object:Gem::Requirement
162
162
  requirements:
163
163
  - - "~>"
164
164
  - !ruby/object:Gem::Version
165
- version: '10.6'
165
+ version: '11.0'
166
166
  type: :runtime
167
167
  prerelease: false
168
168
  version_requirements: !ruby/object:Gem::Requirement
169
169
  requirements:
170
170
  - - "~>"
171
171
  - !ruby/object:Gem::Version
172
- version: '10.6'
172
+ version: '11.0'
173
173
  - !ruby/object:Gem::Dependency
174
174
  name: zeitwerk
175
175
  requirement: !ruby/object:Gem::Requirement
@@ -219,7 +219,6 @@ files:
219
219
  - lib/gemsmith/cli/parsers/build.rb
220
220
  - lib/gemsmith/cli/parsers/core.rb
221
221
  - lib/gemsmith/cli/shell.rb
222
- - lib/gemsmith/configuration/enhancers/template_root.rb
223
222
  - lib/gemsmith/configuration/loader.rb
224
223
  - lib/gemsmith/container.rb
225
224
  - lib/gemsmith/import.rb
@@ -273,14 +272,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
273
272
  requirements:
274
273
  - - "~>"
275
274
  - !ruby/object:Gem::Version
276
- version: '3.1'
275
+ version: '3.2'
277
276
  required_rubygems_version: !ruby/object:Gem::Requirement
278
277
  requirements:
279
278
  - - ">="
280
279
  - !ruby/object:Gem::Version
281
280
  version: '0'
282
281
  requirements: []
283
- rubygems_version: 3.3.24
282
+ rubygems_version: 3.4.1
284
283
  signing_key:
285
284
  specification_version: 4
286
285
  summary: A command line interface for smithing Ruby gems.
metadata.gz.sig CHANGED
Binary file
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Gemsmith
4
- module Configuration
5
- module Enhancers
6
- # Adds gem specific roots to existing content.
7
- class TemplateRoot
8
- def initialize overrides = Pathname(__dir__).join("../../templates")
9
- @overrides = Array overrides
10
- end
11
-
12
- def call(content) = content.add_template_roots(overrides)
13
-
14
- private
15
-
16
- attr_reader :overrides
17
- end
18
- end
19
- end
20
- end