hanamismith 0.35.0 → 0.36.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/hanamismith.gemspec +3 -3
  4. data/lib/hanamismith/builders/asset.rb +1 -12
  5. data/lib/hanamismith/builders/binstub.rb +1 -12
  6. data/lib/hanamismith/builders/bundler.rb +63 -74
  7. data/lib/hanamismith/builders/caliber.rb +0 -4
  8. data/lib/hanamismith/builders/ci/circle.rb +1 -12
  9. data/lib/hanamismith/builders/ci/git_hub.rb +1 -12
  10. data/lib/hanamismith/builders/console.rb +7 -8
  11. data/lib/hanamismith/builders/core.rb +1 -10
  12. data/lib/hanamismith/builders/documentation/readme.rb +0 -44
  13. data/lib/hanamismith/builders/environments/development.rb +1 -12
  14. data/lib/hanamismith/builders/environments/test.rb +1 -12
  15. data/lib/hanamismith/builders/git/ignore.rb +5 -7
  16. data/lib/hanamismith/builders/icon.rb +1 -12
  17. data/lib/hanamismith/builders/javascript.rb +1 -12
  18. data/lib/hanamismith/builders/node.rb +1 -12
  19. data/lib/hanamismith/builders/providers/persistence.rb +1 -12
  20. data/lib/hanamismith/builders/providers/yjit.rb +1 -12
  21. data/lib/hanamismith/builders/puma/configuration.rb +1 -12
  22. data/lib/hanamismith/builders/puma/procfile.rb +1 -12
  23. data/lib/hanamismith/builders/pwa.rb +1 -12
  24. data/lib/hanamismith/builders/rack/attack.rb +1 -10
  25. data/lib/hanamismith/builders/rack/configuration.rb +1 -12
  26. data/lib/hanamismith/builders/rack/deflater.rb +1 -12
  27. data/lib/hanamismith/builders/rake.rb +0 -4
  28. data/lib/hanamismith/builders/refinement.rb +1 -12
  29. data/lib/hanamismith/builders/rspec/application_shared_context.rb +1 -12
  30. data/lib/hanamismith/builders/rspec/database.rb +1 -12
  31. data/lib/hanamismith/builders/rspec/factory.rb +1 -12
  32. data/lib/hanamismith/builders/rspec/hanami.rb +1 -12
  33. data/lib/hanamismith/builders/rspec/helper.rb +4 -4
  34. data/lib/hanamismith/builders/slices/health.rb +1 -10
  35. data/lib/hanamismith/builders/slices/home.rb +1 -10
  36. data/lib/hanamismith/builders/stylesheet.rb +1 -12
  37. data/lib/hanamismith/container.rb +1 -1
  38. data.tar.gz.sig +0 -0
  39. metadata +6 -6
  40. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 90742c269d5aecde1bbbd773436ea2117e2ea56a58ad7198f6c3ccdc4bd7d956
4
- data.tar.gz: f6521b5f64e4f6963ab4e3670c83ddf8876fe1cd4f5a419f6b741c95fcc71cea
3
+ metadata.gz: 22dafc23b98dbf53dd854dbabf9484c287c8609fdfec2028581563031eb81390
4
+ data.tar.gz: 77505a55424a853048c810b2a242f8517b1241cde761f70871a94b8463b5c766
5
5
  SHA512:
6
- metadata.gz: 3b6843404ae34cc8f03b7680c9ad8c74afd0f1401d53f439d0a55dbd257f6e53eccf346850ecd4dd88603f755e84ee20f542f6a09e70cf6a970e4f51e1da559d
7
- data.tar.gz: 0ea9a2c6991d2bb885e176a582e5e942497504316fb0167b663d04bc16c3aa926dd70812cfde92c3405511b9fc81e8791d949eaf6384ee851e80a81aefe99264
6
+ metadata.gz: 6c91d592f7a2341f9f4e075a1e5826197746ff1c37f86e81303c1d3ea1bf7ee1ab390ec4550fed5266a5e871a8f45ce8feaa713f43b04df6faaff4d739032c83
7
+ data.tar.gz: 29f677820904338bbc4cdb3368d1e17ee1b70e9cbbd9e3e256b416efc3af76af2d9e1a96903d249d7d788ac006f3c1b3a2e534264289ae7d5a0516f1f72f3d60
checksums.yaml.gz.sig CHANGED
Binary file
data/hanamismith.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "hanamismith"
5
- spec.version = "0.35.0"
5
+ spec.version = "0.36.0"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
8
  spec.homepage = "https://alchemists.io/projects/hanamismith"
@@ -27,11 +27,11 @@ Gem::Specification.new do |spec|
27
27
  spec.add_dependency "containable", "~> 0.0"
28
28
  spec.add_dependency "dry-monads", "~> 1.6"
29
29
  spec.add_dependency "dry-schema", "~> 1.13"
30
- spec.add_dependency "etcher", "~> 1.3"
30
+ spec.add_dependency "etcher", "~> 1.5"
31
31
  spec.add_dependency "htmx", "~> 1.0"
32
32
  spec.add_dependency "infusible", "~> 3.5"
33
33
  spec.add_dependency "refinements", "~> 12.1"
34
- spec.add_dependency "rubysmith", "~> 6.7"
34
+ spec.add_dependency "rubysmith", "~> 6.8"
35
35
  spec.add_dependency "runcom", "~> 11.0"
36
36
  spec.add_dependency "sod", "~> 0.8"
37
37
  spec.add_dependency "spek", "~> 3.0"
@@ -5,25 +5,14 @@ require "refinements/struct"
5
5
  module Hanamismith
6
6
  module Builders
7
7
  # Builds project skeleton for assets.
8
- class Asset
8
+ class Asset < Rubysmith::Builders::Abstract
9
9
  using Refinements::Struct
10
10
 
11
- def self.call(...) = new(...).call
12
-
13
- def initialize configuration, builder: Rubysmith::Builder
14
- @configuration = configuration
15
- @builder = builder
16
- end
17
-
18
11
  def call
19
12
  path = "%project_name%/config/assets.js.erb"
20
13
  builder.call(configuration.merge(template_path: path)).render
21
14
  configuration
22
15
  end
23
-
24
- private
25
-
26
- attr_reader :configuration, :builder
27
16
  end
28
17
  end
29
18
  end
@@ -5,16 +5,9 @@ require "refinements/struct"
5
5
  module Hanamismith
6
6
  module Builders
7
7
  # Builds project skeleton binstub.
8
- class Binstub
8
+ class Binstub < Rubysmith::Builders::Abstract
9
9
  using Refinements::Struct
10
10
 
11
- def self.call(...) = new(...).call
12
-
13
- def initialize configuration, builder: Rubysmith::Builder
14
- @configuration = configuration
15
- @builder = builder
16
- end
17
-
18
11
  def call
19
12
  builder.call(configuration.merge(template_path: "%project_name%/bin/hanami.erb"))
20
13
  .render
@@ -22,10 +15,6 @@ module Hanamismith
22
15
 
23
16
  configuration
24
17
  end
25
-
26
- private
27
-
28
- attr_reader :configuration, :builder
29
18
  end
30
19
  end
31
20
  end
@@ -8,100 +8,70 @@ module Hanamismith
8
8
  class Bundler < Rubysmith::Builders::Bundler
9
9
  using Refinements::Struct
10
10
 
11
- # :reek:TooManyStatements
12
11
  def call
13
12
  super
14
- insert_main_dependencies
15
- insert_persistence_dependencies
16
- alter_groups
17
- insert_development_group
18
- insert_test_group
19
- insert_development_and_test_group
13
+
14
+ %i[groups hanami main persistence quality devtest development test].each do |name|
15
+ __send__ :"insert_#{name}"
16
+ end
17
+
20
18
  remove_zeitwerk
21
19
  configuration
22
20
  end
23
21
 
24
22
  private
25
23
 
26
- attr_reader :configuration, :builder
27
-
28
- # rubocop:todo Metrics/MethodLength
29
- def insert_main_dependencies
30
- with_template.insert_after("source", %(gem "dry-monads", "~> 1.6"))
31
- .insert_after("source", %(gem "dry-schema", "~> 1.13"\n))
32
- .insert_after("source", %(gem "dry-types", "~> 1.7"\n))
33
- .insert_after("source", %(gem "dry-validation", "~> 1.10"\n))
34
- .insert_after("source", %(gem "hanami", "~> 2.1"\n))
35
- .insert_after("source", %(gem "hanami-assets", "~> 2.1"\n))
36
- .insert_after("source", %(gem "hanami-cli", "~> 2.1"\n))
37
- .insert_after("source", %(gem "hanami-controller", "~> 2.1"\n))
38
- .insert_after("source", %(gem "hanami-router", "~> 2.1"\n))
39
- .insert_after("source", %(gem "hanami-validations", "~> 2.1"\n))
40
- .insert_after("source", %(gem "hanami-view", "~> 2.1"\n))
41
- .insert_after("source", %(gem "htmx", "~> 1.0"\n))
42
- .insert_after("source", %(gem "puma", "~> 6.4"\n))
43
- .insert_after("source", %(gem "rack-attack", "~> 6.7"\n))
44
- end
45
- # rubocop:enable Metrics/MethodLength
46
-
47
- def insert_persistence_dependencies
48
- with_template.insert_after("source", %(gem "pg", "~> 1.5"\n))
49
- .insert_after("source", %(gem "rom", "~> 5.3"\n))
50
- .insert_after("source", %(gem "rom-sql", "~> 3.6"\n))
51
- .insert_after("source", %(\ngem "sequel", "~> 5.77"\n))
52
- end
53
-
54
- # rubocop:todo Metrics/MethodLength
55
- def alter_groups
56
- with_template.insert_after(/group :quality/, %( gem "rubocop-sequel", "~> 0.3"\n))
57
- .insert_after(
58
- /group :development do/,
59
- %( gem "hanami-webconsole", "~> 2.1"\n)
60
- )
61
- .insert_after(/group :development do/, %( gem "localhost", "~> 1.2"\n))
62
- .insert_after(/group :development do/, %( gem "rerun", "~> 0.14"\n))
63
- .insert_after(/group :test/, %( gem "capybara", "~> 3.40"\n))
64
- .insert_after(/group :test/, %( gem "cuprite", "~> 0.15"\n))
65
- .insert_after(/group :test/, %( gem "database_cleaner-sequel", "~> 2.0"\n))
66
- .insert_after(/group :test/, %( gem "launchy", "~> 3.0"\n))
67
- .insert_after(/group :test/, %( gem "rack-test", "~> 2.1"\n))
68
- .insert_after(/group :test/, %( gem "rom-factory", "~> 0.12"\n))
69
- end
70
- # rubocop:enable Metrics/MethodLength
71
-
72
- def insert_development_group
73
- return if configuration.markdown? || configuration.build_rake
24
+ def insert_groups
25
+ return unless configuration.build_minimum
74
26
 
75
- with_template.insert_before(/group :tools do/, <<~CONTENT)
27
+ with_template.append <<~CONTENT
76
28
  group :development do
77
- gem "hanami-webconsole", "~> 2.1"
78
- gem "localhost", "~> 1.2"
79
- gem "rerun", "~> 0.14"
80
29
  end
81
30
 
31
+ group :test do
32
+ end
82
33
  CONTENT
83
34
  end
84
35
 
85
- # rubocop:todo Metrics/MethodLength
86
- def insert_test_group
87
- return if configuration.build_guard || configuration.build_rspec
36
+ def insert_hanami
37
+ with_template.insert_after "source", <<~CONTENT.strip
38
+ gem "hanami", "~> 2.1"
39
+ gem "hanami-assets", "~> 2.1"
40
+ gem "hanami-cli", "~> 2.1"
41
+ gem "hanami-controller", "~> 2.1"
42
+ gem "hanami-router", "~> 2.1"
43
+ gem "hanami-validations", "~> 2.1"
44
+ gem "hanami-view", "~> 2.1"
45
+ CONTENT
46
+ end
88
47
 
89
- with_template.insert_before(/group :tools do/, <<~CONTENT)
90
- group :test do
91
- gem "capybara", "~> 3.40"
92
- gem "cuprite", "~> 0.15"
93
- gem "database_cleaner-sequel", "~> 2.0"
94
- gem "hanami-rspec", "~> 2.1"
95
- gem "launchy", "~> 3.0"
96
- gem "rack-test", "~> 2.1"
97
- gem "rom-factory", "~> 0.12"
98
- end
48
+ def insert_main
49
+ with_template.insert_after "source", <<~CONTENT
50
+ gem "dry-monads", "~> 1.6"
51
+ gem "dry-schema", "~> 1.13"
52
+ gem "dry-types", "~> 1.7"
53
+ gem "dry-validation", "~> 1.10"
54
+ gem "htmx", "~> 1.0"
55
+ gem "puma", "~> 6.4"
56
+ gem "rack-attack", "~> 6.7"
57
+ CONTENT
58
+ end
59
+
60
+ def insert_persistence
61
+ with_template.insert_after "source", <<~CONTENT
99
62
 
63
+ gem "pg", "~> 1.5"
64
+ gem "rom", "~> 5.3"
65
+ gem "rom-sql", "~> 3.6"
66
+ gem "sequel", "~> 5.77"
100
67
  CONTENT
101
68
  end
102
- # rubocop:enable Metrics/MethodLength
103
69
 
104
- def insert_development_and_test_group
70
+ def insert_quality
71
+ with_template.insert_after(/group :quality/, %( gem "rubocop-sequel", "~> 0.3"\n))
72
+ end
73
+
74
+ def insert_devtest
105
75
  with_template.insert_before(/group :development/, <<~CONTENT)
106
76
 
107
77
  group :development, :test do
@@ -111,6 +81,25 @@ module Hanamismith
111
81
  CONTENT
112
82
  end
113
83
 
84
+ def insert_development
85
+ with_template.insert_after(/group :development do/, <<~CONTENT.gsub("gem", " gem"))
86
+ gem "hanami-webconsole", "~> 2.1"
87
+ gem "localhost", "~> 1.2"
88
+ gem "rerun", "~> 0.14"
89
+ CONTENT
90
+ end
91
+
92
+ def insert_test
93
+ with_template.insert_after(/group :test/, <<~CONTENT.gsub("gem", " gem"))
94
+ gem "capybara", "~> 3.40"
95
+ gem "cuprite", "~> 0.15"
96
+ gem "database_cleaner-sequel", "~> 2.0"
97
+ gem "launchy", "~> 3.0"
98
+ gem "rack-test", "~> 2.1"
99
+ gem "rom-factory", "~> 0.12"
100
+ CONTENT
101
+ end
102
+
114
103
  def remove_zeitwerk = with_template.replace(/.+zeitwerk.+\n\n/, "\n")
115
104
 
116
105
  def with_template
@@ -18,10 +18,6 @@ module Hanamismith
18
18
 
19
19
  configuration
20
20
  end
21
-
22
- private
23
-
24
- attr_reader :configuration, :builder
25
21
  end
26
22
  end
27
23
  end
@@ -6,16 +6,9 @@ module Hanamismith
6
6
  module Builders
7
7
  module CI
8
8
  # Builds project skeleton Circle CI configuration.
9
- class Circle
9
+ class Circle < Rubysmith::Builders::Abstract
10
10
  using Refinements::Struct
11
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
12
  def call
20
13
  return configuration unless configuration.build_circle_ci
21
14
 
@@ -23,10 +16,6 @@ module Hanamismith
23
16
  builder.call(configuration.merge(template_path: path)).render.replace(/\n\n\Z/, "\n")
24
17
  configuration
25
18
  end
26
-
27
- private
28
-
29
- attr_reader :configuration, :builder
30
19
  end
31
20
  end
32
21
  end
@@ -6,16 +6,9 @@ module Hanamismith
6
6
  module Builders
7
7
  module CI
8
8
  # Builds project skeleton GitHub CI configuration.
9
- class GitHub
9
+ class GitHub < Rubysmith::Builders::Abstract
10
10
  using Refinements::Struct
11
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
12
  def call
20
13
  return configuration unless configuration.build_git_hub_ci
21
14
 
@@ -23,10 +16,6 @@ module Hanamismith
23
16
  builder.call(configuration.merge(template_path: path)).render.replace(/\n\n\Z/, "\n")
24
17
  configuration
25
18
  end
26
-
27
- private
28
-
29
- attr_reader :configuration, :builder
30
19
  end
31
20
  end
32
21
  end
@@ -23,14 +23,13 @@ module Hanamismith
23
23
  private
24
24
 
25
25
  def add_irb_autocomplete
26
- with_template.insert_before "IRB.start",
27
- <<~CODE
28
- unless Hanami.env? :development, :test
29
- ENV["IRB_USE_AUTOCOMPLETE"] ||= "false"
30
- puts "IRB autocomplete disabled."
31
- end
32
-
33
- CODE
26
+ with_template.insert_before "IRB.start", <<~CODE
27
+ unless Hanami.env? :development, :test
28
+ ENV["IRB_USE_AUTOCOMPLETE"] ||= "false"
29
+ puts "IRB autocomplete disabled."
30
+ end
31
+
32
+ CODE
34
33
  end
35
34
 
36
35
  def with_template
@@ -5,16 +5,9 @@ require "refinements/struct"
5
5
  module Hanamismith
6
6
  module Builders
7
7
  # Builds project skeleton foundation.
8
- class Core
8
+ class Core < Rubysmith::Builders::Abstract
9
9
  using Refinements::Struct
10
10
 
11
- def self.call(...) = new(...).call
12
-
13
- def initialize configuration, builder: Rubysmith::Builder
14
- @configuration = configuration
15
- @builder = builder
16
- end
17
-
18
11
  def call
19
12
  private_methods.grep(/\Aadd_/).sort.each { |method| __send__ method }
20
13
  configuration
@@ -22,8 +15,6 @@ module Hanamismith
22
15
 
23
16
  private
24
17
 
25
- attr_reader :configuration, :builder
26
-
27
18
  def add_action
28
19
  builder.call(configuration.merge(template_path: "%project_name%/app/action.rb.erb")).render
29
20
  end
@@ -14,55 +14,11 @@ module Hanamismith
14
14
 
15
15
  super
16
16
  builder.call(configuration.merge(template_path: "%project_name%/README.#{kind}.erb"))
17
- .replace(/Setup.+Usage/m, setup)
18
17
  .replace("Rubysmith", "Hanamismith")
19
18
  .replace("rubysmith", "hanamismith")
20
19
 
21
20
  configuration
22
21
  end
23
-
24
- private
25
-
26
- attr_reader :configuration, :builder
27
-
28
- def kind = configuration.documentation_format
29
-
30
- def setup = kind == "adoc" ? ascii_setup : markdown_setup
31
-
32
- # rubocop:disable Metrics/MethodLength
33
- def ascii_setup
34
- <<~CONTENT.strip
35
- Setup
36
-
37
- To set up the project, run:
38
-
39
- [source,bash]
40
- ----
41
- git clone #{configuration.computed_project_url_source}
42
- cd #{configuration.project_name}
43
- bin/setup
44
- ----
45
-
46
- == Usage
47
- CONTENT
48
- end
49
-
50
- def markdown_setup
51
- <<~CONTENT.strip
52
- Setup
53
-
54
- To set up the project, run:
55
-
56
- ``` bash
57
- git clone #{configuration.computed_project_url_source}
58
- cd #{configuration.project_name}
59
- bin/setup
60
- ```
61
-
62
- ## Usage
63
- CONTENT
64
- end
65
- # rubocop:enable Metrics/MethodLength
66
22
  end
67
23
  end
68
24
  end
@@ -6,16 +6,9 @@ module Hanamismith
6
6
  module Builders
7
7
  module Environments
8
8
  # Builds development environment skeleton.
9
- class Development
9
+ class Development < Rubysmith::Builders::Abstract
10
10
  using Refinements::Struct
11
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
12
  def call
20
13
  builder.call(configuration.merge(template_path: "%project_name%/env.development.erb"))
21
14
  .render
@@ -23,10 +16,6 @@ module Hanamismith
23
16
 
24
17
  configuration
25
18
  end
26
-
27
- private
28
-
29
- attr_reader :configuration, :builder
30
19
  end
31
20
  end
32
21
  end
@@ -6,16 +6,9 @@ module Hanamismith
6
6
  module Builders
7
7
  module Environments
8
8
  # Builds test environment skeleton.
9
- class Test
9
+ class Test < Rubysmith::Builders::Abstract
10
10
  using Refinements::Struct
11
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
12
  def call
20
13
  builder.call(configuration.merge(template_path: "%project_name%/env.test.erb"))
21
14
  .render
@@ -23,10 +16,6 @@ module Hanamismith
23
16
 
24
17
  configuration
25
18
  end
26
-
27
- private
28
-
29
- attr_reader :configuration, :builder
30
19
  end
31
20
  end
32
21
  end
@@ -14,16 +14,14 @@ module Hanamismith
14
14
 
15
15
  super
16
16
  builder.call(configuration.merge(template_path: "%project_name%/.gitignore.erb"))
17
- .insert_before("tmp\n", "node_modules\n")
18
- .insert_before("tmp\n", "public/assets\n")
19
- .insert_before("tmp\n", "public/assets.json\n")
17
+ .insert_before "tmp\n", <<~CONTENT
18
+ node_modules
19
+ public/assets
20
+ public/assets.json
21
+ CONTENT
20
22
 
21
23
  configuration
22
24
  end
23
-
24
- private
25
-
26
- attr_reader :configuration, :builder
27
25
  end
28
26
  end
29
27
  end
@@ -5,25 +5,14 @@ require "refinements/struct"
5
5
  module Hanamismith
6
6
  module Builders
7
7
  # Builds project skeleton SVG icon.
8
- class Icon
8
+ class Icon < Rubysmith::Builders::Abstract
9
9
  using Refinements::Struct
10
10
 
11
- def self.call(...) = new(...).call
12
-
13
- def initialize configuration, builder: Rubysmith::Builder
14
- @configuration = configuration
15
- @builder = builder
16
- end
17
-
18
11
  def call
19
12
  path = "%project_name%/app/assets/images/icon.svg.erb"
20
13
  builder.call(configuration.merge(template_path: path)).render
21
14
  configuration
22
15
  end
23
-
24
- private
25
-
26
- attr_reader :configuration, :builder
27
16
  end
28
17
  end
29
18
  end
@@ -5,25 +5,14 @@ require "refinements/struct"
5
5
  module Hanamismith
6
6
  module Builders
7
7
  # Builds project skeleton javascript.
8
- class Javascript
8
+ class Javascript < Rubysmith::Builders::Abstract
9
9
  using Refinements::Struct
10
10
 
11
- def self.call(...) = new(...).call
12
-
13
- def initialize configuration, builder: Rubysmith::Builder
14
- @configuration = configuration
15
- @builder = builder
16
- end
17
-
18
11
  def call
19
12
  path = "%project_name%/slices/home/assets/js/app.js.erb"
20
13
  builder.call(configuration.merge(template_path: path)).render
21
14
  configuration
22
15
  end
23
-
24
- private
25
-
26
- attr_reader :configuration, :builder
27
16
  end
28
17
  end
29
18
  end
@@ -5,25 +5,14 @@ require "refinements/struct"
5
5
  module Hanamismith
6
6
  module Builders
7
7
  # Builds project skeleton for Node.
8
- class Node
8
+ class Node < Rubysmith::Builders::Abstract
9
9
  using Refinements::Struct
10
10
 
11
- def self.call(...) = new(...).call
12
-
13
- def initialize configuration, builder: Rubysmith::Builder
14
- @configuration = configuration
15
- @builder = builder
16
- end
17
-
18
11
  def call
19
12
  builder.call(configuration.merge(template_path: "%project_name%/package.json.erb")).render
20
13
  builder.call(configuration.merge(template_path: "%project_name%/.node-version.erb")).render
21
14
  configuration
22
15
  end
23
-
24
- private
25
-
26
- attr_reader :configuration, :builder
27
16
  end
28
17
  end
29
18
  end
@@ -6,25 +6,14 @@ module Hanamismith
6
6
  module Builders
7
7
  module Providers
8
8
  # Builds project skeleton for persistence provider.
9
- class Persistence
9
+ class Persistence < Rubysmith::Builders::Abstract
10
10
  using Refinements::Struct
11
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
12
  def call
20
13
  path = "%project_name%/config/providers/persistence.rb.erb"
21
14
  builder.call(configuration.merge(template_path: path)).render
22
15
  configuration
23
16
  end
24
-
25
- private
26
-
27
- attr_reader :configuration, :builder
28
17
  end
29
18
  end
30
19
  end
@@ -6,25 +6,14 @@ module Hanamismith
6
6
  module Builders
7
7
  module Providers
8
8
  # Builds project skeleton for YJIT provider.
9
- class YJIT
9
+ class YJIT < Rubysmith::Builders::Abstract
10
10
  using Refinements::Struct
11
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
12
  def call
20
13
  path = "%project_name%/config/providers/yjit.rb.erb"
21
14
  builder.call(configuration.merge(template_path: path)).render
22
15
  configuration
23
16
  end
24
-
25
- private
26
-
27
- attr_reader :configuration, :builder
28
17
  end
29
18
  end
30
19
  end
@@ -6,26 +6,15 @@ module Hanamismith
6
6
  module Builders
7
7
  module Puma
8
8
  # Builds project skeleton Puma configuration.
9
- class Configuration
9
+ class Configuration < Rubysmith::Builders::Abstract
10
10
  using Refinements::Struct
11
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
12
  def call
20
13
  builder.call(configuration.merge(template_path: "%project_name%/config/puma.rb.erb"))
21
14
  .render
22
15
 
23
16
  configuration
24
17
  end
25
-
26
- private
27
-
28
- attr_reader :configuration, :builder
29
18
  end
30
19
  end
31
20
  end
@@ -6,25 +6,14 @@ module Hanamismith
6
6
  module Builders
7
7
  module Puma
8
8
  # Builds project skeleton Puma Procfile for production and development environments.
9
- class Procfile
9
+ class Procfile < Rubysmith::Builders::Abstract
10
10
  using Refinements::Struct
11
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
12
  def call
20
13
  builder.call(configuration.merge(template_path: "%project_name%/Procfile.erb")).render
21
14
  builder.call(configuration.merge(template_path: "%project_name%/Procfile.dev.erb")).render
22
15
  configuration
23
16
  end
24
-
25
- private
26
-
27
- attr_reader :configuration, :builder
28
17
  end
29
18
  end
30
19
  end
@@ -5,25 +5,14 @@ require "refinements/struct"
5
5
  module Hanamismith
6
6
  module Builders
7
7
  # Builds project skeleton Progressive Web Application (PWA) manifest.
8
- class PWA
8
+ class PWA < Rubysmith::Builders::Abstract
9
9
  using Refinements::Struct
10
10
 
11
- def self.call(...) = new(...).call
12
-
13
- def initialize configuration, builder: Rubysmith::Builder
14
- @configuration = configuration
15
- @builder = builder
16
- end
17
-
18
11
  def call
19
12
  path = "%project_name%/app/assets/pwa/manifest.webmanifest.erb"
20
13
  builder.call(configuration.merge(template_path: path)).render
21
14
  configuration
22
15
  end
23
-
24
- private
25
-
26
- attr_reader :configuration, :builder
27
16
  end
28
17
  end
29
18
  end
@@ -6,16 +6,9 @@ module Hanamismith
6
6
  module Builders
7
7
  module Rack
8
8
  # Builds project skeleton.
9
- class Attack
9
+ class Attack < Rubysmith::Builders::Abstract
10
10
  using Refinements::Struct
11
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
12
  def call
20
13
  add_configuration
21
14
  add_middleware
@@ -24,8 +17,6 @@ module Hanamismith
24
17
 
25
18
  private
26
19
 
27
- attr_reader :configuration, :builder
28
-
29
20
  def add_configuration
30
21
  template_path = "%project_name%/config/initializers/rack_attack.rb.erb"
31
22
  builder.call(configuration.merge(template_path:)).render
@@ -6,24 +6,13 @@ module Hanamismith
6
6
  module Builders
7
7
  module Rack
8
8
  # Builds project skeleton.
9
- class Configuration
9
+ class Configuration < Rubysmith::Builders::Abstract
10
10
  using Refinements::Struct
11
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
12
  def call
20
13
  builder.call(configuration.merge(template_path: "%project_name%/config.ru.erb")).render
21
14
  configuration
22
15
  end
23
-
24
- private
25
-
26
- attr_reader :configuration, :builder
27
16
  end
28
17
  end
29
18
  end
@@ -6,26 +6,15 @@ module Hanamismith
6
6
  module Builders
7
7
  module Rack
8
8
  # Builds project skeleton.
9
- class Deflater
9
+ class Deflater < Rubysmith::Builders::Abstract
10
10
  using Refinements::Struct
11
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
12
  def call
20
13
  builder.call(configuration.merge(template_path: "%project_name%/config/app.rb.erb"))
21
14
  .insert_after(/Rack::Attack/, " config.middleware.use Rack::Deflater\n")
22
15
 
23
16
  configuration
24
17
  end
25
-
26
- private
27
-
28
- attr_reader :configuration, :builder
29
18
  end
30
19
  end
31
20
  end
@@ -18,10 +18,6 @@ module Hanamismith
18
18
 
19
19
  configuration
20
20
  end
21
-
22
- private
23
-
24
- attr_reader :configuration, :builder
25
21
  end
26
22
  end
27
23
  end
@@ -5,16 +5,9 @@ require "refinements/struct"
5
5
  module Hanamismith
6
6
  module Builders
7
7
  # Builds project skeleton foundation.
8
- class Refinement
8
+ class Refinement < Rubysmith::Builders::Abstract
9
9
  using Refinements::Struct
10
10
 
11
- def self.call(...) = new(...).call
12
-
13
- def initialize configuration, builder: Rubysmith::Builder
14
- @configuration = configuration
15
- @builder = builder
16
- end
17
-
18
11
  def call
19
12
  %w[
20
13
  %project_name%/lib/%project_path%/refines/actions/response.rb.erb
@@ -25,10 +18,6 @@ module Hanamismith
25
18
 
26
19
  configuration
27
20
  end
28
-
29
- private
30
-
31
- attr_reader :configuration, :builder
32
21
  end
33
22
  end
34
23
  end
@@ -6,16 +6,9 @@ module Hanamismith
6
6
  module Builders
7
7
  module RSpec
8
8
  # Builds project skeleton RSpec application shared context.
9
- class ApplicationSharedContext
9
+ class ApplicationSharedContext < Rubysmith::Builders::Abstract
10
10
  using Refinements::Struct
11
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
12
  def call
20
13
  return configuration unless configuration.build_rspec
21
14
 
@@ -24,10 +17,6 @@ module Hanamismith
24
17
 
25
18
  configuration
26
19
  end
27
-
28
- private
29
-
30
- attr_reader :configuration, :builder
31
20
  end
32
21
  end
33
22
  end
@@ -6,16 +6,9 @@ module Hanamismith
6
6
  module Builders
7
7
  module RSpec
8
8
  # Builds project skeleton RSpec application database support.
9
- class Database
9
+ class Database < Rubysmith::Builders::Abstract
10
10
  using Refinements::Struct
11
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
12
  def call
20
13
  return configuration unless configuration.build_rspec
21
14
 
@@ -24,10 +17,6 @@ module Hanamismith
24
17
 
25
18
  configuration
26
19
  end
27
-
28
- private
29
-
30
- attr_reader :configuration, :builder
31
20
  end
32
21
  end
33
22
  end
@@ -6,16 +6,9 @@ module Hanamismith
6
6
  module Builders
7
7
  module RSpec
8
8
  # Builds project skeleton RSpec application database support.
9
- class Factory
9
+ class Factory < Rubysmith::Builders::Abstract
10
10
  using Refinements::Struct
11
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
12
  def call
20
13
  return configuration unless configuration.build_rspec
21
14
 
@@ -24,10 +17,6 @@ module Hanamismith
24
17
 
25
18
  configuration
26
19
  end
27
-
28
- private
29
-
30
- attr_reader :configuration, :builder
31
20
  end
32
21
  end
33
22
  end
@@ -6,16 +6,9 @@ module Hanamismith
6
6
  module Builders
7
7
  module RSpec
8
8
  # Builds project skeleton RSpec helper.
9
- class Hanami
9
+ class Hanami < Rubysmith::Builders::Abstract
10
10
  using Refinements::Struct
11
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
12
  def call
20
13
  return configuration unless configuration.build_rspec
21
14
 
@@ -24,10 +17,6 @@ module Hanamismith
24
17
 
25
18
  configuration
26
19
  end
27
-
28
- private
29
-
30
- attr_reader :configuration, :builder
31
20
  end
32
21
  end
33
22
  end
@@ -11,7 +11,7 @@ module Hanamismith
11
11
 
12
12
  def initialize(...)
13
13
  super
14
- @instance = builder.call configuration.merge(
14
+ @template = builder.call configuration.merge(
15
15
  template_path: "%project_name%/spec/spec_helper.rb.erb"
16
16
  )
17
17
  end
@@ -27,14 +27,14 @@ module Hanamismith
27
27
 
28
28
  private
29
29
 
30
- attr_reader :instance
30
+ attr_reader :template
31
31
 
32
32
  def remove_project_requirement
33
- instance.replace(/require.+#{configuration.project_name}.+\n/, "")
33
+ template.replace(/require.+#{configuration.project_name}.+\n/, "")
34
34
  end
35
35
 
36
36
  def disable_simple_cov_eval
37
- instance.replace(
37
+ template.replace(
38
38
  /enable_coverage_for_eval\n/,
39
39
  "# TODO: Enable once this issue is fixed: " \
40
40
  "https://bugs.ruby-lang.org/issues/19363.\n " \
@@ -6,16 +6,9 @@ module Hanamismith
6
6
  module Builders
7
7
  module Slices
8
8
  # Builds health slice skeleton.
9
- class Health
9
+ class Health < Rubysmith::Builders::Abstract
10
10
  using Refinements::Struct
11
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
12
  def call
20
13
  private_methods.grep(/\Aadd_/).sort.each { |method| __send__ method }
21
14
  configuration
@@ -23,8 +16,6 @@ module Hanamismith
23
16
 
24
17
  private
25
18
 
26
- attr_reader :configuration, :builder
27
-
28
19
  def add_configuration
29
20
  path = "%project_name%/config/slices/health.rb.erb"
30
21
  builder.call(configuration.merge(template_path: path)).render
@@ -6,16 +6,9 @@ module Hanamismith
6
6
  module Builders
7
7
  module Slices
8
8
  # Builds home slice skeleton.
9
- class Home
9
+ class Home < Rubysmith::Builders::Abstract
10
10
  using Refinements::Struct
11
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
12
  def call
20
13
  private_methods.grep(/\Aadd_/).sort.each { |method| __send__ method }
21
14
  configuration
@@ -23,8 +16,6 @@ module Hanamismith
23
16
 
24
17
  private
25
18
 
26
- attr_reader :configuration, :builder
27
-
28
19
  def add_configuration
29
20
  path = "%project_name%/config/slices/home.rb.erb"
30
21
  builder.call(configuration.merge(template_path: path)).render
@@ -5,25 +5,14 @@ require "refinements/struct"
5
5
  module Hanamismith
6
6
  module Builders
7
7
  # Builds project skeleton stylesheet.
8
- class Stylesheet
8
+ class Stylesheet < Rubysmith::Builders::Abstract
9
9
  using Refinements::Struct
10
10
 
11
- def self.call(...) = new(...).call
12
-
13
- def initialize configuration, builder: Rubysmith::Builder
14
- @configuration = configuration
15
- @builder = builder
16
- end
17
-
18
11
  def call
19
12
  path = "%project_name%/slices/home/assets/css/app.css.erb"
20
13
  builder.call(configuration.merge(template_path: path)).render
21
14
  configuration
22
15
  end
23
-
24
- private
25
-
26
- attr_reader :configuration, :builder
27
16
  end
28
17
  end
29
18
  end
@@ -21,7 +21,6 @@ module Hanamismith
21
21
  model: Rubysmith::Configuration::Model
22
22
 
23
23
  registry.add_loader(Etcher::Loaders::YAML.new(self[:defaults_path]))
24
- .add_transformer(Rubysmith::Configuration::Transformers::CurrentTime)
25
24
  .add_transformer(Rubysmith::Configuration::Transformers::GitHubUser.new)
26
25
  .add_transformer(Rubysmith::Configuration::Transformers::GitEmail.new)
27
26
  .add_transformer(Rubysmith::Configuration::Transformers::GitUser.new)
@@ -32,6 +31,7 @@ module Hanamismith
32
31
  )
33
32
  )
34
33
  .add_transformer(Rubysmith::Configuration::Transformers::TargetRoot)
34
+ .add_transformer(Etcher::Transformers::Time.new)
35
35
  end
36
36
 
37
37
  register(:specification) { Spek::Loader.call "#{__dir__}/../../hanamismith.gemspec" }
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hanamismith
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.35.0
4
+ version: 0.36.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -35,7 +35,7 @@ cert_chain:
35
35
  3n5C8/6Zh9DYTkpcwPSuIfAga6wf4nXc9m6JAw8AuMLaiWN/r/2s4zJsUHYERJEu
36
36
  gZGm4JqtuSg8pYjPeIJxS960owq+SfuC+jxqmRA54BisFCv/0VOJi7tiJVY=
37
37
  -----END CERTIFICATE-----
38
- date: 2024-05-16 00:00:00.000000000 Z
38
+ date: 2024-05-25 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: cogger
@@ -99,14 +99,14 @@ dependencies:
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: '1.3'
102
+ version: '1.5'
103
103
  type: :runtime
104
104
  prerelease: false
105
105
  version_requirements: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: '1.3'
109
+ version: '1.5'
110
110
  - !ruby/object:Gem::Dependency
111
111
  name: htmx
112
112
  requirement: !ruby/object:Gem::Requirement
@@ -155,14 +155,14 @@ dependencies:
155
155
  requirements:
156
156
  - - "~>"
157
157
  - !ruby/object:Gem::Version
158
- version: '6.7'
158
+ version: '6.8'
159
159
  type: :runtime
160
160
  prerelease: false
161
161
  version_requirements: !ruby/object:Gem::Requirement
162
162
  requirements:
163
163
  - - "~>"
164
164
  - !ruby/object:Gem::Version
165
- version: '6.7'
165
+ version: '6.8'
166
166
  - !ruby/object:Gem::Dependency
167
167
  name: runcom
168
168
  requirement: !ruby/object:Gem::Requirement
metadata.gz.sig CHANGED
Binary file