hanamismith 0.31.0 → 0.33.0

Sign up to get free protection for your applications and to get access to all the features.
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