rubysmith 4.3.0 → 4.4.0

Sign up to get free protection for your applications and to get access to all the features.
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