rubysmith 4.2.0 → 4.4.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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/README.adoc +3 -3
- data/lib/rubysmith/builder.rb +10 -4
- data/lib/rubysmith/builders/core.rb +2 -1
- data/lib/rubysmith/builders/git/safe.rb +32 -0
- data/lib/rubysmith/builders/rake.rb +16 -6
- data/lib/rubysmith/cli/actions/build.rb +1 -0
- data/lib/rubysmith/cli/parser.rb +2 -1
- data/lib/rubysmith/cli/parsers/build.rb +2 -1
- data/lib/rubysmith/cli/parsers/core.rb +2 -1
- data/lib/rubysmith/cli/shell.rb +2 -1
- data/lib/rubysmith/templates/%project_name%/Guardfile.erb +1 -1
- data/lib/rubysmith/templates/%project_name%/README.adoc.erb +1 -1
- data/lib/rubysmith/templates/%project_name%/README.md.erb +1 -1
- data/lib/rubysmith/templates/%project_name%/bin/rake.erb +5 -0
- data/lib/rubysmith/templates/%project_name%/spec/spec_helper.rb.erb +6 -2
- data/rubysmith.gemspec +6 -5
- data.tar.gz.sig +0 -0
- metadata +27 -11
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 369e1f3f129b4a720739f0082e9bc8e1b81b2624044a656eb8fc3a7857678f2f
|
4
|
+
data.tar.gz: 1c6ac0a082c68f0df9f3169d04ed56af5ec6fceb73556628a3a2cec255fd9405
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fe4fbacb5bd3298d6c67979e56a3de9e65ff2bec5c7504bed48d24cfb2eee999fb107b36100a52a5a1b1a4b775071ac05bf18235a6f5a7c4a7590216036d3214
|
7
|
+
data.tar.gz: 716de62909d60e3585f26b4816c33dac3d62334f6bef662995b2015a390c27b0bf9bbb10db3a90ca239bfac4c5322e2a649d8532a34549abe1f60f21ec235726
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/README.adoc
CHANGED
@@ -222,14 +222,14 @@ doesn't require use of the `--git_hub` option but is encouraged.
|
|
222
222
|
|
223
223
|
===== Git
|
224
224
|
|
225
|
-
The `--git` option allows you add link:https://git-scm.com[Git] repository support.
|
225
|
+
The `--git` option allows you add link:https://git-scm.com[Git] repository support. Includes link:https://www.alchemists.io/screencasts/git_safe[Git Safe] functionality so you don't have to prefix commands with the `bin/` path prefix. Instead, you can call the command directly (assuming you have configured your link:https://www.alchemists.io/projects/dotfiles[Dotfiles] accordingly).
|
226
226
|
|
227
227
|
===== GitHub
|
228
228
|
|
229
229
|
The `--git_hub` option allows you add link:https://github.com[GitHub] templates to your project for
|
230
230
|
issues and pull requests.
|
231
231
|
|
232
|
-
|
232
|
+
===== GitHub CI
|
233
233
|
|
234
234
|
The `--git_hub_ci` option allows you to build your project with link:https://docs.github.com/en/actions[GitHub Actions] configured so you can get your project building as quickly as possible.
|
235
235
|
|
@@ -556,7 +556,7 @@ To test, run:
|
|
556
556
|
|
557
557
|
[source,bash]
|
558
558
|
----
|
559
|
-
|
559
|
+
bin/rake
|
560
560
|
----
|
561
561
|
|
562
562
|
== link:https://www.alchemists.io/policies/license[License]
|
data/lib/rubysmith/builder.rb
CHANGED
@@ -22,7 +22,7 @@ module Rubysmith
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def append content
|
25
|
-
log_debug "Appending: #{relative_build_path}"
|
25
|
+
log_debug "Appending content to: #{relative_build_path}"
|
26
26
|
build_path.rewrite { |body| body + content }
|
27
27
|
self
|
28
28
|
end
|
@@ -33,15 +33,21 @@ module Rubysmith
|
|
33
33
|
self
|
34
34
|
end
|
35
35
|
|
36
|
+
def insert_after pattern, content
|
37
|
+
log_debug "Inserting content after pattern in: #{relative_build_path}"
|
38
|
+
build_path.write inserter.new(build_path.readlines, :after).call(content, pattern).join
|
39
|
+
self
|
40
|
+
end
|
41
|
+
|
36
42
|
def insert_before pattern, content
|
37
43
|
log_debug "Inserting content before pattern in: #{relative_build_path}"
|
38
44
|
build_path.write inserter.new(build_path.readlines, :before).call(content, pattern).join
|
39
45
|
self
|
40
46
|
end
|
41
47
|
|
42
|
-
def
|
43
|
-
log_debug "
|
44
|
-
build_path.
|
48
|
+
def make_path
|
49
|
+
log_debug "Creating path: #{relative_build_path}"
|
50
|
+
build_path.make_path
|
45
51
|
self
|
46
52
|
end
|
47
53
|
|
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "core"
|
3
4
|
require "refinements/strings"
|
4
5
|
require "refinements/structs"
|
5
6
|
|
@@ -31,7 +32,7 @@ module Rubysmith
|
|
31
32
|
|
32
33
|
private
|
33
34
|
|
34
|
-
def indentation =
|
35
|
+
def indentation = ::Core::EMPTY_STRING.indent configuration.project_levels
|
35
36
|
|
36
37
|
def module_name = configuration.project_class
|
37
38
|
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "refinements/structs"
|
4
|
+
|
5
|
+
module Rubysmith
|
6
|
+
module Builders
|
7
|
+
module Git
|
8
|
+
# Initializes project skeleton with Git Safe support.
|
9
|
+
class Safe
|
10
|
+
using Refinements::Structs
|
11
|
+
|
12
|
+
def self.call(...) = new(...).call
|
13
|
+
|
14
|
+
def initialize configuration, builder: Builder
|
15
|
+
@configuration = configuration
|
16
|
+
@builder = builder
|
17
|
+
end
|
18
|
+
|
19
|
+
def call
|
20
|
+
return configuration unless configuration.build_git
|
21
|
+
|
22
|
+
builder.call(configuration.merge(template_path: "%project_name%/.git/safe")).make_path
|
23
|
+
configuration
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
attr_reader :configuration, :builder
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -18,6 +18,22 @@ module Rubysmith
|
|
18
18
|
def call
|
19
19
|
return configuration unless configuration.build_rake
|
20
20
|
|
21
|
+
add_binstub
|
22
|
+
add_configuration
|
23
|
+
configuration
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
attr_reader :configuration, :builder
|
29
|
+
|
30
|
+
def add_binstub
|
31
|
+
builder.call(configuration.merge(template_path: "%project_name%/bin/rake.erb"))
|
32
|
+
.render
|
33
|
+
.permit 0o755
|
34
|
+
end
|
35
|
+
|
36
|
+
def add_configuration
|
21
37
|
builder.call(configuration.merge(template_path: "%project_name%/Rakefile.erb"))
|
22
38
|
.render
|
23
39
|
.replace(/\[\s+/, "[")
|
@@ -26,13 +42,7 @@ module Rubysmith
|
|
26
42
|
.replace("task.", " task.")
|
27
43
|
.replace(/\n+(?=require)/, "\n")
|
28
44
|
.replace(/\n{2,}/, "\n\n")
|
29
|
-
|
30
|
-
configuration
|
31
45
|
end
|
32
|
-
|
33
|
-
private
|
34
|
-
|
35
|
-
attr_reader :configuration, :builder
|
36
46
|
end
|
37
47
|
end
|
38
48
|
end
|
data/lib/rubysmith/cli/parser.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "core"
|
3
4
|
require "optparse"
|
4
5
|
|
5
6
|
module Rubysmith
|
@@ -18,7 +19,7 @@ module Rubysmith
|
|
18
19
|
@configuration_duplicate = configuration.dup
|
19
20
|
end
|
20
21
|
|
21
|
-
def call arguments =
|
22
|
+
def call arguments = Core::EMPTY_ARRAY
|
22
23
|
sections.each { |section| section.call configuration_duplicate, client: }
|
23
24
|
client.parse arguments
|
24
25
|
configuration_duplicate.freeze
|
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "core"
|
3
4
|
require "refinements/structs"
|
4
5
|
|
5
6
|
module Rubysmith
|
@@ -21,7 +22,7 @@ module Rubysmith
|
|
21
22
|
@client = client
|
22
23
|
end
|
23
24
|
|
24
|
-
def call arguments =
|
25
|
+
def call arguments = ::Core::EMPTY_ARRAY
|
25
26
|
client.separator "\nBUILD OPTIONS:\n"
|
26
27
|
collate
|
27
28
|
client.parse arguments
|
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "core"
|
3
4
|
require "refinements/structs"
|
4
5
|
|
5
6
|
module Rubysmith
|
@@ -21,7 +22,7 @@ module Rubysmith
|
|
21
22
|
@client = client
|
22
23
|
end
|
23
24
|
|
24
|
-
def call arguments =
|
25
|
+
def call arguments = ::Core::EMPTY_ARRAY
|
25
26
|
client.banner = specification.labeled_summary
|
26
27
|
client.separator "\nUSAGE:\n"
|
27
28
|
collate
|
data/lib/rubysmith/cli/shell.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "core"
|
3
4
|
require "milestoner"
|
4
5
|
|
5
6
|
module Rubysmith
|
@@ -13,7 +14,7 @@ module Rubysmith
|
|
13
14
|
@parser = parser
|
14
15
|
end
|
15
16
|
|
16
|
-
def call arguments =
|
17
|
+
def call arguments = Core::EMPTY_ARRAY
|
17
18
|
perform parser.call(arguments)
|
18
19
|
rescue OptionParser::ParseError, Milestoner::Error => error
|
19
20
|
logger.error { error.message }
|
@@ -1,4 +1,4 @@
|
|
1
|
-
guard :rspec, cmd: "NO_COVERAGE=true
|
1
|
+
guard :rspec, cmd: "NO_COVERAGE=true bin/rspec --format documentation" do
|
2
2
|
watch %r(^spec/.+_spec\.rb$)
|
3
3
|
watch(%r(^lib/(.+)\.rb$)) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
4
4
|
watch("spec/spec_helper.rb") { "spec" }
|
@@ -20,12 +20,16 @@ require "refinements"
|
|
20
20
|
<% end %>
|
21
21
|
|
22
22
|
<% if configuration.build_refinements %>
|
23
|
+
SPEC_ROOT = Pathname(__dir__).realpath.freeze
|
24
|
+
|
23
25
|
using Refinements::Pathnames
|
24
26
|
|
25
|
-
Pathname.require_tree
|
27
|
+
Pathname.require_tree SPEC_ROOT, "support/shared_contexts/**/*.rb"
|
26
28
|
<% else %>
|
27
29
|
|
28
|
-
|
30
|
+
SPEC_ROOT = Pathname(__dir__).realpath.freeze
|
31
|
+
|
32
|
+
Dir[File.join(SPEC_ROOT, "support", "shared_contexts", "**/*.rb")].each { |path| require path }
|
29
33
|
<% end %>
|
30
34
|
|
31
35
|
RSpec.configure do |config|
|
data/rubysmith.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = "rubysmith"
|
5
|
-
spec.version = "4.
|
5
|
+
spec.version = "4.4.0"
|
6
6
|
spec.authors = ["Brooke Kuhlmann"]
|
7
7
|
spec.email = ["brooke@alchemists.io"]
|
8
8
|
spec.homepage = "https://github.com/bkuhlmann/rubysmith"
|
@@ -24,17 +24,18 @@ Gem::Specification.new do |spec|
|
|
24
24
|
|
25
25
|
spec.required_ruby_version = "~> 3.2"
|
26
26
|
spec.add_dependency "cogger", "~> 0.5"
|
27
|
+
spec.add_dependency "core", "~> 0.1"
|
27
28
|
spec.add_dependency "dry-container", "~> 0.11"
|
28
|
-
spec.add_dependency "gitt", "~> 1.
|
29
|
+
spec.add_dependency "gitt", "~> 1.1"
|
29
30
|
spec.add_dependency "infusible", "~> 1.0"
|
30
|
-
spec.add_dependency "milestoner", "~> 15.
|
31
|
+
spec.add_dependency "milestoner", "~> 15.2"
|
31
32
|
spec.add_dependency "pastel", "~> 0.8"
|
32
|
-
spec.add_dependency "pragmater", "~> 12.
|
33
|
+
spec.add_dependency "pragmater", "~> 12.1"
|
33
34
|
spec.add_dependency "refinements", "~> 10.0"
|
34
35
|
spec.add_dependency "rubocop", "~> 1.41"
|
35
36
|
spec.add_dependency "runcom", "~> 9.0"
|
36
37
|
spec.add_dependency "spek", "~> 1.0"
|
37
|
-
spec.add_dependency "tocer", "~> 15.
|
38
|
+
spec.add_dependency "tocer", "~> 15.1"
|
38
39
|
spec.add_dependency "zeitwerk", "~> 2.6"
|
39
40
|
|
40
41
|
spec.bindir = "exe"
|
data.tar.gz.sig
CHANGED
Binary file
|
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: 4.
|
4
|
+
version: 4.4.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: 2023-01-
|
31
|
+
date: 2023-01-22 00:00:00.000000000 Z
|
32
32
|
dependencies:
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: cogger
|
@@ -44,6 +44,20 @@ dependencies:
|
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '0.5'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: core
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0.1'
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '0.1'
|
47
61
|
- !ruby/object:Gem::Dependency
|
48
62
|
name: dry-container
|
49
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -64,14 +78,14 @@ dependencies:
|
|
64
78
|
requirements:
|
65
79
|
- - "~>"
|
66
80
|
- !ruby/object:Gem::Version
|
67
|
-
version: '1.
|
81
|
+
version: '1.1'
|
68
82
|
type: :runtime
|
69
83
|
prerelease: false
|
70
84
|
version_requirements: !ruby/object:Gem::Requirement
|
71
85
|
requirements:
|
72
86
|
- - "~>"
|
73
87
|
- !ruby/object:Gem::Version
|
74
|
-
version: '1.
|
88
|
+
version: '1.1'
|
75
89
|
- !ruby/object:Gem::Dependency
|
76
90
|
name: infusible
|
77
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -92,14 +106,14 @@ dependencies:
|
|
92
106
|
requirements:
|
93
107
|
- - "~>"
|
94
108
|
- !ruby/object:Gem::Version
|
95
|
-
version: '15.
|
109
|
+
version: '15.2'
|
96
110
|
type: :runtime
|
97
111
|
prerelease: false
|
98
112
|
version_requirements: !ruby/object:Gem::Requirement
|
99
113
|
requirements:
|
100
114
|
- - "~>"
|
101
115
|
- !ruby/object:Gem::Version
|
102
|
-
version: '15.
|
116
|
+
version: '15.2'
|
103
117
|
- !ruby/object:Gem::Dependency
|
104
118
|
name: pastel
|
105
119
|
requirement: !ruby/object:Gem::Requirement
|
@@ -120,14 +134,14 @@ dependencies:
|
|
120
134
|
requirements:
|
121
135
|
- - "~>"
|
122
136
|
- !ruby/object:Gem::Version
|
123
|
-
version: '12.
|
137
|
+
version: '12.1'
|
124
138
|
type: :runtime
|
125
139
|
prerelease: false
|
126
140
|
version_requirements: !ruby/object:Gem::Requirement
|
127
141
|
requirements:
|
128
142
|
- - "~>"
|
129
143
|
- !ruby/object:Gem::Version
|
130
|
-
version: '12.
|
144
|
+
version: '12.1'
|
131
145
|
- !ruby/object:Gem::Dependency
|
132
146
|
name: refinements
|
133
147
|
requirement: !ruby/object:Gem::Requirement
|
@@ -190,14 +204,14 @@ dependencies:
|
|
190
204
|
requirements:
|
191
205
|
- - "~>"
|
192
206
|
- !ruby/object:Gem::Version
|
193
|
-
version: '15.
|
207
|
+
version: '15.1'
|
194
208
|
type: :runtime
|
195
209
|
prerelease: false
|
196
210
|
version_requirements: !ruby/object:Gem::Requirement
|
197
211
|
requirements:
|
198
212
|
- - "~>"
|
199
213
|
- !ruby/object:Gem::Version
|
200
|
-
version: '15.
|
214
|
+
version: '15.1'
|
201
215
|
- !ruby/object:Gem::Dependency
|
202
216
|
name: zeitwerk
|
203
217
|
requirement: !ruby/object:Gem::Requirement
|
@@ -238,6 +252,7 @@ files:
|
|
238
252
|
- lib/rubysmith/builders/documentation/version.rb
|
239
253
|
- lib/rubysmith/builders/git/commit.rb
|
240
254
|
- lib/rubysmith/builders/git/ignore.rb
|
255
|
+
- lib/rubysmith/builders/git/safe.rb
|
241
256
|
- lib/rubysmith/builders/git/setup.rb
|
242
257
|
- lib/rubysmith/builders/git_hub.rb
|
243
258
|
- lib/rubysmith/builders/git_hub_ci.rb
|
@@ -302,6 +317,7 @@ files:
|
|
302
317
|
- lib/rubysmith/templates/%project_name%/VERSIONS.md.erb
|
303
318
|
- lib/rubysmith/templates/%project_name%/bin/console.erb
|
304
319
|
- lib/rubysmith/templates/%project_name%/bin/guard.erb
|
320
|
+
- lib/rubysmith/templates/%project_name%/bin/rake.erb
|
305
321
|
- lib/rubysmith/templates/%project_name%/bin/rspec.erb
|
306
322
|
- lib/rubysmith/templates/%project_name%/bin/rubocop.erb
|
307
323
|
- lib/rubysmith/templates/%project_name%/bin/setup.erb
|
@@ -336,7 +352,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
336
352
|
- !ruby/object:Gem::Version
|
337
353
|
version: '0'
|
338
354
|
requirements: []
|
339
|
-
rubygems_version: 3.4.
|
355
|
+
rubygems_version: 3.4.4
|
340
356
|
signing_key:
|
341
357
|
specification_version: 4
|
342
358
|
summary: A command line interface for smithing Ruby projects.
|
metadata.gz.sig
CHANGED
Binary file
|