rubysmith 4.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 20400688d18009b8693a50e2aaf540091135655cf7b44a447ad2299f2fccea46
4
- data.tar.gz: 0f7d4d8121b57dce5dbd25f17bd76366269d74856ff8cdcd1000908d6d8d9a08
3
+ metadata.gz: 369e1f3f129b4a720739f0082e9bc8e1b81b2624044a656eb8fc3a7857678f2f
4
+ data.tar.gz: 1c6ac0a082c68f0df9f3169d04ed56af5ec6fceb73556628a3a2cec255fd9405
5
5
  SHA512:
6
- metadata.gz: cacd542dcdb79197f4db085021d4756f38e71017d88dd2aa1db55e43e1e60f80818d1da2f19841de58e5e0d8b903ce9343c3fce4dc1d70fcad2c97ece9abf323
7
- data.tar.gz: d2aed19508d58fbe8def647ae99e9e6d9a3ad504b08de531439c6a8a8ec7a10924ab9256b12755800e4416271e53b3a517813f8c034c02e8ad6ecd67f591ca1f
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
- ==== GitHub CI
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
- bundle exec rake
559
+ bin/rake
560
560
  ----
561
561
 
562
562
  == link:https://www.alchemists.io/policies/license[License]
@@ -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 insert_after pattern, content
43
- log_debug "Inserting content after pattern in: #{relative_build_path}"
44
- build_path.write inserter.new(build_path.readlines, :after).call(content, pattern).join
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
 
@@ -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
@@ -17,6 +17,7 @@ module Rubysmith
17
17
  Builders::Documentation::Version,
18
18
  Builders::Git::Setup,
19
19
  Builders::Git::Ignore,
20
+ Builders::Git::Safe,
20
21
  Builders::Bundler,
21
22
  Builders::Rake,
22
23
  Builders::Console,
@@ -1,4 +1,4 @@
1
- guard :rspec, cmd: "NO_COVERAGE=true bundle exec rspec --format documentation" do
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" }
@@ -56,7 +56,7 @@ To test, run:
56
56
 
57
57
  [source,bash]
58
58
  ----
59
- bundle exec rake
59
+ bin/rake
60
60
  ----
61
61
 
62
62
  <% if configuration.build_license %>
@@ -44,7 +44,7 @@ You can also use the IRB console for direct access to all objects:
44
44
 
45
45
  To test, run:
46
46
 
47
- bundle exec rake
47
+ bin/rake
48
48
 
49
49
  <% if configuration.build_license %>
50
50
  ## [License](<%= configuration.computed_project_url_license %>)
@@ -0,0 +1,5 @@
1
+ #! /usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+
5
+ load Gem.bin_path "rake", "rake"
@@ -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 __dir__, "support/shared_contexts/**/*.rb"
27
+ Pathname.require_tree SPEC_ROOT, "support/shared_contexts/**/*.rb"
26
28
  <% else %>
27
29
 
28
- Dir[File.join(__dir__, "support", "shared_contexts", "**/*.rb")].each { |path| require path }
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.3.0"
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"
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.3.0
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-08 00:00:00.000000000 Z
31
+ date: 2023-01-22 00:00:00.000000000 Z
32
32
  dependencies:
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: cogger
@@ -252,6 +252,7 @@ files:
252
252
  - lib/rubysmith/builders/documentation/version.rb
253
253
  - lib/rubysmith/builders/git/commit.rb
254
254
  - lib/rubysmith/builders/git/ignore.rb
255
+ - lib/rubysmith/builders/git/safe.rb
255
256
  - lib/rubysmith/builders/git/setup.rb
256
257
  - lib/rubysmith/builders/git_hub.rb
257
258
  - lib/rubysmith/builders/git_hub_ci.rb
@@ -316,6 +317,7 @@ files:
316
317
  - lib/rubysmith/templates/%project_name%/VERSIONS.md.erb
317
318
  - lib/rubysmith/templates/%project_name%/bin/console.erb
318
319
  - lib/rubysmith/templates/%project_name%/bin/guard.erb
320
+ - lib/rubysmith/templates/%project_name%/bin/rake.erb
319
321
  - lib/rubysmith/templates/%project_name%/bin/rspec.erb
320
322
  - lib/rubysmith/templates/%project_name%/bin/rubocop.erb
321
323
  - lib/rubysmith/templates/%project_name%/bin/setup.erb
@@ -350,7 +352,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
350
352
  - !ruby/object:Gem::Version
351
353
  version: '0'
352
354
  requirements: []
353
- rubygems_version: 3.4.2
355
+ rubygems_version: 3.4.4
354
356
  signing_key:
355
357
  specification_version: 4
356
358
  summary: A command line interface for smithing Ruby projects.
metadata.gz.sig CHANGED
Binary file