gemsmith 16.0.0 → 16.1.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/gemsmith.gemspec +3 -4
- data/lib/gemsmith/builders/documentation/readme.rb +37 -0
- data/lib/gemsmith/cli/actions/build.rb +1 -0
- data/lib/gemsmith/cli/actions/edit.rb +2 -1
- data/lib/gemsmith/cli/actions/install.rb +2 -1
- data/lib/gemsmith/cli/actions/publish.rb +2 -1
- data/lib/gemsmith/cli/actions/view.rb +2 -1
- data/lib/gemsmith/cli/shell.rb +2 -2
- data/lib/gemsmith/container.rb +2 -1
- data/lib/gemsmith/gems/finder.rb +2 -0
- data/lib/gemsmith/gems/loader.rb +2 -0
- data/lib/gemsmith/gems/picker.rb +2 -0
- data/lib/gemsmith/gems/presenter.rb +2 -0
- data/lib/gemsmith/templates/%project_name%/%project_name%.gemspec.erb +1 -3
- data/lib/gemsmith/templates/%project_name%/lib/%project_path%/cli/shell.rb.erb +1 -1
- data.tar.gz.sig +0 -0
- metadata +20 -5
- 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: a7ed3b426a451eec114a907710517ffd7d65bfa94a9ae48c5b3b3d6facd2e95f
|
4
|
+
data.tar.gz: 5b588ccd9decb1e9bbeba7d2588cb339e7b9599528153df07ccc09aafe4edf11
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 86f3fd45d9cdf2506c26661ddd277506dbb88171080218cabe5397badd911a63ced3bbcaf8324f77ff9d60abdef3a5850bf53bde235b00da4cbdeb2b474183ae
|
7
|
+
data.tar.gz: 5d88a77b5f9375a7a3fc04c3fcc0699198fd701c1305e5903058015fed184861c5ffbb1a7cccce1a7b84c5a5b402dd4f3543343bbe3cef72b2099ac24b0b1e7d
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/gemsmith.gemspec
CHANGED
@@ -2,8 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = "gemsmith"
|
5
|
-
spec.version = "16.
|
6
|
-
spec.platform = Gem::Platform::RUBY
|
5
|
+
spec.version = "16.1.0"
|
7
6
|
spec.authors = ["Brooke Kuhlmann"]
|
8
7
|
spec.email = ["brooke@alchemists.io"]
|
9
8
|
spec.homepage = "https://www.alchemists.io/projects/gemsmith"
|
@@ -29,7 +28,8 @@ Gem::Specification.new do |spec|
|
|
29
28
|
spec.add_dependency "pastel", "~> 0.8"
|
30
29
|
spec.add_dependency "refinements", "~> 9.1"
|
31
30
|
spec.add_dependency "rubysmith", "~> 1.2"
|
32
|
-
spec.add_dependency "runcom", "~> 8.
|
31
|
+
spec.add_dependency "runcom", "~> 8.2"
|
32
|
+
spec.add_dependency "spek", "~> 0.0"
|
33
33
|
spec.add_dependency "versionaire", "~> 10.0"
|
34
34
|
spec.add_dependency "zeitwerk", "~> 2.5"
|
35
35
|
|
@@ -37,5 +37,4 @@ Gem::Specification.new do |spec|
|
|
37
37
|
spec.executables << "gemsmith"
|
38
38
|
spec.extra_rdoc_files = Dir["README*", "LICENSE*"]
|
39
39
|
spec.files = Dir.glob ["*.gemspec", "lib/**/*"], File::FNM_DOTMATCH
|
40
|
-
spec.require_paths = ["lib"]
|
41
40
|
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "refinements/structs"
|
4
|
+
|
5
|
+
module Gemsmith
|
6
|
+
module Builders
|
7
|
+
module Documentation
|
8
|
+
# Builds project skeleton README documentation.
|
9
|
+
class Readme
|
10
|
+
using Refinements::Structs
|
11
|
+
|
12
|
+
def self.call(...) = new(...).call
|
13
|
+
|
14
|
+
def initialize configuration, builder: Rubysmith::Builder
|
15
|
+
@configuration = configuration
|
16
|
+
@builder = builder
|
17
|
+
end
|
18
|
+
|
19
|
+
def call
|
20
|
+
return configuration unless configuration.build_readme
|
21
|
+
|
22
|
+
builder.call(configuration.merge(template_path: "%project_name%/README.#{kind}.erb"))
|
23
|
+
.replace("Rubysmith", "Gemsmith")
|
24
|
+
.replace("rubysmith", "gemsmith")
|
25
|
+
|
26
|
+
configuration
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
attr_reader :configuration, :builder
|
32
|
+
|
33
|
+
def kind = configuration.documentation_format
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -11,6 +11,7 @@ module Gemsmith
|
|
11
11
|
Rubysmith::Builders::Version,
|
12
12
|
Builders::Specification,
|
13
13
|
Rubysmith::Builders::Documentation::Readme,
|
14
|
+
Builders::Documentation::Readme,
|
14
15
|
Rubysmith::Builders::Documentation::Citation,
|
15
16
|
Rubysmith::Builders::Documentation::License,
|
16
17
|
Rubysmith::Builders::Documentation::Version,
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "dry/monads"
|
4
|
+
require "spek"
|
4
5
|
|
5
6
|
module Gemsmith
|
6
7
|
module CLI
|
@@ -9,7 +10,7 @@ module Gemsmith
|
|
9
10
|
class Edit
|
10
11
|
include Dry::Monads[:result]
|
11
12
|
|
12
|
-
def initialize picker:
|
13
|
+
def initialize picker: Spek::Picker, editor: Tools::Editor.new, container: Container
|
13
14
|
@picker = picker
|
14
15
|
@editor = editor
|
15
16
|
@container = container
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "dry/monads"
|
4
|
+
require "spek"
|
4
5
|
|
5
6
|
module Gemsmith
|
6
7
|
module CLI
|
@@ -9,7 +10,7 @@ module Gemsmith
|
|
9
10
|
class Install
|
10
11
|
include Dry::Monads[:result]
|
11
12
|
|
12
|
-
def initialize installer: Tools::Installer.new, loader:
|
13
|
+
def initialize installer: Tools::Installer.new, loader: Spek::Loader, container: Container
|
13
14
|
@installer = installer
|
14
15
|
@loader = loader
|
15
16
|
@container = container
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "dry/monads"
|
4
|
+
require "spek"
|
4
5
|
|
5
6
|
module Gemsmith
|
6
7
|
module CLI
|
@@ -9,7 +10,7 @@ module Gemsmith
|
|
9
10
|
class Publish
|
10
11
|
include Dry::Monads[:result]
|
11
12
|
|
12
|
-
def initialize publisher: Tools::Publisher.new, loader:
|
13
|
+
def initialize publisher: Tools::Publisher.new, loader: Spek::Loader, container: Container
|
13
14
|
@publisher = publisher
|
14
15
|
@loader = loader
|
15
16
|
@container = container
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "dry/monads"
|
4
|
+
require "spek"
|
4
5
|
|
5
6
|
module Gemsmith
|
6
7
|
module CLI
|
@@ -9,7 +10,7 @@ module Gemsmith
|
|
9
10
|
class View
|
10
11
|
include Dry::Monads[:result]
|
11
12
|
|
12
|
-
def initialize picker:
|
13
|
+
def initialize picker: Spek::Picker, viewer: Tools::Viewer.new, container: Container
|
13
14
|
@picker = picker
|
14
15
|
@viewer = viewer
|
15
16
|
@container = container
|
data/lib/gemsmith/cli/shell.rb
CHANGED
@@ -37,7 +37,7 @@ module Gemsmith
|
|
37
37
|
in action_publish: true then publish configuration
|
38
38
|
in action_edit: String => gem_name then edit gem_name
|
39
39
|
in action_view: String => gem_name then view gem_name
|
40
|
-
in action_version: true then logger.info specification.labeled_version
|
40
|
+
in action_version: true then logger.info { specification.labeled_version }
|
41
41
|
else usage
|
42
42
|
end
|
43
43
|
end
|
@@ -54,7 +54,7 @@ module Gemsmith
|
|
54
54
|
|
55
55
|
def view(gem_name) = actions.fetch(__method__).call(gem_name)
|
56
56
|
|
57
|
-
def usage = logger.unknown
|
57
|
+
def usage = logger.unknown { parser.to_s }
|
58
58
|
|
59
59
|
def logger = container[__method__]
|
60
60
|
|
data/lib/gemsmith/container.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require "dry-container"
|
4
4
|
require "open3"
|
5
|
+
require "spek"
|
5
6
|
|
6
7
|
module Gemsmith
|
7
8
|
# Provides a global gem container for injection into other objects.
|
@@ -13,7 +14,7 @@ module Gemsmith
|
|
13
14
|
merge Rubysmith::Container
|
14
15
|
|
15
16
|
register(:configuration) { Gemsmith::Configuration::Loader.call }
|
16
|
-
register(:specification) {
|
17
|
+
register(:specification) { Spek::Loader.call "#{__dir__}/../../gemsmith.gemspec" }
|
17
18
|
register(:environment) { ENV }
|
18
19
|
register(:executor) { Open3 }
|
19
20
|
register(:kernel) { Kernel }
|
data/lib/gemsmith/gems/finder.rb
CHANGED
data/lib/gemsmith/gems/loader.rb
CHANGED
data/lib/gemsmith/gems/picker.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "<%= configuration.project_name %>"
|
3
3
|
spec.version = "<%= configuration.project_version %>"
|
4
|
-
spec.platform = Gem::Platform::RUBY
|
5
4
|
spec.authors = ["<%= configuration.author_name %>"]
|
6
5
|
spec.email = ["<%= configuration.author_email %>"]
|
7
6
|
spec.homepage = "<%= configuration.computed_project_url_home %>"
|
@@ -33,7 +32,7 @@ Gem::Specification.new do |spec|
|
|
33
32
|
spec.add_dependency "refinements", "~> 9.1"
|
34
33
|
<% end %>
|
35
34
|
<% if configuration.build_cli %>
|
36
|
-
spec.add_dependency "runcom", "~> 8.
|
35
|
+
spec.add_dependency "runcom", "~> 8.2"
|
37
36
|
<% end %>
|
38
37
|
<% if configuration.build_zeitwerk %>
|
39
38
|
spec.add_dependency "zeitwerk", "~> 2.5"
|
@@ -45,5 +44,4 @@ Gem::Specification.new do |spec|
|
|
45
44
|
<% end %>
|
46
45
|
spec.extra_rdoc_files = Dir["README*", "LICENSE*"]
|
47
46
|
spec.files = Dir["*.gemspec", "lib/**/*"]
|
48
|
-
spec.require_paths = ["lib"]
|
49
47
|
end
|
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: 16.
|
4
|
+
version: 16.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brooke Kuhlmann
|
@@ -28,7 +28,7 @@ cert_chain:
|
|
28
28
|
lkHilIrX69jq8wMPpBhlaw2mRmeSL50Wv5u6xVBvOHhXFSP1crXM95vfLhLyRYod
|
29
29
|
W2A=
|
30
30
|
-----END CERTIFICATE-----
|
31
|
-
date: 2022-01-
|
31
|
+
date: 2022-01-30 00:00:00.000000000 Z
|
32
32
|
dependencies:
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: dry-container
|
@@ -120,14 +120,28 @@ dependencies:
|
|
120
120
|
requirements:
|
121
121
|
- - "~>"
|
122
122
|
- !ruby/object:Gem::Version
|
123
|
-
version: '8.
|
123
|
+
version: '8.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: '8.
|
130
|
+
version: '8.2'
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: spek
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - "~>"
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0.0'
|
138
|
+
type: :runtime
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - "~>"
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '0.0'
|
131
145
|
- !ruby/object:Gem::Dependency
|
132
146
|
name: versionaire
|
133
147
|
requirement: !ruby/object:Gem::Requirement
|
@@ -173,6 +187,7 @@ files:
|
|
173
187
|
- lib/gemsmith.rb
|
174
188
|
- lib/gemsmith/builders/bundler.rb
|
175
189
|
- lib/gemsmith/builders/cli.rb
|
190
|
+
- lib/gemsmith/builders/documentation/readme.rb
|
176
191
|
- lib/gemsmith/builders/git/commit.rb
|
177
192
|
- lib/gemsmith/builders/git/ignore.rb
|
178
193
|
- lib/gemsmith/builders/rspec/helper.rb
|
@@ -247,7 +262,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
247
262
|
- !ruby/object:Gem::Version
|
248
263
|
version: '0'
|
249
264
|
requirements: []
|
250
|
-
rubygems_version: 3.3.
|
265
|
+
rubygems_version: 3.3.6
|
251
266
|
signing_key:
|
252
267
|
specification_version: 4
|
253
268
|
summary: A command line interface for smithing Ruby gems.
|
metadata.gz.sig
CHANGED
Binary file
|