hanami-cli 2.1.0.rc1 → 2.1.0.rc2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +18 -0
- data/lib/hanami/cli/commands/app/assets/command.rb +0 -14
- data/lib/hanami/cli/commands/app/assets/compile.rb +1 -1
- data/lib/hanami/cli/commands/app/generate/action.rb +25 -4
- data/lib/hanami/cli/commands/app/generate/part.rb +10 -1
- data/lib/hanami/cli/commands/gem/new.rb +13 -4
- data/lib/hanami/cli/generators/app/slice/app_layout.erb +1 -1
- data/lib/hanami/cli/generators/app/slice_context.rb +2 -2
- data/lib/hanami/cli/generators/gem/app/app_layout.erb +3 -3
- data/lib/hanami/cli/generators/gem/app/package.json.erb +2 -1
- data/lib/hanami/cli/generators/gem/app.rb +1 -1
- data/lib/hanami/cli/generators/version.rb +3 -3
- data/lib/hanami/cli/version.rb +1 -1
- metadata +4 -4
- /data/lib/hanami/cli/generators/gem/app/{assets.mjs → assets.js} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aa0dbea6bc97ed3a7d08b703e7fd9091def9a8326196d36c071fb8e3e9be654b
|
4
|
+
data.tar.gz: dc27646ce5d395932bd2fbddef1678cb5445959494270b8d5f149462a8648e90
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac1ab34a920c7fea44106a75c8c7e8d1bb0e475ff1e48ce2ef9b87912e9da6c83aa847ddf56661db13a01551fd58e098245b6d8ac277ca7143c69681d97d5ece
|
7
|
+
data.tar.gz: 706d1bb79523ba8a7efd9281267de12a0f275be0b60374c619b132371e0339335e6a4112b7a53ed5951e57293799aea1b4a89ac5bf6f9ee718daec4e1c44ee45
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,24 @@
|
|
2
2
|
|
3
3
|
Hanami Command Line Interface
|
4
4
|
|
5
|
+
## v2.1.0.rc2 - 2023-11-08
|
6
|
+
|
7
|
+
### Added
|
8
|
+
|
9
|
+
- [Tim Riley] Add `--skip-tests` for `hanami generate` commands. This CLI option will skip tests generation.
|
10
|
+
|
11
|
+
### Changed
|
12
|
+
|
13
|
+
- [Tim Riley] Set `"type": "module"` in package.json, enabling ES modules by default
|
14
|
+
- [Tim Riley] Rename `config/assets.mjs` to `config/assets.js` (use a plain `.js` file extension)
|
15
|
+
|
16
|
+
### Fixed
|
17
|
+
|
18
|
+
- [Tim Riley] Use correct helper names in generated app layout
|
19
|
+
- [Luca Guidi] Ensure to generate apps with correct pre-release version of `hanami-assets` NPM package
|
20
|
+
- [Sean Collins] Print to stderr NPM installation errors when running `hanami install`
|
21
|
+
- [Sean Collins] Ensure to install missing gems after `hanami install` is ran
|
22
|
+
|
5
23
|
## v2.1.0.rc1 - 2023-11-01
|
6
24
|
|
7
25
|
### Added
|
@@ -42,20 +42,6 @@ module Hanami
|
|
42
42
|
[config.package_manager_run_command, "assets"]
|
43
43
|
end
|
44
44
|
|
45
|
-
# @since 2.1.0
|
46
|
-
# @api private
|
47
|
-
def entry_points
|
48
|
-
config.entry_points.map do |entry_point|
|
49
|
-
escape(entry_point)
|
50
|
-
end.join(" ")
|
51
|
-
end
|
52
|
-
|
53
|
-
# @since 2.1.0
|
54
|
-
# @api private
|
55
|
-
def destination
|
56
|
-
escape(config.destination)
|
57
|
-
end
|
58
|
-
|
59
45
|
# @since 2.1.0
|
60
46
|
# @api private
|
61
47
|
def escape(str)
|
@@ -22,12 +22,25 @@ module Hanami
|
|
22
22
|
DEFAULT_SKIP_VIEW = false
|
23
23
|
private_constant :DEFAULT_SKIP_VIEW
|
24
24
|
|
25
|
+
DEFAULT_SKIP_TESTS = false
|
26
|
+
private_constant :DEFAULT_SKIP_TESTS
|
27
|
+
|
25
28
|
argument :name, required: true, desc: "Action name"
|
26
29
|
option :url, required: false, type: :string, desc: "Action URL"
|
27
30
|
option :http, required: false, type: :string, desc: "Action HTTP method"
|
28
31
|
# option :format, required: false, type: :string, default: DEFAULT_FORMAT, desc: "Template format"
|
29
|
-
option
|
30
|
-
|
32
|
+
option \
|
33
|
+
:skip_view,
|
34
|
+
required: false,
|
35
|
+
type: :boolean,
|
36
|
+
default: DEFAULT_SKIP_VIEW,
|
37
|
+
desc: "Skip view and template generation"
|
38
|
+
option \
|
39
|
+
:skip_tests,
|
40
|
+
required: false,
|
41
|
+
type: :boolean,
|
42
|
+
default: DEFAULT_SKIP_TESTS,
|
43
|
+
desc: "Skip test generation"
|
31
44
|
option :slice, required: false, desc: "Slice name"
|
32
45
|
|
33
46
|
# rubocop:disable Layout/LineLength
|
@@ -60,8 +73,16 @@ module Hanami
|
|
60
73
|
|
61
74
|
# @since 2.0.0
|
62
75
|
# @api private
|
63
|
-
def call(
|
64
|
-
|
76
|
+
def call(
|
77
|
+
name:,
|
78
|
+
url: nil,
|
79
|
+
http: nil,
|
80
|
+
format: DEFAULT_FORMAT,
|
81
|
+
skip_view: DEFAULT_SKIP_VIEW,
|
82
|
+
skip_tests: DEFAULT_SKIP_TESTS, # rubocop:disable Lint/UnusedMethodArgument
|
83
|
+
slice: nil,
|
84
|
+
context: nil, **
|
85
|
+
)
|
65
86
|
slice = inflector.underscore(Shellwords.shellescape(slice)) if slice
|
66
87
|
name = naming.action_name(name)
|
67
88
|
*controller, action = name.split(ACTION_SEPARATOR)
|
@@ -12,8 +12,17 @@ module Hanami
|
|
12
12
|
# @since 2.1.0
|
13
13
|
# @api private
|
14
14
|
class Part < App::Command
|
15
|
+
DEFAULT_SKIP_TESTS = false
|
16
|
+
private_constant :DEFAULT_SKIP_TESTS
|
17
|
+
|
15
18
|
argument :name, required: true, desc: "Part name"
|
16
19
|
option :slice, required: false, desc: "Slice name"
|
20
|
+
option \
|
21
|
+
:skip_tests,
|
22
|
+
required: false,
|
23
|
+
type: :boolean,
|
24
|
+
default: DEFAULT_SKIP_TESTS,
|
25
|
+
desc: "Skip test generation"
|
17
26
|
|
18
27
|
example [
|
19
28
|
%(book (MyApp::Views::Parts::Book)),
|
@@ -36,7 +45,7 @@ module Hanami
|
|
36
45
|
|
37
46
|
# @since 2.0.0
|
38
47
|
# @api private
|
39
|
-
def call(name:, slice: nil, **)
|
48
|
+
def call(name:, slice: nil, skip_tests: DEFAULT_SKIP_TESTS, **) # rubocop:disable Lint/UnusedMethodArgument
|
40
49
|
slice = inflector.underscore(Shellwords.shellescape(slice)) if slice
|
41
50
|
|
42
51
|
generator.call(app.namespace, name, slice)
|
@@ -99,11 +99,16 @@ module Hanami
|
|
99
99
|
|
100
100
|
unless skip_assets
|
101
101
|
out.puts "Running npm install..."
|
102
|
-
system_call.call("npm", ["install"])
|
102
|
+
system_call.call("npm", ["install"]).tap do |result|
|
103
|
+
unless result.successful?
|
104
|
+
puts "NPM ERROR:"
|
105
|
+
puts(result.err.lines.map { |line| line.prepend(" ") })
|
106
|
+
end
|
107
|
+
end
|
103
108
|
end
|
104
109
|
|
105
110
|
out.puts "Running Hanami install..."
|
106
|
-
|
111
|
+
run_install_command!(head: head)
|
107
112
|
end
|
108
113
|
end
|
109
114
|
end
|
@@ -116,10 +121,14 @@ module Hanami
|
|
116
121
|
attr_reader :generator
|
117
122
|
attr_reader :system_call
|
118
123
|
|
119
|
-
def
|
124
|
+
def run_install_command!(head:)
|
120
125
|
head_flag = head ? " --head" : ""
|
121
126
|
bundler.exec("hanami install#{head_flag}").tap do |result|
|
122
|
-
|
127
|
+
if result.successful?
|
128
|
+
bundler.exec("check").successful? || bundler.exec("install")
|
129
|
+
else
|
130
|
+
raise HanamiInstallError.new(result.err)
|
131
|
+
end
|
123
132
|
end
|
124
133
|
end
|
125
134
|
end
|
@@ -5,7 +5,7 @@
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
6
|
<title><%= humanized_app_name %> - <%= humanized_slice_name %></title>
|
7
7
|
<%- if bundled_assets? -%>
|
8
|
-
<%%=
|
8
|
+
<%%= favicon_tag %>
|
9
9
|
<%= stylesheet_erb_tag %>
|
10
10
|
<%- end -%>
|
11
11
|
</head>
|
@@ -38,13 +38,13 @@ module Hanami
|
|
38
38
|
# @since 2.1.0
|
39
39
|
# @api private
|
40
40
|
def stylesheet_erb_tag
|
41
|
-
%(<%=
|
41
|
+
%(<%= stylesheet_tag "#{slice}/app" %>)
|
42
42
|
end
|
43
43
|
|
44
44
|
# @since 2.1.0
|
45
45
|
# @api private
|
46
46
|
def javascript_erb_tag
|
47
|
-
%(<%=
|
47
|
+
%(<%= javascript_tag "#{slice}/app" %>)
|
48
48
|
end
|
49
49
|
|
50
50
|
private
|
@@ -5,14 +5,14 @@
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
6
|
<title><%= humanized_app_name %></title>
|
7
7
|
<%- if generate_assets? -%>
|
8
|
-
<%%=
|
9
|
-
<%%=
|
8
|
+
<%%= favicon_tag %>
|
9
|
+
<%%= stylesheet_tag "app" %>
|
10
10
|
<%- end -%>
|
11
11
|
</head>
|
12
12
|
<body>
|
13
13
|
<%%= yield %>
|
14
14
|
<%- if generate_assets? -%>
|
15
|
-
<%%=
|
15
|
+
<%%= javascript_tag "app" %>
|
16
16
|
<%- end -%>
|
17
17
|
</body>
|
18
18
|
</html>
|
@@ -62,7 +62,7 @@ module Hanami
|
|
62
62
|
|
63
63
|
if context.generate_assets?
|
64
64
|
fs.write("package.json", t("package.json.erb", context))
|
65
|
-
fs.write("config/assets.
|
65
|
+
fs.write("config/assets.js", file("assets.js"))
|
66
66
|
fs.write("app/assets/js/app.js", t("app_js.erb", context))
|
67
67
|
fs.write("app/assets/css/app.css", t("app_css.erb", context))
|
68
68
|
fs.write("app/assets/images/favicon.ico", file("favicon.ico"))
|
@@ -9,7 +9,7 @@ module Hanami
|
|
9
9
|
# @since 2.0.0
|
10
10
|
# @api private
|
11
11
|
def self.version
|
12
|
-
return Hanami::VERSION if
|
12
|
+
return Hanami::VERSION if Hanami.const_defined?(:VERSION)
|
13
13
|
|
14
14
|
Hanami::CLI::VERSION
|
15
15
|
end
|
@@ -32,7 +32,7 @@ module Hanami
|
|
32
32
|
if prerelease?
|
33
33
|
result = result
|
34
34
|
.sub(/\.(alpha|beta|rc)/, '-\1')
|
35
|
-
.sub(/(alpha|beta|rc)(
|
35
|
+
.sub(/(alpha|beta|rc)(\d+)(?:\.\d+)?\Z/, '\1.\2')
|
36
36
|
end
|
37
37
|
|
38
38
|
"^#{result}"
|
@@ -41,7 +41,7 @@ module Hanami
|
|
41
41
|
# @since 2.0.0
|
42
42
|
# @api private
|
43
43
|
def self.prerelease?
|
44
|
-
version
|
44
|
+
version.match?(/alpha|beta|rc/)
|
45
45
|
end
|
46
46
|
|
47
47
|
# @example
|
data/lib/hanami/cli/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hanami-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.0.
|
4
|
+
version: 2.1.0.rc2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luca Guidi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-11-
|
11
|
+
date: 2023-11-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -272,7 +272,7 @@ files:
|
|
272
272
|
- lib/hanami/cli/generators/gem/app/app_css.erb
|
273
273
|
- lib/hanami/cli/generators/gem/app/app_js.erb
|
274
274
|
- lib/hanami/cli/generators/gem/app/app_layout.erb
|
275
|
-
- lib/hanami/cli/generators/gem/app/assets.
|
275
|
+
- lib/hanami/cli/generators/gem/app/assets.js
|
276
276
|
- lib/hanami/cli/generators/gem/app/config_ru.erb
|
277
277
|
- lib/hanami/cli/generators/gem/app/dev
|
278
278
|
- lib/hanami/cli/generators/gem/app/env.erb
|
@@ -330,7 +330,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
330
330
|
- !ruby/object:Gem::Version
|
331
331
|
version: 1.3.1
|
332
332
|
requirements: []
|
333
|
-
rubygems_version: 3.4.
|
333
|
+
rubygems_version: 3.4.21
|
334
334
|
signing_key:
|
335
335
|
specification_version: 4
|
336
336
|
summary: Hanami CLI
|
File without changes
|