hanamismith 1.5.0 → 1.7.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: b3caca0c74eabd6238c5f66d980065dccb6fbee35ba4e1b9224b67cc9a140f37
4
+ data.tar.gz: 469dccea09773b61936c4d6546e6eb18226a6f0fef659544f677cf6d20b58a6b
5
5
  SHA512:
6
- metadata.gz: c146e1cbe4a7f033f2b6d2fa104f52b9dfdab9162d4d867b75d1a04808fb8be8819aef92cb05703d125f96fe18ec1bdc83fccfea8c047ca777cbb19cc3214b99
7
- data.tar.gz: 3aebc1620be325b6bd6b828279a5c132b76a4d0d46d3d9557dbd80751c6f6399835303af8384cd0a5765ccd3d567a2ebaf7e204c6c2d7e0a60229b3c8ed85b13
6
+ metadata.gz: ab387a27b3e23231ff574846d9b22708bda678585fde183eba52bc06ddd901c723e46f96ea31fb411dd49c26932dcc7e0d0d4ce7e705790703ea80270f9ceb8a
7
+ data.tar.gz: b58e9944060e8ebf4c4bb4c75d705e4c3524f251b068f5e6051b769d2fb2c4b6cbcf781f7fc3a2f8702fc7945e4033842fe9240584fd3ac899ad8993dd22236b
checksums.yaml.gz.sig CHANGED
@@ -1,3 +1,4 @@
1
- 1H����WģgH�#���s�rW`�f���C�~���'�� ]��hv.�I��X.
2
- �����P��'�Q贮 �jpYv+��2�1����M�,;Maq��������s[^߷��L��eT�$��� vn�ߚ���B+x��9��hչ:aa���n<E�34gA�}>��+qi_���s%Ʃ�J�9�5n�������C�A<�S���7"(M��YyS�<�vʤ���Cd�P�K2F�׌9*��)�ZAӘV��^��\�*��~O����@㉽7�isFH�p�@��U����Y�6�s�@��ѻ�z����ކ�o��m��U� ��^�����
3
- �ճ���M��a��7:c�m)���X,UcI������4G���r�`wO�
1
+ �Ż)޻�Y��7tI��:H �I��݆�fG��Z o(��
2
+ %\7��MK};vg���XP|[���mR*����n˚y��S��8�� j����.�P��Ӕ$;P�%gq�����2j���N��PƸ����~=T1��
3
+ ��FY�.�6& u�� �糇��
4
+ v�Ri4�:��A6���*��7x jU���Å�� �%����Ȇw�H4��ѧ(�ò��:
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.7.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"
@@ -92,6 +92,7 @@ module Hanamismith
92
92
  def insert_test
93
93
  with_template.insert_after(/group :test/, <<~CONTENT.gsub("gem", " gem"))
94
94
  gem "capybara", "~> 3.40"
95
+ gem "capybara-validate_html5", "~> 2.1"
95
96
  gem "cuprite", "~> 0.15"
96
97
  gem "database_cleaner-sequel", "~> 2.0"
97
98
  gem "launchy", "~> 3.1"
@@ -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 %>
@@ -1,5 +1,6 @@
1
1
  require "capybara/cuprite"
2
2
  require "capybara/rspec"
3
+ require "capybara-validate_html5"
3
4
  require "database_cleaner/sequel"
4
5
  require "dry/monads"
5
6
  require "rack/test"
data/lib/hanamismith.rb CHANGED
@@ -20,6 +20,6 @@ end
20
20
  # Main namespace.
21
21
  module Hanamismith
22
22
  def self.loader registry = Zeitwerk::Registry
23
- @loader ||= registry.loaders.find { |loader| loader.tag == File.basename(__FILE__, ".rb") }
23
+ @loader ||= registry.loaders.each.find { |loader| loader.tag == File.basename(__FILE__, ".rb") }
24
24
  end
25
25
  end
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.7.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