hanamismith 0.28.1 → 0.30.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: c2cf76c21bc88730cfcba43ea6fe8404ece3b1c52cf71b57694c5f37462a984b
4
- data.tar.gz: f3fba4dbfc82c1a1df81cf1858e6010313d4a1ceb6276bd9243b7c96bfef080e
3
+ metadata.gz: 06a15cf0e7ce87c12021ea0e36980c9a40445ad7d385e23a1f66f693502edbfa
4
+ data.tar.gz: 114272b7ba96e4d810d500079f188598b2848d7fc7ed091fd22e493a955464a9
5
5
  SHA512:
6
- metadata.gz: 5c4d9da6a263777ab9679ea2b9037da6b2a79f0bbde17fd6a6c3db9a1451ef88221fd80d155c1e734dc83704546000ab02d8dbdfe4492497570ab0a332c3793c
7
- data.tar.gz: 3bff75cac0a10a98d13dfe20b935f138783c29330831338b4a3156235cdb157ca72057a40ace93ad72569be71b391168e51052988011ec3b6c2c9a023d2875b4
6
+ metadata.gz: eb36acd7cb4f4974adf2414e892c7239d79ccd1bd85cff13edda0d8ef86074a9336924662e0effea110666fb80cfadb18e16764fdfc28c9d30321453c648b89b
7
+ data.tar.gz: d868c6ab2f9d7e5b664cdcd3773a869559cc46e514b0822526797a16989d2ee2f406ce85c5489ccc68ccad4e848ea5d2ff3456f6d4eb2365242c0bbc4e552d95
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.28.1"
5
+ spec.version = "0.30.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", "~> 1.0"
31
31
  spec.add_dependency "htmx", "~> 1.0"
32
32
  spec.add_dependency "infusible", "~> 3.0"
33
- spec.add_dependency "refinements", "~> 12.0"
34
- spec.add_dependency "rubysmith", "~> 6.2"
33
+ spec.add_dependency "refinements", "~> 12.1"
34
+ spec.add_dependency "rubysmith", "~> 6.3"
35
35
  spec.add_dependency "runcom", "~> 11.0"
36
36
  spec.add_dependency "sod", "~> 0.4"
37
37
  spec.add_dependency "spek", "~> 3.0"
@@ -5,7 +5,6 @@ require "refinements/struct"
5
5
  module Hanamismith
6
6
  module Builders
7
7
  # Builds project skeleton with Gemfile configuration.
8
- # rubocop:todo Metrics/ClassLength
9
8
  class Bundler < Rubysmith::Builders::Bundler
10
9
  using Refinements::Struct
11
10
 
@@ -29,38 +28,14 @@ module Hanamismith
29
28
  # rubocop:todo Metrics/MethodLength
30
29
  def insert_main_dependencies
31
30
  with_template.insert_after("source", %(gem "dry-types", "~> 1.7"))
32
- .insert_after(
33
- "source",
34
- %(gem "hanami", github: "hanami/hanami", branch: "main"\n)
35
- )
36
- .insert_after(
37
- "source",
38
- %(gem "hanami-assets", github: "hanami/assets", branch: "main"\n)
39
- )
40
- .insert_after(
41
- "source",
42
- %(gem "hanami-cli", github: "hanami/cli", branch: "main"\n)
43
- )
44
- .insert_after(
45
- "source",
46
- %(gem "hanami-controller", github: "hanami/controller", branch: "main"\n)
47
- )
48
- .insert_after(
49
- "source",
50
- %(gem "hanami-router", github: "hanami/router", branch: "main"\n)
51
- )
52
- .insert_after(
53
- "source",
54
- %(gem "hanami-utils", github: "hanami/utils", branch: "main"\n)
55
- )
56
- .insert_after(
57
- "source",
58
- %(gem "hanami-validations", github: "hanami/validations", branch: "main"\n)
59
- )
60
- .insert_after(
61
- "source",
62
- %(gem "hanami-view", github: "hanami/view", branch: "main"\n)
63
- )
31
+ .insert_after("source", %(gem "hanami", "~> 2.1"\n))
32
+ .insert_after("source", %(gem "hanami-assets", "~> 2.1"\n))
33
+ .insert_after("source", %(gem "hanami-cli", "~> 2.1"\n))
34
+ .insert_after("source", %(gem "hanami-controller", "~> 2.1"\n))
35
+ .insert_after("source", %(gem "hanami-router", "~> 2.1"\n))
36
+ .insert_after("source", %(gem "hanami-utils", "~> 2.1"\n))
37
+ .insert_after("source", %(gem "hanami-validations", "~> 2.1"\n))
38
+ .insert_after("source", %(gem "hanami-view", "~> 2.1"\n))
64
39
  .insert_after("source", %(gem "htmx", "~> 1.0"\n))
65
40
  .insert_after("source", %(gem "puma", "~> 6.4"\n))
66
41
  .insert_after("source", %(gem "rack-attack", "~> 6.7"\n))
@@ -71,7 +46,7 @@ module Hanamismith
71
46
  with_template.insert_after("source", %(gem "pg", "~> 1.5"\n))
72
47
  .insert_after("source", %(gem "rom", "~> 5.3"\n))
73
48
  .insert_after("source", %(gem "rom-sql", "~> 3.6"\n))
74
- .insert_after("source", %(\ngem "sequel", "~> 5.76"\n))
49
+ .insert_after("source", %(\ngem "sequel", "~> 5.77"\n))
75
50
  end
76
51
 
77
52
  # rubocop:todo Metrics/MethodLength
@@ -79,16 +54,16 @@ module Hanamismith
79
54
  with_template.insert_after(/group :quality/, %( gem "rubocop-sequel", "~> 0.3"\n))
80
55
  .insert_after(
81
56
  /group :development do/,
82
- %( gem "hanami-webconsole", github: "hanami/webconsole", branch: "main"\n)
57
+ %( gem "hanami-webconsole", "~> 2.1"\n)
83
58
  )
84
- .insert_after(/group :development do/, %( gem "localhost", "~> 1.1"\n))
59
+ .insert_after(/group :development do/, %( gem "localhost", "~> 1.2"\n))
85
60
  .insert_after(/group :development do/, %( gem "rerun", "~> 0.14"\n))
86
- .insert_after(/group :test/, %( gem "capybara", "~> 3.39"\n))
87
- .insert_after(/group :test/, %( gem "cuprite", "~> 0.14"\n))
61
+ .insert_after(/group :test/, %( gem "capybara", "~> 3.40"\n))
62
+ .insert_after(/group :test/, %( gem "cuprite", "~> 0.15"\n))
88
63
  .insert_after(/group :test/, %( gem "database_cleaner-sequel", "~> 2.0"\n))
89
64
  .insert_after(/group :test/, %( gem "launchy", "~> 2.5"\n))
90
65
  .insert_after(/group :test/, %( gem "rack-test", "~> 2.1"\n))
91
- .insert_after(/group :test/, %( gem "rom-factory", "~> 0.11"\n))
66
+ .insert_after(/group :test/, %( gem "rom-factory", "~> 0.12"\n))
92
67
  end
93
68
  # rubocop:enable Metrics/MethodLength
94
69
 
@@ -97,8 +72,8 @@ module Hanamismith
97
72
 
98
73
  with_template.insert_before(/group :tools do/, <<~CONTENT)
99
74
  group :development do
100
- gem "hanami-webconsole", github: "hanami/webconsole", branch: "main"
101
- gem "localhost", "~> 1.1"
75
+ gem "hanami-webconsole", "~> 2.1"
76
+ gem "localhost", "~> 1.2"
102
77
  gem "rerun", "~> 0.14"
103
78
  end
104
79
 
@@ -111,13 +86,13 @@ module Hanamismith
111
86
 
112
87
  with_template.insert_before(/group :tools do/, <<~CONTENT)
113
88
  group :test do
114
- gem "capybara", "~> 3.39"
115
- gem "cuprite", "~> 0.14"
89
+ gem "capybara", "~> 3.40"
90
+ gem "cuprite", "~> 0.15"
116
91
  gem "database_cleaner-sequel", "~> 2.0"
117
- gem "hanami-rspec", "~> 2.0"
92
+ gem "hanami-rspec", "~> 2.1"
118
93
  gem "launchy", "~> 2.5"
119
94
  gem "rack-test", "~> 2.1"
120
- gem "rom-factory", "~> 0.11"
95
+ gem "rom-factory", "~> 0.12"
121
96
  end
122
97
 
123
98
  CONTENT
@@ -128,7 +103,7 @@ module Hanamismith
128
103
  with_template.insert_before(/group :development/, <<~CONTENT)
129
104
 
130
105
  group :development, :test do
131
- gem "dotenv", "~> 2.8"
106
+ gem "dotenv", "~> 3.0"
132
107
  end
133
108
 
134
109
  CONTENT
@@ -141,5 +116,4 @@ module Hanamismith
141
116
  end
142
117
  end
143
118
  end
144
- # rubocop:enable Metrics/ClassLength
145
119
  end
@@ -12,7 +12,8 @@ module Hanamismith
12
12
  return configuration unless configuration.build_caliber
13
13
 
14
14
  super
15
- builder.call(configuration.merge(template_path: "%project_name%/.rubocop.yml.erb"))
15
+ path = "%project_name%/.config/rubocop/config.yml.erb"
16
+ builder.call(configuration.merge(template_path: path))
16
17
  .append("\nrequire: rubocop-sequel\n")
17
18
 
18
19
  configuration
@@ -23,12 +23,11 @@ module Hanamismith
23
23
  .append(<<~CONTENT)
24
24
  npm install
25
25
 
26
- hanami db create
27
- hanami db migrate
28
- hanami db seed
26
+ bin/hanami db create
27
+ bin/hanami db migrate
29
28
 
30
- HANAMI_ENV=test hanami db create
31
- HANAMI_ENV=test hanami db migrate
29
+ HANAMI_ENV=test bin/hanami db create
30
+ HANAMI_ENV=test bin/hanami db migrate
32
31
  CONTENT
33
32
  end
34
33
  end
@@ -100,6 +100,11 @@ module Hanamismith
100
100
  path = "%project_name%/slices/home/actions/show.rb.erb"
101
101
  builder.call(configuration.merge(template_path: path)).render
102
102
  end
103
+
104
+ def add_request_spec
105
+ path = "%project_name%/spec/features/home_spec.rb.erb"
106
+ builder.call(configuration.merge(template_path: path)).render
107
+ end
103
108
  end
104
109
  end
105
110
  end
@@ -60,6 +60,7 @@ module Hanamismith
60
60
  Rubysmith::Extensions::Tocer,
61
61
  Rubysmith::Extensions::Rubocop,
62
62
  Extensions::NPM,
63
+ Extensions::Asset,
63
64
  Builders::Environments::Development,
64
65
  Builders::Environments::Test,
65
66
  Builders::Git::Commit
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "refinements/pathname"
4
+
5
+ module Hanamismith
6
+ module Extensions
7
+ # Ensures assets are compiled.
8
+ class Asset
9
+ include Import[:kernel, :logger]
10
+
11
+ using Refinements::Pathname
12
+
13
+ def self.call(...) = new(...).call
14
+
15
+ def initialize(configuration, **)
16
+ super(**)
17
+ @configuration = configuration
18
+ end
19
+
20
+ def call
21
+ logger.error { "Unable to compile assets. Try: `hanami assets compile`." } unless run
22
+ configuration
23
+ end
24
+
25
+ private
26
+
27
+ attr_reader :configuration
28
+
29
+ def run
30
+ success = false
31
+ configuration.project_root.change_dir { success = compile_app && compile_home }
32
+ success
33
+ end
34
+
35
+ def compile_app
36
+ kernel.system "node config/assets.js -- --path=app --dest=public/assets > /dev/null 2>&1"
37
+ end
38
+
39
+ def compile_home
40
+ kernel.system(
41
+ "node config/assets.js -- --path=slices/home --dest=public/assets/_home > /dev/null 2>&1"
42
+ )
43
+ end
44
+ end
45
+ end
46
+ end
@@ -2,7 +2,6 @@
2
2
 
3
3
  require "refinements/io"
4
4
  require "refinements/pathname"
5
- require "rubocop"
6
5
 
7
6
  module Hanamismith
8
7
  module Extensions
@@ -7,10 +7,7 @@
7
7
  "private": true,
8
8
  "type": "module",
9
9
  "keywords": ["ruby", "hanami"],
10
- "scripts": {
11
- "assets": "node config/assets.js"
12
- },
13
10
  "dependencies": {
14
- "hanami-assets": "github:hanami/assets-js#main"
11
+ "hanami-assets": "^2.1.0"
15
12
  }
16
13
  }
@@ -0,0 +1,6 @@
1
+ RSpec.describe "Home", :web do
2
+ it "renders home page" do
3
+ visit "/"
4
+ expect(page).to have_content("<%= configuration.project_label %>")
5
+ end
6
+ 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: 0.28.1
4
+ version: 0.30.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-02-17 00:00:00.000000000 Z
38
+ date: 2024-03-03 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: cogger
@@ -141,28 +141,28 @@ dependencies:
141
141
  requirements:
142
142
  - - "~>"
143
143
  - !ruby/object:Gem::Version
144
- version: '12.0'
144
+ version: '12.1'
145
145
  type: :runtime
146
146
  prerelease: false
147
147
  version_requirements: !ruby/object:Gem::Requirement
148
148
  requirements:
149
149
  - - "~>"
150
150
  - !ruby/object:Gem::Version
151
- version: '12.0'
151
+ version: '12.1'
152
152
  - !ruby/object:Gem::Dependency
153
153
  name: rubysmith
154
154
  requirement: !ruby/object:Gem::Requirement
155
155
  requirements:
156
156
  - - "~>"
157
157
  - !ruby/object:Gem::Version
158
- version: '6.2'
158
+ version: '6.3'
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.2'
165
+ version: '6.3'
166
166
  - !ruby/object:Gem::Dependency
167
167
  name: runcom
168
168
  requirement: !ruby/object:Gem::Requirement
@@ -273,6 +273,7 @@ files:
273
273
  - lib/hanamismith/cli/commands/build.rb
274
274
  - lib/hanamismith/cli/shell.rb
275
275
  - lib/hanamismith/container.rb
276
+ - lib/hanamismith/extensions/asset.rb
276
277
  - lib/hanamismith/extensions/npm.rb
277
278
  - lib/hanamismith/import.rb
278
279
  - lib/hanamismith/templates/%project_name%/.circleci/config.yml.erb
@@ -319,6 +320,7 @@ files:
319
320
  - lib/hanamismith/templates/%project_name%/slices/home/view.rb.erb
320
321
  - lib/hanamismith/templates/%project_name%/slices/home/views/context.rb.erb
321
322
  - lib/hanamismith/templates/%project_name%/slices/home/views/show.rb.erb
323
+ - lib/hanamismith/templates/%project_name%/spec/features/home_spec.rb.erb
322
324
  - lib/hanamismith/templates/%project_name%/spec/hanami_helper.rb.erb
323
325
  - lib/hanamismith/templates/%project_name%/spec/lib/%project_path%/refines/actions/response_spec.rb.erb
324
326
  - lib/hanamismith/templates/%project_name%/spec/slices/health/actions/show_spec.rb.erb
metadata.gz.sig CHANGED
Binary file