hanamismith 1.5.0 → 1.6.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: 5a498eb523292f2179b6c7fc4e29bd0f92670893bc5eeb80bad2eb964594d47b
4
- data.tar.gz: 0eda5f7e5af5210003b92339f097b2cf07a688ede20612112e2731787448fd3a
3
+ metadata.gz: 90801b4ee6373b5b7210c0df5506653675e388f3f73c4f5e69f067ab70db04fe
4
+ data.tar.gz: 27b1370ebe99e5d935b9895ca6493fc5ae0bc0a1f2c3bcae3e066ab784df3995
5
5
  SHA512:
6
- metadata.gz: c146e1cbe4a7f033f2b6d2fa104f52b9dfdab9162d4d867b75d1a04808fb8be8819aef92cb05703d125f96fe18ec1bdc83fccfea8c047ca777cbb19cc3214b99
7
- data.tar.gz: 3aebc1620be325b6bd6b828279a5c132b76a4d0d46d3d9557dbd80751c6f6399835303af8384cd0a5765ccd3d567a2ebaf7e204c6c2d7e0a60229b3c8ed85b13
6
+ metadata.gz: cfe7c64e56231bddef43ff0e34d9afbed0cf85be10f5be3631cd1a2a5a3d82fc5b9f2a00213ab0fabbc7120b0402e36d93460847818a27a8f73cda1f84b0b626
7
+ data.tar.gz: 10249587c6f918e8d354248051c392165da59b54f4bdb15a0e34b757e605053a4be6b5eb535986c4c76014f38832b7719c41140fc8f85b69b50378c70781f6d3
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 = "1.5.0"
5
+ spec.version = "1.6.0"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
8
  spec.homepage = "https://alchemists.io/projects/hanamismith"
@@ -31,7 +31,7 @@ Gem::Specification.new do |spec|
31
31
  spec.add_dependency "htmx", "~> 2.0"
32
32
  spec.add_dependency "infusible", "~> 4.0"
33
33
  spec.add_dependency "refinements", "~> 13.0"
34
- spec.add_dependency "rubysmith", "~> 8.3"
34
+ spec.add_dependency "rubysmith", "~> 8.4"
35
35
  spec.add_dependency "runcom", "~> 12.0"
36
36
  spec.add_dependency "sod", "~> 1.0"
37
37
  spec.add_dependency "spek", "~> 4.0"
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "refinements/struct"
4
+
5
+ module Hanamismith
6
+ module Builders
7
+ module Docker
8
+ # Builds Docker compose configuration.
9
+ class Compose < Rubysmith::Builders::Abstract
10
+ using Refinements::Struct
11
+
12
+ def call
13
+ return false unless settings.build_docker
14
+
15
+ builder.call(settings.merge(template_path: "%project_name%/compose.yml.erb")).render
16
+ true
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "refinements/struct"
4
+ require "securerandom"
5
+
6
+ module Hanamismith
7
+ module Builders
8
+ module Environments
9
+ # Builds test environment skeleton.
10
+ class All < Rubysmith::Builders::Abstract
11
+ using Refinements::Struct
12
+
13
+ def initialize(generator: SecureRandom, **)
14
+ @generator = generator
15
+ super(**)
16
+ end
17
+
18
+ def call
19
+ builder.call(settings.merge(template_path: "%project_name%/env.erb"))
20
+ .render
21
+ .replace("<password>", generator.hex(15))
22
+ .rename(".env")
23
+
24
+ true
25
+ end
26
+
27
+ private
28
+
29
+ attr_reader :generator
30
+ end
31
+ end
32
+ end
33
+ end
@@ -59,6 +59,7 @@ module Hanamismith
59
59
  Rubysmith::Builders::Docker::Build,
60
60
  Rubysmith::Builders::Docker::Console,
61
61
  Rubysmith::Builders::Docker::Entrypoint,
62
+ Builders::Docker::Compose,
62
63
  Builders::Docker::File,
63
64
  Rubysmith::Builders::Docker::Ignore,
64
65
  Rubysmith::Extensions::Bundler,
@@ -67,6 +68,7 @@ module Hanamismith
67
68
  Rubysmith::Extensions::Rubocop,
68
69
  Extensions::NPM,
69
70
  Extensions::Asset,
71
+ Builders::Environments::All,
70
72
  Builders::Environments::Development,
71
73
  Builders::Environments::Test,
72
74
  Builders::Git::Commit
@@ -1,2 +1,3 @@
1
1
  web: bundle exec puma --config ./config/puma.rb
2
2
  assets: bundle exec hanami assets compile
3
+ migrate: bundle exec hanami db migrate
@@ -0,0 +1,43 @@
1
+ name: "<%= settings.project_name %>"
2
+
3
+ services:
4
+ web:
5
+ init: true
6
+ environment:
7
+ DATABASE_URL: postgres://${PG_USER}:${PG_PASSWORD}@database:5432/${PG_DATABASE}
8
+ build:
9
+ context: .
10
+ ports:
11
+ - "2300:2300"
12
+ restart: unless-stopped
13
+ depends_on:
14
+ database:
15
+ condition: service_healthy
16
+ deploy:
17
+ resources:
18
+ limits:
19
+ memory: 1G
20
+ cpus: "1.0"
21
+
22
+ database:
23
+ image: postgres:17.4
24
+ restart: unless-stopped
25
+ volumes:
26
+ - database-data:/var/lib/postgresql/data
27
+ environment:
28
+ POSTGRES_USER: ${PG_USER}
29
+ POSTGRES_DB: ${PG_DATABASE}
30
+ POSTGRES_PASSWORD: ${PG_PASSWORD}
31
+ healthcheck:
32
+ test: ["CMD-SHELL", "pg_isready -U ${PG_USER}"]
33
+ interval: 10s
34
+ timeout: 5s
35
+ retries: 5
36
+ deploy:
37
+ resources:
38
+ limits:
39
+ memory: 1G
40
+ cpus: "1.0"
41
+
42
+ volumes:
43
+ database-data:
@@ -0,0 +1,3 @@
1
+ PG_DATABASE=<%= settings.project_name %>
2
+ PG_PASSWORD=<password>
3
+ PG_USER=<%= settings.project_name %>
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: 1.5.0
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -153,14 +153,14 @@ dependencies:
153
153
  requirements:
154
154
  - - "~>"
155
155
  - !ruby/object:Gem::Version
156
- version: '8.3'
156
+ version: '8.4'
157
157
  type: :runtime
158
158
  prerelease: false
159
159
  version_requirements: !ruby/object:Gem::Requirement
160
160
  requirements:
161
161
  - - "~>"
162
162
  - !ruby/object:Gem::Version
163
- version: '8.3'
163
+ version: '8.4'
164
164
  - !ruby/object:Gem::Dependency
165
165
  name: runcom
166
166
  requirement: !ruby/object:Gem::Requirement
@@ -238,8 +238,10 @@ files:
238
238
  - lib/hanamismith/builders/circle_ci.rb
239
239
  - lib/hanamismith/builders/console.rb
240
240
  - lib/hanamismith/builders/core.rb
241
+ - lib/hanamismith/builders/docker/compose.rb
241
242
  - lib/hanamismith/builders/docker/file.rb
242
243
  - lib/hanamismith/builders/documentation/readme.rb
244
+ - lib/hanamismith/builders/environments/all.rb
243
245
  - lib/hanamismith/builders/environments/development.rb
244
246
  - lib/hanamismith/builders/environments/test.rb
245
247
  - lib/hanamismith/builders/git/commit.rb
@@ -287,6 +289,7 @@ files:
287
289
  - lib/hanamismith/templates/%project_name%/app/templates/layouts/app.html.erb.erb
288
290
  - lib/hanamismith/templates/%project_name%/app/view.rb.erb
289
291
  - lib/hanamismith/templates/%project_name%/bin/hanami.erb
292
+ - lib/hanamismith/templates/%project_name%/compose.yml.erb
290
293
  - lib/hanamismith/templates/%project_name%/config.ru.erb
291
294
  - lib/hanamismith/templates/%project_name%/config/app.rb.erb
292
295
  - lib/hanamismith/templates/%project_name%/config/assets.js.erb
@@ -299,6 +302,7 @@ files:
299
302
  - lib/hanamismith/templates/%project_name%/config/slices/health.rb.erb
300
303
  - lib/hanamismith/templates/%project_name%/config/slices/home.rb.erb
301
304
  - lib/hanamismith/templates/%project_name%/env.development.erb
305
+ - lib/hanamismith/templates/%project_name%/env.erb
302
306
  - lib/hanamismith/templates/%project_name%/env.test.erb
303
307
  - lib/hanamismith/templates/%project_name%/lib/%project_path%/refines/actions/response.rb.erb
304
308
  - lib/hanamismith/templates/%project_name%/lib/%project_path%/types.rb.erb
@@ -349,7 +353,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
349
353
  - !ruby/object:Gem::Version
350
354
  version: '0'
351
355
  requirements: []
352
- rubygems_version: 3.6.7
356
+ rubygems_version: 3.6.9
353
357
  specification_version: 4
354
358
  summary: A command line interface for smithing Hanami projects.
355
359
  test_files: []
metadata.gz.sig CHANGED
Binary file