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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ecd435bbf9cc30cd3697b3a93c654da39363b3d0a09c22ef5632c776c8008df6
4
- data.tar.gz: 4a00b02a0e5c1b8cff3f74e92ffa6dd38c1d1ee9747d3b0a359f00024845631c
3
+ metadata.gz: a7ed3b426a451eec114a907710517ffd7d65bfa94a9ae48c5b3b3d6facd2e95f
4
+ data.tar.gz: 5b588ccd9decb1e9bbeba7d2588cb339e7b9599528153df07ccc09aafe4edf11
5
5
  SHA512:
6
- metadata.gz: cba8254fccb5c9793c2c8930d97477a8a9790d8df4421352b3d55638c11bab9789d966e38e475207b8efc9cce778ea24607ad1213ed838193e45b620b53cd77c
7
- data.tar.gz: f50ac57730ac151c2f38c48df92899b36fc5e3d133217ee8578c414165fda674a45d09fc84d61f6bd9fdd47c270d65f5e133cae86dfb1a73a010392fcb2e47b7
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.0.0"
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.0"
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: Gems::Picker, editor: Tools::Editor.new, container: Container
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: Gems::Loader, container: Container
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: Gems::Loader, container: Container
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: Gems::Picker, viewer: Tools::Viewer.new, container: Container
13
+ def initialize picker: Spek::Picker, viewer: Tools::Viewer.new, container: Container
13
14
  @picker = picker
14
15
  @viewer = viewer
15
16
  @container = container
@@ -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(parser.to_s)
57
+ def usage = logger.unknown { parser.to_s }
58
58
 
59
59
  def logger = container[__method__]
60
60
 
@@ -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) { Gemsmith::Gems::Loader.call "#{__dir__}/../../gemsmith.gemspec" }
17
+ register(:specification) { Spek::Loader.call "#{__dir__}/../../gemsmith.gemspec" }
17
18
  register(:environment) { ENV }
18
19
  register(:executor) { Open3 }
19
20
  register(:kernel) { Kernel }
@@ -7,6 +7,8 @@ module Gemsmith
7
7
  def self.call(path, ...) = new(...).call path
8
8
 
9
9
  def initialize client: ::Gem::Specification, presenter: Gems::Presenter
10
+ warn "[DEPRECATION]: Finder is deprecated, use Spek gem instead."
11
+
10
12
  @client = client
11
13
  @presenter = presenter
12
14
  end
@@ -7,6 +7,8 @@ module Gemsmith
7
7
  def self.call(path, ...) = new(...).call path
8
8
 
9
9
  def initialize client: ::Gem::Specification, presenter: Gems::Presenter
10
+ warn "[DEPRECATION]: Loader is deprecated, use Spek gem instead."
11
+
10
12
  @client = client
11
13
  @presenter = presenter
12
14
  end
@@ -11,6 +11,8 @@ module Gemsmith
11
11
  def self.call(name, ...) = new(...).call name
12
12
 
13
13
  def initialize finder: Finder.new, kernel: Kernel
14
+ warn "[DEPRECATION]: Picker is deprecated, use Spek gem instead."
15
+
14
16
  @finder = finder
15
17
  @kernel = kernel
16
18
  end
@@ -17,6 +17,8 @@ module Gemsmith
17
17
  delegate %i[metadata name summary] => :record
18
18
 
19
19
  def initialize record
20
+ warn "[DEPRECATION]: Presenter is deprecated, use Spek gem instead."
21
+
20
22
  @record = record
21
23
  end
22
24
 
@@ -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.0"
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
@@ -30,7 +30,7 @@
30
30
 
31
31
  def config(action) = actions.fetch(__method__).call(action)
32
32
 
33
- def usage = logger.unknown(parser.to_s)
33
+ def usage = logger.unknown { parser.to_s }
34
34
 
35
35
  def logger = container[__method__]
36
36
  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.0.0
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-27 00:00:00.000000000 Z
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.0'
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.0'
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.5
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