hanamismith 1.9.0 → 1.11.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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/README.adoc +8 -6
- data/hanamismith.gemspec +3 -3
- data/lib/hanamismith/builders/asset.rb +1 -1
- data/lib/hanamismith/builders/binstub.rb +1 -1
- data/lib/hanamismith/builders/bundler.rb +2 -2
- data/lib/hanamismith/builders/caliber.rb +1 -1
- data/lib/hanamismith/builders/circle_ci.rb +16 -1
- data/lib/hanamismith/builders/console.rb +2 -2
- data/lib/hanamismith/builders/core.rb +13 -14
- data/lib/hanamismith/builders/docker/compose.rb +1 -1
- data/lib/hanamismith/builders/docker/file.rb +1 -1
- data/lib/hanamismith/builders/documentation/readme.rb +1 -1
- data/lib/hanamismith/builders/environments/all.rb +3 -2
- data/lib/hanamismith/builders/environments/development.rb +1 -1
- data/lib/hanamismith/builders/environments/test.rb +1 -1
- data/lib/hanamismith/builders/git/ignore.rb +1 -1
- data/lib/hanamismith/builders/git_hub/ci.rb +1 -1
- data/lib/hanamismith/builders/icon.rb +1 -1
- data/lib/hanamismith/builders/javascript.rb +1 -1
- data/lib/hanamismith/builders/layout.rb +35 -1
- data/lib/hanamismith/builders/node.rb +1 -1
- data/lib/hanamismith/builders/providers/htmx.rb +20 -0
- data/lib/hanamismith/builders/puma/configuration.rb +1 -1
- data/lib/hanamismith/builders/puma/procfile.rb +2 -2
- data/lib/hanamismith/builders/pwa.rb +1 -1
- data/lib/hanamismith/builders/rack/attack.rb +2 -2
- data/lib/hanamismith/builders/rack/configuration.rb +1 -1
- data/lib/hanamismith/builders/rack/deflater.rb +1 -1
- data/lib/hanamismith/builders/rake/configuration.rb +1 -1
- data/lib/hanamismith/builders/refinement.rb +1 -1
- data/lib/hanamismith/builders/rspec/application_shared_context.rb +1 -1
- data/lib/hanamismith/builders/rspec/hanami.rb +1 -1
- data/lib/hanamismith/builders/rspec/helper.rb +1 -1
- data/lib/hanamismith/builders/setup.rb +1 -1
- data/lib/hanamismith/builders/slices/health.rb +8 -8
- data/lib/hanamismith/builders/slices/home.rb +9 -9
- data/lib/hanamismith/builders/stylesheet.rb +10 -2
- data/lib/hanamismith/cli/commands/build.rb +1 -0
- data/lib/hanamismith/templates/%project_name%/.circleci/config.yml.erb +1 -0
- data/lib/hanamismith/templates/%project_name%/app/assets/css/colors.css.erb +4 -0
- data/lib/hanamismith/templates/%project_name%/app/assets/css/defaults.css.erb +120 -0
- data/lib/hanamismith/templates/%project_name%/app/assets/css/{app.css.erb → layout.css.erb} +16 -17
- data/lib/hanamismith/templates/%project_name%/app/assets/css/settings.css.erb +7 -0
- data/lib/hanamismith/templates/%project_name%/app/assets/css/view_transitions.css.erb +5 -0
- data/lib/hanamismith/templates/%project_name%/app/assets/js/app.js.erb +8 -1
- data/lib/hanamismith/templates/%project_name%/app/templates/layouts/app.html.erb.erb +9 -8
- data/lib/hanamismith/templates/%project_name%/config/app.rb.erb +13 -1
- data/lib/hanamismith/templates/%project_name%/config/providers/htmx.rb.erb +5 -0
- data/lib/hanamismith/templates/%project_name%/config/settings.rb.erb +1 -0
- data/lib/hanamismith/templates/%project_name%/env.erb +4 -1
- data/lib/hanamismith/templates/%project_name%/lib/%project_path%/refines/actions/response.rb.erb +3 -1
- data/lib/hanamismith/templates/%project_name%/package.json.erb +3 -2
- data/lib/hanamismith/templates/%project_name%/spec/lib/%project_path%/refines/actions/response_spec.rb.erb +15 -3
- data.tar.gz.sig +1 -1
- metadata +13 -9
- metadata.gz.sig +0 -0
- data/lib/hanamismith/templates/%project_name%/config/providers/persistence.rb.erb +0 -44
- data/lib/hanamismith/templates/%project_name%/config/providers/yjit.rb.erb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 99d8a44f11d0435d1a4a42b5fe9cccb713ffa2cea43da1ce7291cfaabc926b17
|
4
|
+
data.tar.gz: 0e802783aededd9c3779551d0204f8ad246615940586c3eb60262a8fc29caaf1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3d77a113ad86e3a95528667b2c5c217a3580b0a7fc4f27a899e02335c7a9a92a688fc1bed007f0ca29afcfcac434cf5c591f49565016c1b7696210357b7b4b0
|
7
|
+
data.tar.gz: 949f259fc32d8fad670a2c8d0ee627817c87348a66699298899b80d7a5347cf18f6c73157f20b78f9350852a7d36d13b4e609743ced1c6bae5bd444d035de11a
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/README.adoc
CHANGED
@@ -7,8 +7,10 @@
|
|
7
7
|
:dotenv_link: link:https://github.com/bkeepers/dotenv[Dotenv]
|
8
8
|
:dotfiles_link: link:https://alchemists.io/projects/dotfiles[Dotfiles]
|
9
9
|
:hanami_link: link:https://hanamirb.org[Hanami]
|
10
|
-
:
|
10
|
+
:htmx_gem_link: link:https://alchemists.io/projects/htmx[HTMX]
|
11
|
+
:htmx_link: link:https://htmx.org[htmx]
|
11
12
|
:pg_link: link:https://github.com/ged/ruby-pg[pg]
|
13
|
+
:postgresql_link: link:https://www.postgresql.org[PostgreSQL]
|
12
14
|
:puma_link: link:https://puma.io[Puma]
|
13
15
|
:rack_link: link:https://github.com/rack/rack[Rack]
|
14
16
|
:rom_link: link:https://rom-rb.org[ROM]
|
@@ -22,18 +24,18 @@ toc::[]
|
|
22
24
|
|
23
25
|
== Features
|
24
26
|
|
25
|
-
* Built atop {rubysmith_link} for building project
|
27
|
+
* Built atop {rubysmith_link} for building project skeletons.
|
26
28
|
* Uses {hanami_link} for web application development.
|
27
|
-
* Uses {htmx_link} for Hypermedia REST so you can write less code and avoid bloated JavaScript stacks.
|
28
|
-
* Uses {pg_link}
|
29
|
+
* Uses {htmx_link} (along with the {htmx_gem_link} gem) for Hypermedia REST so you can write less code and avoid bloated JavaScript stacks.
|
30
|
+
* Uses {postgresql_link} for the database, {pg_link} for the client, and {rom_link} Ruby object mapper.
|
29
31
|
* Uses {rack_link}, specifically: link:https://github.com/rack/rack-attack[Rack::Attack], `Rack::Deflater`, and `Rack::Static`.
|
30
|
-
* Uses {puma_link}
|
32
|
+
* Uses {puma_link} for the web server including being fully configured for local and production environments.
|
31
33
|
* Uses {capybara_link} with {cuprite_link} (driver) for full, headless, feature testing.
|
32
34
|
* Uses {dotenv_link} for managing your environment configurations.
|
33
35
|
* Provides support for Continuous Integration systems like link:https://circleci.com[Circle CI] (default) and link:https://docs.github.com/en/actions[GitHub Actions].
|
34
36
|
* Provides the `/up` health check endpoint via the `Health` slice.
|
35
37
|
* Configures link:https://github.com/ruby/ruby/blob/master/doc/yjit/yjit.md[YJIT] so you can deploy with YJIT disabled (i.e. `RUBYOPT=--yjit-disable --yjit-exec-mem-size=192`) and let the application enable upon boot.
|
36
|
-
*
|
38
|
+
* Ensures link:https://github.com/ruby/irb[IRB] console autocomplete is disabled when used in production-like environments. You can re-enable IRB autocomplete by setting `IRB_USE_AUTOCOMPLETE=true` before launching your console in non development or test environments.
|
37
39
|
|
38
40
|
== Screenshots/Screencasts
|
39
41
|
|
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 = "1.
|
5
|
+
spec.version = "1.11.0"
|
6
6
|
spec.authors = ["Brooke Kuhlmann"]
|
7
7
|
spec.email = ["brooke@alchemists.io"]
|
8
8
|
spec.homepage = "https://alchemists.io/projects/hanamismith"
|
@@ -30,8 +30,8 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.add_dependency "etcher", "~> 3.0"
|
31
31
|
spec.add_dependency "htmx", "~> 2.0"
|
32
32
|
spec.add_dependency "infusible", "~> 4.0"
|
33
|
-
spec.add_dependency "refinements", "~> 13.
|
34
|
-
spec.add_dependency "rubysmith", "~> 8.
|
33
|
+
spec.add_dependency "refinements", "~> 13.5"
|
34
|
+
spec.add_dependency "rubysmith", "~> 8.7"
|
35
35
|
spec.add_dependency "runcom", "~> 12.0"
|
36
36
|
spec.add_dependency "sod", "~> 1.0"
|
37
37
|
spec.add_dependency "spek", "~> 4.0"
|
@@ -52,7 +52,7 @@ module Hanamismith
|
|
52
52
|
gem "dry-validation", "~> 1.10"
|
53
53
|
gem "htmx", "~> 2.1"
|
54
54
|
gem "overmind", "~> 2.5"
|
55
|
-
gem "puma", "~>
|
55
|
+
gem "puma", "~> 7.0"
|
56
56
|
gem "rack-attack", "~> 6.7"
|
57
57
|
CONTENT
|
58
58
|
end
|
@@ -104,7 +104,7 @@ module Hanamismith
|
|
104
104
|
def remove_zeitwerk = with_template.replace(/.+zeitwerk.+\n\n/, "\n")
|
105
105
|
|
106
106
|
def with_template
|
107
|
-
builder.call settings.
|
107
|
+
builder.call settings.with(template_path: "%project_name%/Gemfile.erb")
|
108
108
|
end
|
109
109
|
end
|
110
110
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "refinements/struct"
|
4
|
+
require "securerandom"
|
4
5
|
|
5
6
|
module Hanamismith
|
6
7
|
module Builders
|
@@ -8,13 +9,27 @@ module Hanamismith
|
|
8
9
|
class CircleCI < Rubysmith::Builders::Abstract
|
9
10
|
using Refinements::Struct
|
10
11
|
|
12
|
+
def initialize(generator: SecureRandom, **)
|
13
|
+
@generator = generator
|
14
|
+
super(**)
|
15
|
+
end
|
16
|
+
|
11
17
|
def call
|
12
18
|
return false unless settings.build_circle_ci
|
13
19
|
|
14
20
|
path = "%project_name%/.circleci/config.yml.erb"
|
15
|
-
|
21
|
+
|
22
|
+
builder.call(settings.with(template_path: path))
|
23
|
+
.render
|
24
|
+
.replace("<app_secret>", generator.hex(30))
|
25
|
+
.replace(/\n\n\Z/, "\n")
|
26
|
+
|
16
27
|
true
|
17
28
|
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
attr_reader :generator
|
18
33
|
end
|
19
34
|
end
|
20
35
|
end
|
@@ -12,7 +12,7 @@ module Hanamismith
|
|
12
12
|
return false unless settings.build_console
|
13
13
|
|
14
14
|
super
|
15
|
-
builder.call(settings.
|
15
|
+
builder.call(settings.with(template_path: "%project_name%/bin/console.erb"))
|
16
16
|
.replace(/require Bundler.root.+/, %(require "hanami/prepare"))
|
17
17
|
|
18
18
|
add_irb_autocomplete
|
@@ -33,7 +33,7 @@ module Hanamismith
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def with_template
|
36
|
-
builder.call settings.
|
36
|
+
builder.call settings.with(template_path: "%project_name%/bin/console.erb")
|
37
37
|
end
|
38
38
|
end
|
39
39
|
end
|
@@ -16,63 +16,62 @@ module Hanamismith
|
|
16
16
|
private
|
17
17
|
|
18
18
|
def add_db_relation
|
19
|
-
builder.call(settings.
|
19
|
+
builder.call(settings.with(template_path: "%project_name%/app/db/relation.rb.erb")).render
|
20
20
|
end
|
21
21
|
|
22
22
|
def add_db_repository
|
23
|
-
builder.call(settings.
|
24
|
-
.render
|
23
|
+
builder.call(settings.with(template_path: "%project_name%/app/db/repository.rb.erb")).render
|
25
24
|
end
|
26
25
|
|
27
26
|
def add_db_struct
|
28
|
-
builder.call(settings.
|
27
|
+
builder.call(settings.with(template_path: "%project_name%/app/db/struct.rb.erb")).render
|
29
28
|
end
|
30
29
|
|
31
30
|
def add_action
|
32
|
-
builder.call(settings.
|
31
|
+
builder.call(settings.with(template_path: "%project_name%/app/action.rb.erb")).render
|
33
32
|
end
|
34
33
|
|
35
34
|
def add_view
|
36
|
-
builder.call(settings.
|
35
|
+
builder.call(settings.with(template_path: "%project_name%/app/view.rb.erb")).render
|
37
36
|
end
|
38
37
|
|
39
38
|
def add_application_configuration
|
40
|
-
builder.call(settings.
|
39
|
+
builder.call(settings.with(template_path: "%project_name%/config/app.rb.erb")).render
|
41
40
|
end
|
42
41
|
|
43
42
|
def add_routes_configuration
|
44
|
-
builder.call(settings.
|
43
|
+
builder.call(settings.with(template_path: "%project_name%/config/routes.rb.erb")).render
|
45
44
|
end
|
46
45
|
|
47
46
|
def add_settings_configuration
|
48
|
-
builder.call(settings.
|
47
|
+
builder.call(settings.with(template_path: "%project_name%/config/settings.rb.erb")).render
|
49
48
|
end
|
50
49
|
|
51
50
|
def add_types
|
52
51
|
path = "%project_name%/lib/%project_path%/types.rb.erb"
|
53
|
-
builder.call(settings.
|
52
|
+
builder.call(settings.with(template_path: path)).render
|
54
53
|
end
|
55
54
|
|
56
55
|
def add_migrate_directory
|
57
|
-
builder.call(settings.
|
56
|
+
builder.call(settings.with(template_path: "%project_name%/db/migrate")).make_path
|
58
57
|
end
|
59
58
|
|
60
59
|
def add_well_known_security_text
|
61
60
|
return unless settings.build_security
|
62
61
|
|
63
62
|
path = "%project_name%/public/.well-known/security.txt.erb"
|
64
|
-
builder.call(settings.
|
63
|
+
builder.call(settings.with(template_path: path)).render
|
65
64
|
end
|
66
65
|
|
67
66
|
def add_public_http_errors
|
68
67
|
%w[404 500].each do |code|
|
69
68
|
path = "%project_name%/public/#{code}.html.erb"
|
70
|
-
builder.call(settings.
|
69
|
+
builder.call(settings.with(template_path: path)).render
|
71
70
|
end
|
72
71
|
end
|
73
72
|
|
74
73
|
def add_temp_directory
|
75
|
-
builder.call(settings.
|
74
|
+
builder.call(settings.with(template_path: "%project_name%/tmp")).make_path
|
76
75
|
end
|
77
76
|
end
|
78
77
|
end
|
@@ -12,7 +12,7 @@ module Hanamismith
|
|
12
12
|
def call
|
13
13
|
return false unless settings.build_docker
|
14
14
|
|
15
|
-
builder.call(settings.
|
15
|
+
builder.call(settings.with(template_path: "%project_name%/compose.yml.erb")).render
|
16
16
|
true
|
17
17
|
end
|
18
18
|
end
|
@@ -12,7 +12,7 @@ module Hanamismith
|
|
12
12
|
def call
|
13
13
|
return false unless settings.build_docker
|
14
14
|
|
15
|
-
builder.call(settings.
|
15
|
+
builder.call(settings.with(template_path: "%project_name%/Dockerfile.erb")).render
|
16
16
|
true
|
17
17
|
end
|
18
18
|
end
|
@@ -13,7 +13,7 @@ module Hanamismith
|
|
13
13
|
return false unless settings.build_readme
|
14
14
|
|
15
15
|
super
|
16
|
-
builder.call(settings.
|
16
|
+
builder.call(settings.with(template_path: "%project_name%/README.#{kind}.erb"))
|
17
17
|
.replace("Rubysmith", "Hanamismith")
|
18
18
|
.replace("rubysmith", "hanamismith")
|
19
19
|
|
@@ -16,9 +16,10 @@ module Hanamismith
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def call
|
19
|
-
builder.call(settings.
|
19
|
+
builder.call(settings.with(template_path: "%project_name%/env.erb"))
|
20
20
|
.render
|
21
|
-
.replace("<
|
21
|
+
.replace("<app_secret>", generator.hex(40))
|
22
|
+
.replace("<pg_password>", generator.hex(15))
|
22
23
|
.rename(".env")
|
23
24
|
|
24
25
|
true
|
@@ -10,7 +10,7 @@ module Hanamismith
|
|
10
10
|
using Refinements::Struct
|
11
11
|
|
12
12
|
def call
|
13
|
-
builder.call(settings.
|
13
|
+
builder.call(settings.with(template_path: "%project_name%/env.development.erb"))
|
14
14
|
.render
|
15
15
|
.rename(".env.development")
|
16
16
|
|
@@ -13,7 +13,7 @@ module Hanamismith
|
|
13
13
|
return false unless settings.build_git
|
14
14
|
|
15
15
|
super
|
16
|
-
builder.call(settings.
|
16
|
+
builder.call(settings.with(template_path: "%project_name%/.gitignore.erb"))
|
17
17
|
.insert_before "tmp\n", <<~CONTENT
|
18
18
|
node_modules
|
19
19
|
public/assets
|
@@ -13,7 +13,7 @@ module Hanamismith
|
|
13
13
|
return false unless settings.build_git_hub_ci
|
14
14
|
|
15
15
|
path = "%project_name%/.github/workflows/ci.yml.erb"
|
16
|
-
builder.call(settings.
|
16
|
+
builder.call(settings.with(template_path: path)).render.replace(/\n\n\Z/, "\n")
|
17
17
|
true
|
18
18
|
end
|
19
19
|
end
|
@@ -10,19 +10,33 @@ module Hanamismith
|
|
10
10
|
|
11
11
|
def call
|
12
12
|
path = "%project_name%/app/templates/layouts/app.html.erb.erb"
|
13
|
-
builder.call(settings.
|
13
|
+
builder.call(settings.with(template_path: path))
|
14
14
|
.render
|
15
15
|
.replace("<!-- title -->", "<%= content_for :title %>")
|
16
|
+
.replace("<!-- favicon -->", favicon)
|
16
17
|
.replace("<!-- icon -->", icon)
|
18
|
+
.replace("<!-- apple_icon -->", apple_icon)
|
17
19
|
.replace("<!-- manifest -->", manifest)
|
18
20
|
.replace("<!-- stylesheet -->", stylesheet)
|
21
|
+
.replace("<!-- javascript -->", javascript)
|
19
22
|
.replace("<!-- yield -->", "<%= yield %>")
|
23
|
+
.replace("<!-- flash:alert -->", flash(:alert))
|
24
|
+
.replace("<!-- flash:notice -->", flash(:notice))
|
20
25
|
|
21
26
|
true
|
22
27
|
end
|
23
28
|
|
24
29
|
private
|
25
30
|
|
31
|
+
def favicon
|
32
|
+
uri = "https://alchemists.io/images/projects/hanamismith/icons/favicon.ico"
|
33
|
+
|
34
|
+
%(<%= tag.link title: "#{settings.project_label}: Favicon",\n) +
|
35
|
+
%( rel: :icon,\n) +
|
36
|
+
%( href: "#{uri}",\n) +
|
37
|
+
%( sizes: "32x32" %>)
|
38
|
+
end
|
39
|
+
|
26
40
|
def icon
|
27
41
|
%(<%= tag.link title: "#{settings.project_label}: Icon",\n) +
|
28
42
|
%( rel: :icon,\n) +
|
@@ -30,6 +44,24 @@ module Hanamismith
|
|
30
44
|
%( type: "image/svg+xml" %>)
|
31
45
|
end
|
32
46
|
|
47
|
+
def apple_icon
|
48
|
+
uri = "https://alchemists.io/images/projects/hanamismith/icons/apple.png"
|
49
|
+
|
50
|
+
%(<%= tag.link title: "#{settings.project_label}: Apple Icon",\n) +
|
51
|
+
%( rel: "apple-touch-icon",\n) +
|
52
|
+
%( href: "#{uri}",\n) +
|
53
|
+
%( type: "image/png" %>)
|
54
|
+
end
|
55
|
+
|
56
|
+
# :reek:UtilityFunction
|
57
|
+
def flash kind
|
58
|
+
%(<% if flash[:#{kind}] %>\n) +
|
59
|
+
%( <div class="site-#{kind}">\n) +
|
60
|
+
%( <p><%= flash[:#{kind}] %></p>\n) +
|
61
|
+
%( </div>\n) +
|
62
|
+
%( <% end %>\n)
|
63
|
+
end
|
64
|
+
|
33
65
|
def manifest
|
34
66
|
%(<%= tag.link title: "#{settings.project_label}: Manifest",\n) +
|
35
67
|
%( rel: :manifest,\n) +
|
@@ -40,6 +72,8 @@ module Hanamismith
|
|
40
72
|
%(<%= tag.link title: "#{settings.project_label}: Stylesheet", rel: :stylesheet, ) +
|
41
73
|
%(href: app_assets["app.css"] %>)
|
42
74
|
end
|
75
|
+
|
76
|
+
def javascript = %(<%= tag.script src: app_assets["app.js"], type: "text/javascript" %>)
|
43
77
|
end
|
44
78
|
end
|
45
79
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "refinements/struct"
|
4
|
+
|
5
|
+
module Hanamismith
|
6
|
+
module Builders
|
7
|
+
module Providers
|
8
|
+
# Builds project skeleton for HTMX provider.
|
9
|
+
class HTMX < Rubysmith::Builders::Abstract
|
10
|
+
using Refinements::Struct
|
11
|
+
|
12
|
+
def call
|
13
|
+
path = "%project_name%/config/providers/htmx.rb.erb"
|
14
|
+
builder.call(settings.with(template_path: path)).render
|
15
|
+
true
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -10,7 +10,7 @@ module Hanamismith
|
|
10
10
|
using Refinements::Struct
|
11
11
|
|
12
12
|
def call
|
13
|
-
builder.call(settings.
|
13
|
+
builder.call(settings.with(template_path: "%project_name%/config/puma.rb.erb")).render
|
14
14
|
|
15
15
|
true
|
16
16
|
end
|
@@ -10,8 +10,8 @@ module Hanamismith
|
|
10
10
|
using Refinements::Struct
|
11
11
|
|
12
12
|
def call
|
13
|
-
builder.call(settings.
|
14
|
-
builder.call(settings.
|
13
|
+
builder.call(settings.with(template_path: "%project_name%/Procfile.erb")).render
|
14
|
+
builder.call(settings.with(template_path: "%project_name%/Procfile.dev.erb")).render
|
15
15
|
true
|
16
16
|
end
|
17
17
|
end
|
@@ -19,11 +19,11 @@ module Hanamismith
|
|
19
19
|
|
20
20
|
def add_configuration
|
21
21
|
template_path = "%project_name%/config/initializers/rack_attack.rb.erb"
|
22
|
-
builder.call(settings.
|
22
|
+
builder.call(settings.with(template_path:)).render
|
23
23
|
end
|
24
24
|
|
25
25
|
def add_middleware
|
26
|
-
builder.call(settings.
|
26
|
+
builder.call(settings.with(template_path: "%project_name%/config/app.rb.erb"))
|
27
27
|
.insert_after(/require/, %(\nrequire_relative "initializers/rack_attack"\n))
|
28
28
|
.insert_before(/environment/, " config.middleware.use Rack::Attack\n\n")
|
29
29
|
end
|
@@ -10,7 +10,7 @@ module Hanamismith
|
|
10
10
|
using Refinements::Struct
|
11
11
|
|
12
12
|
def call
|
13
|
-
builder.call(settings.
|
13
|
+
builder.call(settings.with(template_path: "%project_name%/config/app.rb.erb"))
|
14
14
|
.insert_after(/Rack::Attack/, " config.middleware.use Rack::Deflater\n")
|
15
15
|
|
16
16
|
true
|
@@ -13,7 +13,7 @@ module Hanamismith
|
|
13
13
|
return false unless settings.build_rake
|
14
14
|
|
15
15
|
super
|
16
|
-
builder.call(settings.
|
16
|
+
builder.call(settings.with(template_path: "%project_name%/Rakefile.erb"))
|
17
17
|
.render
|
18
18
|
.insert_after(%r(bundler/setup), %(require "hanami/rake_tasks"))
|
19
19
|
|
@@ -13,7 +13,7 @@ module Hanamismith
|
|
13
13
|
%project_name%/lib/%project_path%/refines/actions/response.rb.erb
|
14
14
|
%project_name%/spec/lib/%project_path%/refines/actions/response_spec.rb.erb
|
15
15
|
].each do |path|
|
16
|
-
builder.call(settings.
|
16
|
+
builder.call(settings.with(template_path: path)).render
|
17
17
|
end
|
18
18
|
|
19
19
|
true
|
@@ -13,7 +13,7 @@ module Hanamismith
|
|
13
13
|
return false unless settings.build_rspec
|
14
14
|
|
15
15
|
path = "%project_name%/spec/support/shared_contexts/application.rb.erb"
|
16
|
-
builder.call(settings.
|
16
|
+
builder.call(settings.with(template_path: path)).render
|
17
17
|
|
18
18
|
true
|
19
19
|
end
|
@@ -19,7 +19,7 @@ module Hanamismith
|
|
19
19
|
private
|
20
20
|
|
21
21
|
def append
|
22
|
-
builder.call(settings.
|
22
|
+
builder.call(settings.with(template_path: "%project_name%/bin/setup.erb"))
|
23
23
|
.insert_after(%(Runner.call "bundle install"\n), <<~CONTENT.gsub(/^(?=\w)/, " "))
|
24
24
|
|
25
25
|
puts "Installing packages..."
|