hanamismith 0.31.0 → 0.33.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: c9ad3e2b1acd7e7484b23972dfd2b5495c320abb65a94298f08baed056e76c66
4
- data.tar.gz: c69807458bc17e29d6a9f0de37cd15af253d7b0ae4368bd8f664739274fbbdda
3
+ metadata.gz: d98143db2b3786f889d41a6e66542f45c641f221870d662ec8572da74f94b62f
4
+ data.tar.gz: a64f72bfb80b213e667e4ec4496e4d1c53528cbfecbbc7b023bcee6f43c18f56
5
5
  SHA512:
6
- metadata.gz: 47641e6ffe939dc51b9d05e3379e2176ccec19ae5616d74512fc8a19c6caa7606a64a19f8e1348181f3f71c0d51e1deda297eeddee245937817edf0601604c0b
7
- data.tar.gz: f9a0965c19ca2bae15e651ec5819bc7467b3e90ce341622d562a7bae39ce846d6df4301b0b489d838316887e341bbda4aaca15c28021ad4dd7f7271912436e01
6
+ metadata.gz: 0fba1ccc10b7b9e0c2e577a985b007284880f43bc369ea4eb58f50988be234f35667c9a9c4056e549258ad5c41aab2b8d851f3ae7028628f842f592b3471a0e8
7
+ data.tar.gz: 5ad77c36fac848aec208bfef2be7863329659a7169c21e24a0dd46926b3e3591df4cdb3bf10b46dd6ad176d533ffda7c6840cab257b16128e385ca55251bcdc2
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.31.0"
5
+ spec.version = "0.33.0"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
8
  spec.homepage = "https://alchemists.io/projects/hanamismith"
@@ -24,16 +24,16 @@ Gem::Specification.new do |spec|
24
24
 
25
25
  spec.required_ruby_version = "~> 3.3"
26
26
  spec.add_dependency "cogger", "~> 0.15"
27
- spec.add_dependency "dry-container", "~> 0.11"
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.0"
30
+ spec.add_dependency "etcher", "~> 1.3"
31
31
  spec.add_dependency "htmx", "~> 1.0"
32
- spec.add_dependency "infusible", "~> 3.4"
32
+ spec.add_dependency "infusible", "~> 3.5"
33
33
  spec.add_dependency "refinements", "~> 12.1"
34
- spec.add_dependency "rubysmith", "~> 6.4"
34
+ spec.add_dependency "rubysmith", "~> 6.5"
35
35
  spec.add_dependency "runcom", "~> 11.0"
36
- spec.add_dependency "sod", "~> 0.4"
36
+ spec.add_dependency "sod", "~> 0.8"
37
37
  spec.add_dependency "spek", "~> 3.0"
38
38
  spec.add_dependency "zeitwerk", "~> 2.6"
39
39
 
@@ -27,13 +27,15 @@ module Hanamismith
27
27
 
28
28
  # rubocop:todo Metrics/MethodLength
29
29
  def insert_main_dependencies
30
- with_template.insert_after("source", %(gem "dry-types", "~> 1.7"))
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))
31
34
  .insert_after("source", %(gem "hanami", "~> 2.1"\n))
32
35
  .insert_after("source", %(gem "hanami-assets", "~> 2.1"\n))
33
36
  .insert_after("source", %(gem "hanami-cli", "~> 2.1"\n))
34
37
  .insert_after("source", %(gem "hanami-controller", "~> 2.1"\n))
35
38
  .insert_after("source", %(gem "hanami-router", "~> 2.1"\n))
36
- .insert_after("source", %(gem "hanami-utils", "~> 2.1"\n))
37
39
  .insert_after("source", %(gem "hanami-validations", "~> 2.1"\n))
38
40
  .insert_after("source", %(gem "hanami-view", "~> 2.1"\n))
39
41
  .insert_after("source", %(gem "htmx", "~> 1.0"\n))
@@ -60,6 +60,13 @@ module Hanamismith
60
60
  builder.call(configuration.merge(template_path: "%project_name%/db/migrate")).make_path
61
61
  end
62
62
 
63
+ def add_public_http_errors
64
+ %w[404 500].each do |code|
65
+ path = "%project_name%/public/#{code}.html.erb"
66
+ builder.call(configuration.merge(template_path: path)).render
67
+ end
68
+ end
69
+
63
70
  def add_temp_directory
64
71
  builder.call(configuration.merge(template_path: "%project_name%/tmp")).make_path
65
72
  end
@@ -15,7 +15,8 @@ module Hanamismith
15
15
  super
16
16
  builder.call(configuration.merge(template_path: "%project_name%/.gitignore.erb"))
17
17
  .insert_before("tmp\n", "node_modules\n")
18
- .insert_before("tmp\n", "public\n")
18
+ .insert_before("tmp\n", "public/assets\n")
19
+ .insert_before("tmp\n", "public/assets.json\n")
19
20
 
20
21
  configuration
21
22
  end
@@ -16,8 +16,8 @@ module Hanamismith
16
16
  end
17
17
 
18
18
  def call
19
- path = "%project_name%/package.json.erb"
20
- builder.call(configuration.merge(template_path: path)).render
19
+ builder.call(configuration.merge(template_path: "%project_name%/package.json.erb")).render
20
+ builder.call(configuration.merge(template_path: "%project_name%/.node-version.erb")).render
21
21
  configuration
22
22
  end
23
23
 
@@ -20,14 +20,16 @@ module Hanamismith
20
20
 
21
21
  def append
22
22
  builder.call(configuration.merge(template_path: "%project_name%/bin/setup.erb"))
23
- .append(<<~CONTENT)
24
- npm install
23
+ .insert_after(%(Runner.call "bundle install"\n), <<~CONTENT.gsub(/^(?=\w)/, " "))
25
24
 
26
- bin/hanami db create
27
- bin/hanami db migrate
25
+ puts "Installing packages..."
26
+ Runner.call "npm install"
28
27
 
29
- HANAMI_ENV=test bin/hanami db create
30
- HANAMI_ENV=test bin/hanami db migrate
28
+ puts "Configurating databases..."
29
+ Runner.call "bin/hanami db create"
30
+ Runner.call "bin/hanami db migrate"
31
+ Runner.call "HANAMI_ENV=test bin/hanami db create"
32
+ Runner.call "HANAMI_ENV=test bin/hanami db migrate"
31
33
  CONTENT
32
34
  end
33
35
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "cogger"
4
- require "dry-container"
4
+ require "containable"
5
5
  require "etcher"
6
6
  require "runcom"
7
7
  require "spek"
@@ -9,14 +9,14 @@ require "spek"
9
9
  module Hanamismith
10
10
  # Provides a global gem container for injection into other objects.
11
11
  module Container
12
- extend Dry::Container::Mixin
12
+ extend Containable
13
13
 
14
- register :configuration, memoize: true do
14
+ register :configuration do
15
15
  self[:defaults].add_loader(Etcher::Loaders::YAML.new(self[:xdg_config].active))
16
16
  .then { |registry| Etcher.call registry }
17
17
  end
18
18
 
19
- register :defaults, memoize: true do
19
+ register :defaults do
20
20
  registry = Etcher::Registry.new contract: Rubysmith::Configuration::Contract,
21
21
  model: Rubysmith::Configuration::Model
22
22
 
@@ -34,14 +34,11 @@ module Hanamismith
34
34
  .add_transformer(Rubysmith::Configuration::Transformers::TargetRoot)
35
35
  end
36
36
 
37
- register :specification, memoize: true do
38
- Spek::Loader.call "#{__dir__}/../../hanamismith.gemspec"
39
- end
40
-
41
- register(:input, memoize: true) { self[:configuration].dup }
37
+ register(:specification) { Spek::Loader.call "#{__dir__}/../../hanamismith.gemspec" }
38
+ register(:input) { self[:configuration].dup }
42
39
  register(:defaults_path) { Rubysmith::Container[:defaults_path] }
43
- register(:xdg_config, memoize: true) { Runcom::Config.new "hanamismith/configuration.yml" }
44
- register(:logger, memoize: true) { Cogger.new id: :hanamismith }
40
+ register(:xdg_config) { Runcom::Config.new "hanamismith/configuration.yml" }
41
+ register(:logger) { Cogger.new id: :hanamismith }
45
42
  register :kernel, Kernel
46
43
  end
47
44
  end
@@ -3,5 +3,5 @@
3
3
  require "infusible"
4
4
 
5
5
  module Hanamismith
6
- Import = Infusible.with Container
6
+ Import = Infusible[Container]
7
7
  end
@@ -33,7 +33,7 @@ jobs:
33
33
  chromedriver --url-base=/wd/hub &
34
34
 
35
35
  - name: Checkout
36
- uses: actions/checkout@v3
36
+ uses: actions/checkout@v4
37
37
 
38
38
  - name: Ruby Setup
39
39
  uses: ruby/setup-ruby@v1
@@ -60,7 +60,7 @@ jobs:
60
60
 
61
61
  <% if configuration.build_simple_cov %>
62
62
  - name: SimpleCov Archive
63
- uses: actions/upload-artifact@v3
63
+ uses: actions/upload-artifact@v4
64
64
  with:
65
65
  name: coverage
66
66
  path: coverage
@@ -8,6 +8,6 @@
8
8
  "type": "module",
9
9
  "keywords": ["ruby", "hanami"],
10
10
  "dependencies": {
11
- "hanami-assets": "^2.1.0"
11
+ "hanami-assets": "^2.1.1"
12
12
  }
13
13
  }
@@ -0,0 +1,57 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+
8
+ <title>404: Not Found</title>
9
+
10
+ <style>
11
+ * {
12
+ box-sizing: border-box;
13
+ margin: 0;
14
+ padding: 0;
15
+ }
16
+
17
+ body,
18
+ html {
19
+ font-size: 100%;
20
+ max-width: 100vw;
21
+ overflow-x: hidden;
22
+ }
23
+
24
+ body {
25
+ color: whitesmoke;
26
+ background: darkred;
27
+ font-family: Roboto,Arial,sans-serif,Emoji;
28
+ font-style: normal;
29
+ }
30
+
31
+ main {
32
+ align-items: center;
33
+ display: flex;
34
+ flex-direction: column;
35
+ height: 100vh;
36
+ justify-content: center;
37
+ padding: 0 4vw;
38
+ }
39
+
40
+ .message {
41
+ display: flex;
42
+ flex-direction: column;
43
+ gap: 1rem;
44
+ text-align: center;
45
+ }
46
+ </style>
47
+ </head>
48
+
49
+ <body>
50
+ <main>
51
+ <div class="message">
52
+ <h1>404</h1>
53
+ <p>The page you are looking for doesn’t exist.</p>
54
+ </div>
55
+ </main>
56
+ </body>
57
+ </html>
@@ -0,0 +1,57 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+
8
+ <title>500: Internal Server Error</title>
9
+
10
+ <style>
11
+ * {
12
+ box-sizing: border-box;
13
+ margin: 0;
14
+ padding: 0;
15
+ }
16
+
17
+ body,
18
+ html {
19
+ font-size: 100%;
20
+ max-width: 100vw;
21
+ overflow-x: hidden;
22
+ }
23
+
24
+ body {
25
+ color: whitesmoke;
26
+ background: darkred;
27
+ font-family: Roboto,Arial,sans-serif,Emoji;
28
+ font-style: normal;
29
+ }
30
+
31
+ main {
32
+ align-items: center;
33
+ display: flex;
34
+ flex-direction: column;
35
+ height: 100vh;
36
+ justify-content: center;
37
+ padding: 0 4vw;
38
+ }
39
+
40
+ .message {
41
+ display: flex;
42
+ flex-direction: column;
43
+ gap: 1rem;
44
+ text-align: center;
45
+ }
46
+ </style>
47
+ </head>
48
+
49
+ <body>
50
+ <main>
51
+ <div class="message">
52
+ <h1>500</h1>
53
+ <p>We’re sorry, but something went wrong.</p>
54
+ </div>
55
+ </main>
56
+ </body>
57
+ </html>
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.31.0
4
+ version: 0.33.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-03-09 00:00:00.000000000 Z
38
+ date: 2024-04-08 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: cogger
@@ -52,19 +52,19 @@ dependencies:
52
52
  - !ruby/object:Gem::Version
53
53
  version: '0.15'
54
54
  - !ruby/object:Gem::Dependency
55
- name: dry-container
55
+ name: containable
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '0.11'
60
+ version: '0.0'
61
61
  type: :runtime
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: '0.11'
67
+ version: '0.0'
68
68
  - !ruby/object:Gem::Dependency
69
69
  name: dry-monads
70
70
  requirement: !ruby/object:Gem::Requirement
@@ -99,14 +99,14 @@ dependencies:
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: '1.0'
102
+ version: '1.3'
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.0'
109
+ version: '1.3'
110
110
  - !ruby/object:Gem::Dependency
111
111
  name: htmx
112
112
  requirement: !ruby/object:Gem::Requirement
@@ -127,14 +127,14 @@ dependencies:
127
127
  requirements:
128
128
  - - "~>"
129
129
  - !ruby/object:Gem::Version
130
- version: '3.4'
130
+ version: '3.5'
131
131
  type: :runtime
132
132
  prerelease: false
133
133
  version_requirements: !ruby/object:Gem::Requirement
134
134
  requirements:
135
135
  - - "~>"
136
136
  - !ruby/object:Gem::Version
137
- version: '3.4'
137
+ version: '3.5'
138
138
  - !ruby/object:Gem::Dependency
139
139
  name: refinements
140
140
  requirement: !ruby/object:Gem::Requirement
@@ -155,14 +155,14 @@ dependencies:
155
155
  requirements:
156
156
  - - "~>"
157
157
  - !ruby/object:Gem::Version
158
- version: '6.4'
158
+ version: '6.5'
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.4'
165
+ version: '6.5'
166
166
  - !ruby/object:Gem::Dependency
167
167
  name: runcom
168
168
  requirement: !ruby/object:Gem::Requirement
@@ -183,14 +183,14 @@ dependencies:
183
183
  requirements:
184
184
  - - "~>"
185
185
  - !ruby/object:Gem::Version
186
- version: '0.4'
186
+ version: '0.8'
187
187
  type: :runtime
188
188
  prerelease: false
189
189
  version_requirements: !ruby/object:Gem::Requirement
190
190
  requirements:
191
191
  - - "~>"
192
192
  - !ruby/object:Gem::Version
193
- version: '0.4'
193
+ version: '0.8'
194
194
  - !ruby/object:Gem::Dependency
195
195
  name: spek
196
196
  requirement: !ruby/object:Gem::Requirement
@@ -278,6 +278,7 @@ files:
278
278
  - lib/hanamismith/import.rb
279
279
  - lib/hanamismith/templates/%project_name%/.circleci/config.yml.erb
280
280
  - lib/hanamismith/templates/%project_name%/.github/workflows/ci.yml.erb
281
+ - lib/hanamismith/templates/%project_name%/.node-version.erb
281
282
  - lib/hanamismith/templates/%project_name%/Guardfile.erb
282
283
  - lib/hanamismith/templates/%project_name%/Procfile.dev.erb
283
284
  - lib/hanamismith/templates/%project_name%/Procfile.erb
@@ -303,6 +304,8 @@ files:
303
304
  - lib/hanamismith/templates/%project_name%/lib/%project_path%/refines/actions/response.rb.erb
304
305
  - lib/hanamismith/templates/%project_name%/lib/%project_path%/types.rb.erb
305
306
  - lib/hanamismith/templates/%project_name%/package.json.erb
307
+ - lib/hanamismith/templates/%project_name%/public/404.html.erb
308
+ - lib/hanamismith/templates/%project_name%/public/500.html.erb
306
309
  - lib/hanamismith/templates/%project_name%/slices/health/action.rb.erb
307
310
  - lib/hanamismith/templates/%project_name%/slices/health/actions/show.rb.erb
308
311
  - lib/hanamismith/templates/%project_name%/slices/health/templates/layouts/app.html.erb.erb
@@ -353,7 +356,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
353
356
  - !ruby/object:Gem::Version
354
357
  version: '0'
355
358
  requirements: []
356
- rubygems_version: 3.5.6
359
+ rubygems_version: 3.5.7
357
360
  signing_key:
358
361
  specification_version: 4
359
362
  summary: A command line interface for smithing Hanami projects.
metadata.gz.sig CHANGED
Binary file