rubysmith 8.1.0 → 8.3.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: 180081fbed62709107ae4184b62ee5229841f5a810b1707a6f489ad0236b8cb7
4
- data.tar.gz: 74196170de67298d8b7b248792438b47b6f13c9569c709f52223f21ebbcd67c0
3
+ metadata.gz: fd6a42778f27b98366b646d9792a78881167380259e3a119aaca2050edd1093d
4
+ data.tar.gz: c12587b7de5a5bd08be4320df3fd0b14787e0e09820ec49513ca8110cf598f60
5
5
  SHA512:
6
- metadata.gz: 9f94531050179a89aa4107096358d109feff525e190d38d7acdd9e3ef9c83593fd89bbe02a6571633219bc931e1853beef7088ef25f52fe92be09632310fc10f
7
- data.tar.gz: 772a101724be9bf37d48b4582fd4d1ff73e8e825e7093c078e6668324925c66e4eb7891339cfba9fb35e2edbdaef7240f8341535a2ab67008de732b4831664ff
6
+ metadata.gz: d172cda7ebd0c06ff672f3cdece7b1fb75702370e2e407ef911dcfbfe9fc02e8c2efff1c75b6af99e2dcdf66ea816271bf29a49cdbadeb6c571be37553c74e84
7
+ data.tar.gz: 3d29fd932b240572753f4b1dcc1a17ca8c29c31b6fa7becf59efb52f02bacd40c9057215d69ae3162561df04714e2128c657fa68e1f992efb39c9fc028710200
checksums.yaml.gz.sig CHANGED
Binary file
data/README.adoc CHANGED
@@ -248,7 +248,7 @@ The `--git` option allows you add link:https://git-scm.com[Git] repository suppo
248
248
  ===== GitHub
249
249
 
250
250
  The `--git_hub` option allows you add link:https://github.com[GitHub] templates to your project for
251
- issues and pull requests. This adds the following fhile when enabled:
251
+ issues and pull requests. This adds the following files when enabled:
252
252
 
253
253
  ....
254
254
  ├── .github
@@ -289,6 +289,10 @@ to build a new project without having to pick and choose.
289
289
 
290
290
  The `--min` option allows you to build your project with _all options disabled_. This is a quick way to build a new project with the bare minimum of support which is a one step above reaching for a {bundler_inline_link} script.
291
291
 
292
+ ===== Monads
293
+
294
+ The `--monads` option allows you to add the link:https://dry-rb.org/gems/dry-monads[Dry Monads] gem to your project for building more functional and fault tolerant objects.
295
+
292
296
  ===== Rake
293
297
 
294
298
  The `--rake` option allows you to add the link:https://github.com/ruby/rake[Rake] gem for quickly
@@ -401,6 +405,7 @@ build:
401
405
  license: true
402
406
  maximum: false
403
407
  minimum: false
408
+ monads: false
404
409
  rake: true
405
410
  readme: true
406
411
  reek: true
@@ -13,7 +13,7 @@ module Rubysmith
13
13
  .render
14
14
  .replace(/\n\s+group/, "\n\ngroup")
15
15
  .replace(/\n\s+gem/, "\n gem")
16
- .replace(/ (?=.+(bootsnap|refinements|zeitwerk))/, "")
16
+ .replace(/ (?=.+(bootsnap|dry-monads|refinements|zeitwerk))/, "")
17
17
  .replace(/(\n+|\s+)end/, "\nend")
18
18
  .replace(/\n\ngroup :(quality|development|test|tools) do\nend/, "")
19
19
  .replace(/org"\n+/, "org\"\n\n")
@@ -16,6 +16,7 @@ module Rubysmith
16
16
  .render
17
17
  .replace(/\A\n/, "")
18
18
  .replace("\n\n\n", "\n\n")
19
+ .replace("\n \n", "\n")
19
20
 
20
21
  true
21
22
  end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "sod"
4
+
5
+ module Rubysmith
6
+ module CLI
7
+ module Actions
8
+ # Stores monads flag.
9
+ class Monads < Sod::Action
10
+ include Dependencies[:settings]
11
+
12
+ description "Add Dry Monads gem."
13
+
14
+ on "--[no-]monads"
15
+
16
+ default { Container[:settings].build_monads }
17
+
18
+ def call(boolean) = settings.build_monads = boolean
19
+ end
20
+ end
21
+ end
22
+ end
@@ -78,6 +78,7 @@ module Rubysmith
78
78
  on Actions::License
79
79
  on Actions::Maximum
80
80
  on Actions::Minimum
81
+ on Actions::Monads
81
82
  on Actions::Rake
82
83
  on Actions::Readme
83
84
  on Actions::Reek
@@ -36,6 +36,7 @@ module Rubysmith
36
36
  required(:build_license).filled :bool
37
37
  required(:build_maximum).filled :bool
38
38
  required(:build_minimum).filled :bool
39
+ required(:build_monads).filled :bool
39
40
  required(:build_rake).filled :bool
40
41
  required(:build_readme).filled :bool
41
42
  required(:build_reek).filled :bool
@@ -25,6 +25,7 @@ build:
25
25
  license: true
26
26
  maximum: false
27
27
  minimum: false
28
+ monads: false
28
29
  rake: true
29
30
  readme: true
30
31
  reek: true
@@ -37,6 +37,7 @@ module Rubysmith
37
37
  :build_license,
38
38
  :build_maximum,
39
39
  :build_minimum,
40
+ :build_monads,
40
41
  :build_rake,
41
42
  :build_readme,
42
43
  :build_reek,
@@ -12,7 +12,7 @@ module Rubysmith
12
12
  module Container
13
13
  extend Containable
14
14
 
15
- register :registry do
15
+ register :registry, as: :fresh do
16
16
  Etcher::Registry.new(contract: Configuration::Contract, model: Configuration::Model)
17
17
  .add_loader(:yaml, self[:defaults_path])
18
18
  .add_loader(:yaml, self[:xdg_config].active)
@@ -1,6 +1,3 @@
1
- # Assets
2
- /node_modules/
3
-
4
1
  # Bin
5
2
  /bin
6
3
  !/bin/console
@@ -9,6 +6,15 @@
9
6
  # Bundler
10
7
  /.bundle
11
8
 
9
+ # Circle CI
10
+ /.circleci
11
+
12
+ # CTags
13
+ /tags
14
+
15
+ # Database
16
+ /db/*.sqlite
17
+
12
18
  # Development
13
19
  /.devcontainer
14
20
 
@@ -16,6 +22,10 @@
16
22
  /.dockerignore
17
23
  /Dockerfile*
18
24
 
25
+ # Documentation
26
+ /*.adoc
27
+ /*.md
28
+
19
29
  # Environment
20
30
  /.env*
21
31
 
@@ -29,6 +39,24 @@
29
39
  # Log
30
40
  /log/
31
41
 
42
+ # Node
43
+ /node_modules/
44
+
45
+ # Overmind
46
+ /.overmind.sock
47
+
48
+ # Procfile
49
+ Procfile.dev
50
+
51
+ # Reek
52
+ /.reek.yml
53
+
54
+ # RSpec
55
+ /spec
56
+
57
+ # SimpleCov
58
+ /coverage
59
+
32
60
  # Temp
33
61
  /tmp/
34
62
 
@@ -15,6 +15,11 @@ jobs:
15
15
 
16
16
  - name: Checkout
17
17
  uses: actions/checkout@v4
18
+ <% if settings.build_git_lint %>
19
+ with:
20
+ fetch-depth: 0
21
+ ref: ${{github.head_ref}}
22
+ <% end %>
18
23
 
19
24
  - name: Ruby Setup
20
25
  uses: ruby/setup-ruby@v1
@@ -5,6 +5,9 @@ source "https://rubygems.org"
5
5
  <% if settings.build_bootsnap %>
6
6
  gem "bootsnap", "~> 1.18"
7
7
  <% end %>
8
+ <% if settings.build_monads %>
9
+ gem "dry-monads", "~> 1.8"
10
+ <% end %>
8
11
  <% if settings.build_refinements %>
9
12
  gem "refinements", "~> 13.0"
10
13
  <% end %>
@@ -14,13 +17,13 @@ source "https://rubygems.org"
14
17
 
15
18
  group :quality do
16
19
  <% if settings.build_caliber %>
17
- gem "caliber", "~> 0.68"
20
+ gem "caliber", "~> 0.79"
18
21
  <% end %>
19
22
  <% if settings.build_git && settings.build_git_lint %>
20
23
  gem "git-lint", "~> 9.0"
21
24
  <% end %>
22
25
  <% if settings.build_reek %>
23
- gem "reek", "~> 6.4", require: false
26
+ gem "reek", "~> 6.5", require: false
24
27
  <% end %>
25
28
  <% if settings.build_simple_cov %>
26
29
  gem "simplecov", "~> 0.22", require: false
@@ -1,15 +1,15 @@
1
- #! /usr/bin/env ruby
1
+ #! /usr/bin/env bash
2
2
 
3
- require "bundler/setup"
4
- Bundler.require :tools
3
+ set -o nounset
4
+ set -o errexit
5
+ set -o pipefail
6
+ IFS=$'\n\t'
5
7
 
6
- version = Bundler.root.join(".ruby-version").read.chop
8
+ read -r version < ".ruby-version"
7
9
 
8
- system <<~COMMAND
9
- docker buildx \
10
- build \
11
- --load \
12
- --build-arg RUBY_VERSION=#{version} \
13
- --tag <%= settings.project_name %>:latest \
14
- #{Bundler.root}
15
- COMMAND
10
+ docker buildx \
11
+ build \
12
+ --load \
13
+ --build-arg RUBY_VERSION="${version}" \
14
+ --tag <%= settings.project_name %>:latest \
15
+ "$(pwd)"
@@ -1,14 +1,14 @@
1
- #! /usr/bin/env ruby
1
+ #! /usr/bin/env bash
2
2
 
3
- require "bundler/setup"
4
- Bundler.require :tools
3
+ set -o nounset
4
+ set -o errexit
5
+ set -o pipefail
6
+ IFS=$'\n\t'
5
7
 
6
- system <<~COMMAND
7
- docker run \
8
- --disable-content-trust \
9
- --pull never \
10
- --interactive \
11
- --tty \
12
- --rm <%= settings.project_name %>:latest \
13
- bash
14
- COMMAND
8
+ docker run \
9
+ --disable-content-trust \
10
+ --pull never \
11
+ --interactive \
12
+ --tty \
13
+ --rm <%= settings.project_name %>:latest \
14
+ bash
@@ -14,6 +14,9 @@ end
14
14
  Bundler.require :tools
15
15
 
16
16
  require "<%= settings.project_path %>"
17
+ <% if settings.build_monads %>
18
+ require "dry/monads"
19
+ <% end %>
17
20
  <% if settings.build_refinements %>
18
21
  require "refinements"
19
22
  <% end %>
@@ -51,4 +54,8 @@ RSpec.configure do |config|
51
54
  mocks.verify_doubled_constant_names = true
52
55
  mocks.verify_partial_doubles = true
53
56
  end
57
+
58
+ <% if settings.build_monads %>
59
+ config.before(:suite) { Dry::Monads.load_extensions :rspec }
60
+ <% end %>
54
61
  end
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 = "8.1.0"
5
+ spec.version = "8.3.0"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
8
  spec.homepage = "https://alchemists.io/projects/rubysmith"
@@ -25,14 +25,14 @@ Gem::Specification.new do |spec|
25
25
  spec.required_ruby_version = "~> 3.4"
26
26
  spec.add_dependency "cogger", "~> 1.0"
27
27
  spec.add_dependency "containable", "~> 1.1"
28
- spec.add_dependency "dry-monads", "~> 1.6"
28
+ spec.add_dependency "dry-monads", "~> 1.8"
29
29
  spec.add_dependency "dry-schema", "~> 1.13"
30
30
  spec.add_dependency "etcher", "~> 3.0"
31
31
  spec.add_dependency "gitt", "~> 4.1"
32
32
  spec.add_dependency "infusible", "~> 4.0"
33
33
  spec.add_dependency "pragmater", "~> 16.0"
34
34
  spec.add_dependency "refinements", "~> 13.0"
35
- spec.add_dependency "rubocop", "~> 1.71"
35
+ spec.add_dependency "rubocop", "~> 1.75"
36
36
  spec.add_dependency "runcom", "~> 12.0"
37
37
  spec.add_dependency "sod", "~> 1.0"
38
38
  spec.add_dependency "spek", "~> 4.0"
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: 8.1.0
4
+ version: 8.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -9,9 +9,9 @@ bindir: exe
9
9
  cert_chain:
10
10
  - |
11
11
  -----BEGIN CERTIFICATE-----
12
- MIIEeDCCAuCgAwIBAgIBATANBgkqhkiG9w0BAQsFADBBMQ8wDQYDVQQDDAZicm9v
12
+ MIIENjCCAp6gAwIBAgIBAjANBgkqhkiG9w0BAQsFADBBMQ8wDQYDVQQDDAZicm9v
13
13
  a2UxGjAYBgoJkiaJk/IsZAEZFgphbGNoZW1pc3RzMRIwEAYKCZImiZPyLGQBGRYC
14
- aW8wHhcNMjMwMzIyMTYxNDQxWhcNMjUwMzIxMTYxNDQxWjBBMQ8wDQYDVQQDDAZi
14
+ aW8wHhcNMjUwMzIyMTQ1NDE3WhcNMjYwMzIyMTQ1NDE3WjBBMQ8wDQYDVQQDDAZi
15
15
  cm9va2UxGjAYBgoJkiaJk/IsZAEZFgphbGNoZW1pc3RzMRIwEAYKCZImiZPyLGQB
16
16
  GRYCaW8wggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCro8tj5/E1Hg88
17
17
  f4qfiwPVd2zJQHvdYt4GHVvuHRRgx4HGhJuNp+4BId08RBn7V6V1MW6MY3kezRBs
@@ -21,20 +21,19 @@ cert_chain:
21
21
  QzzPxZBiRB1sgtbt1gUbVI262ZDq1gR+HxPFmp+Cgt7ZLIJZAtesQvtcMzseXpfn
22
22
  hpmm0Sw22KGhRAy/mqHBRhDl5HqS1SJp2Ko3lcnpXeFResp0HNlt8NSu13vhC08j
23
23
  GUHU9MyIXbFOsnp3K3ADrAVjPWop8EZkmUR3MV/CUm00w2cZHCSGiXl1KMpiVKvk
24
- Ywr1gd2ZME4QLSo+EXUtLxDUa/W3xnBS8dBOuMMz02FPWYr3PN8CAwEAAaN7MHkw
24
+ Ywr1gd2ZME4QLSo+EXUtLxDUa/W3xnBS8dBOuMMz02FPWYr3PN8CAwEAAaM5MDcw
25
25
  CQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFAFgmv0tYMZnItuPycSM
26
- F5wykJEVMB8GA1UdEQQYMBaBFGJyb29rZUBhbGNoZW1pc3RzLmlvMB8GA1UdEgQY
27
- MBaBFGJyb29rZUBhbGNoZW1pc3RzLmlvMA0GCSqGSIb3DQEBCwUAA4IBgQAX+EGY
28
- 9RLYGxF1VLZz+G1ACQc4uyrCB6kXwI06kzUa5dF9tPXqTX9ffnz3/W8ck2IQhKzu
29
- MKO2FVijzbDWTsZeZGglS4E+4Jxpau1lU9HhOIcKolv6LeC6UdALTFudY+GLb8Xw
30
- REXgaJkjzzhkUSILmEnRwEbY08dVSl7ZAaxVI679vfI2yapLlIwpbBgmQTiTvPr3
31
- qyyLUno9flYEOv9fmGHunSrM+gE0/0niGTXa5GgXBXYGS2he4LQGgSBfGp/cTwMU
32
- rDKJRcusZ12lNBeDfgqACz/BBJF8FLodgk6rGMRZz7+ZmjjHEmpG5bQpR6Q2BuWL
33
- XMtYk/QzaWuhiR7pWjiF8jbdd7RO6or0ohq7iFkokz/5xrtQ/vPzU2RQ3Qc6YaKw
34
- 3n5C8/6Zh9DYTkpcwPSuIfAga6wf4nXc9m6JAw8AuMLaiWN/r/2s4zJsUHYERJEu
35
- gZGm4JqtuSg8pYjPeIJxS960owq+SfuC+jxqmRA54BisFCv/0VOJi7tiJVY=
26
+ F5wykJEVMA0GCSqGSIb3DQEBCwUAA4IBgQBlzRfyAYx/fCFjizS0Npxw4+4T3aYL
27
+ hbXoDqQRWjxuhFZcXUymhz3r8/Ltyri9lSof8grzB+8/+mrMVms7Gwt5qolk6zdn
28
+ FkySGy/jmpN12ldOHFbBEnyVBZNBvOBVb8zkkw8PhiHdBdXOUm4Jy39yJvBLfjcC
29
+ iM1aeWPmgPy1GbvZU+leRGZLt6dRIR9oCDXcWLRjha8xLMoz6Yn9fJBYexBA3iEz
30
+ h5S7pn4AX/JhVRiSyl8pAy4jEKydpyQrliH3gHkpNmUS/XDczP+9xX1bAB4BvqL2
31
+ NCxMcQ+hiJNqCKpPgHxaOOHZfIxV33logIuPEQ8NryHAwZ9ZWnwtYDE8kQGGKskI
32
+ Kkm6QT474hZl7MpwiJjWgW313CR7jUEekQahX1QxCxHPI7LSrKpno0plH3uWIOQp
33
+ KUlkb9uyACBgyRO52ZHiDVI8YvtU5O/j9pSes9/3XgvBeC1onx4qWp+uRX7eVsYS
34
+ GiijocTc3enZVrXERetaXj8/9XWs3fB3HWY=
36
35
  -----END CERTIFICATE-----
37
- date: 2025-01-25 00:00:00.000000000 Z
36
+ date: 1980-01-02 00:00:00.000000000 Z
38
37
  dependencies:
39
38
  - !ruby/object:Gem::Dependency
40
39
  name: cogger
@@ -70,14 +69,14 @@ dependencies:
70
69
  requirements:
71
70
  - - "~>"
72
71
  - !ruby/object:Gem::Version
73
- version: '1.6'
72
+ version: '1.8'
74
73
  type: :runtime
75
74
  prerelease: false
76
75
  version_requirements: !ruby/object:Gem::Requirement
77
76
  requirements:
78
77
  - - "~>"
79
78
  - !ruby/object:Gem::Version
80
- version: '1.6'
79
+ version: '1.8'
81
80
  - !ruby/object:Gem::Dependency
82
81
  name: dry-schema
83
82
  requirement: !ruby/object:Gem::Requirement
@@ -168,14 +167,14 @@ dependencies:
168
167
  requirements:
169
168
  - - "~>"
170
169
  - !ruby/object:Gem::Version
171
- version: '1.71'
170
+ version: '1.75'
172
171
  type: :runtime
173
172
  prerelease: false
174
173
  version_requirements: !ruby/object:Gem::Requirement
175
174
  requirements:
176
175
  - - "~>"
177
176
  - !ruby/object:Gem::Version
178
- version: '1.71'
177
+ version: '1.75'
179
178
  - !ruby/object:Gem::Dependency
180
179
  name: runcom
181
180
  requirement: !ruby/object:Gem::Requirement
@@ -266,8 +265,8 @@ executables:
266
265
  - rubysmith
267
266
  extensions: []
268
267
  extra_rdoc_files:
269
- - README.adoc
270
268
  - LICENSE.adoc
269
+ - README.adoc
271
270
  files:
272
271
  - LICENSE.adoc
273
272
  - README.adoc
@@ -330,6 +329,7 @@ files:
330
329
  - lib/rubysmith/cli/actions/license.rb
331
330
  - lib/rubysmith/cli/actions/maximum.rb
332
331
  - lib/rubysmith/cli/actions/minimum.rb
332
+ - lib/rubysmith/cli/actions/monads.rb
333
333
  - lib/rubysmith/cli/actions/name.rb
334
334
  - lib/rubysmith/cli/actions/rake.rb
335
335
  - lib/rubysmith/cli/actions/readme.rb
@@ -428,7 +428,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
428
428
  - !ruby/object:Gem::Version
429
429
  version: '0'
430
430
  requirements: []
431
- rubygems_version: 3.6.3
431
+ rubygems_version: 3.6.7
432
432
  specification_version: 4
433
433
  summary: A command line interface for smithing Ruby projects.
434
434
  test_files: []
metadata.gz.sig CHANGED
Binary file