hanami-cli 2.0.3 → 2.1.0.beta2
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 +4 -4
- data/CHANGELOG.md +33 -0
- data/Gemfile +3 -2
- data/LICENSE.md +1 -1
- data/README.md +1 -1
- data/hanami-cli.gemspec +1 -1
- data/lib/hanami/cli/bundler.rb +21 -7
- data/lib/hanami/cli/command.rb +4 -4
- data/lib/hanami/cli/commands/app/assets/command.rb +82 -0
- data/lib/hanami/cli/commands/app/assets/compile.rb +32 -0
- data/lib/hanami/cli/commands/app/assets/watch.rb +36 -0
- data/lib/hanami/cli/commands/app/assets.rb +16 -0
- data/lib/hanami/cli/commands/app/command.rb +2 -2
- data/lib/hanami/cli/commands/app/db/rollback.rb +30 -6
- data/lib/hanami/cli/commands/app/db/utils/database.rb +5 -1
- data/lib/hanami/cli/commands/app/dev.rb +57 -0
- data/lib/hanami/cli/commands/app/generate/action.rb +5 -4
- data/lib/hanami/cli/commands/app/generate/view.rb +57 -0
- data/lib/hanami/cli/commands/app/generate.rb +2 -2
- data/lib/hanami/cli/commands/app/install.rb +44 -1
- data/lib/hanami/cli/commands/app.rb +9 -0
- data/lib/hanami/cli/commands/gem/new.rb +41 -7
- data/lib/hanami/cli/errors.rb +30 -0
- data/lib/hanami/cli/files.rb +8 -2
- data/lib/hanami/cli/generators/app/action/action.erb +5 -1
- data/lib/hanami/cli/generators/app/action/slice_action.erb +5 -1
- data/lib/hanami/cli/generators/app/action/slice_template.html.erb +1 -0
- data/lib/hanami/cli/generators/app/action/slice_view.erb +10 -0
- data/lib/hanami/cli/generators/app/action/template.html.erb +1 -2
- data/lib/hanami/cli/generators/app/action/view.erb +2 -5
- data/lib/hanami/cli/generators/app/action.rb +34 -22
- data/lib/hanami/cli/generators/app/action_context.rb +1 -1
- data/lib/hanami/cli/generators/app/slice/app_css.erb +5 -0
- data/lib/hanami/cli/generators/app/slice/app_js.erb +1 -0
- data/lib/hanami/cli/generators/app/slice/app_layout.erb +18 -0
- data/lib/hanami/cli/generators/app/slice/helpers.erb +10 -0
- data/lib/hanami/cli/generators/app/slice/view.erb +0 -2
- data/lib/hanami/cli/generators/app/slice.rb +15 -6
- data/lib/hanami/cli/generators/app/slice_context.rb +18 -0
- data/lib/hanami/cli/generators/app/view/app_template.html.erb +1 -0
- data/lib/hanami/cli/generators/app/view/app_view.erb +10 -0
- data/lib/hanami/cli/generators/app/view/slice_template.html.erb +1 -0
- data/lib/hanami/cli/generators/app/view/slice_view.erb +10 -0
- data/lib/hanami/cli/generators/app/view.rb +89 -0
- data/lib/hanami/cli/generators/app/view_context.rb +100 -0
- data/lib/hanami/cli/generators/context.rb +53 -4
- data/lib/hanami/cli/generators/gem/app/404.html +11 -0
- data/lib/hanami/cli/generators/gem/app/500.html +11 -0
- data/lib/hanami/cli/generators/gem/app/app_css.erb +5 -0
- data/lib/hanami/cli/generators/gem/app/app_js.erb +1 -0
- data/lib/hanami/cli/generators/gem/app/app_layout.erb +18 -0
- data/lib/hanami/cli/generators/gem/app/favicon.ico +0 -0
- data/lib/hanami/cli/generators/gem/app/gemfile.erb +14 -6
- data/lib/hanami/cli/generators/gem/app/gitignore.erb +4 -0
- data/lib/hanami/cli/generators/gem/app/helpers.erb +10 -0
- data/lib/hanami/cli/generators/gem/app/procfile.erb +4 -0
- data/lib/hanami/cli/generators/gem/app/puma.erb +5 -3
- data/lib/hanami/cli/generators/gem/app/view.erb +9 -0
- data/lib/hanami/cli/generators/gem/app.rb +15 -1
- data/lib/hanami/cli/interactive_system_call.rb +64 -0
- data/lib/hanami/cli/system_call.rb +8 -2
- data/lib/hanami/cli/url.rb +1 -1
- data/lib/hanami/cli/version.rb +1 -1
- metadata +35 -7
@@ -0,0 +1,100 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "slice_context"
|
4
|
+
require "dry/files/path"
|
5
|
+
|
6
|
+
module Hanami
|
7
|
+
module CLI
|
8
|
+
module Generators
|
9
|
+
# @since 2.1.0
|
10
|
+
# @api private
|
11
|
+
module App
|
12
|
+
# @since 2.1.0
|
13
|
+
# @api private
|
14
|
+
class ViewContext < SliceContext
|
15
|
+
# TODO: move these constants somewhere that will let us reuse them
|
16
|
+
KEY_SEPARATOR = "."
|
17
|
+
private_constant :KEY_SEPARATOR
|
18
|
+
|
19
|
+
NAMESPACE_SEPARATOR = "::"
|
20
|
+
private_constant :NAMESPACE_SEPARATOR
|
21
|
+
|
22
|
+
INDENTATION = " "
|
23
|
+
private_constant :INDENTATION
|
24
|
+
|
25
|
+
OFFSET = INDENTATION * 2
|
26
|
+
private_constant :OFFSET
|
27
|
+
|
28
|
+
# @since 2.1.0
|
29
|
+
# @api private
|
30
|
+
attr_reader :key
|
31
|
+
|
32
|
+
# @since 2.1.0
|
33
|
+
# @api private
|
34
|
+
def initialize(inflector, app, slice, key)
|
35
|
+
@key = key
|
36
|
+
super(inflector, app, slice, nil)
|
37
|
+
end
|
38
|
+
|
39
|
+
# @since 2.1.0
|
40
|
+
# @api private
|
41
|
+
def namespaces
|
42
|
+
@namespaces ||= key.split(KEY_SEPARATOR)[..-2]
|
43
|
+
end
|
44
|
+
|
45
|
+
# @since 2.1.0
|
46
|
+
# @api private
|
47
|
+
def name
|
48
|
+
@name ||= key.split(KEY_SEPARATOR)[-1]
|
49
|
+
end
|
50
|
+
|
51
|
+
# @since 2.1.0
|
52
|
+
# @api private
|
53
|
+
def camelized_namespace
|
54
|
+
namespaces.map { inflector.camelize(_1) }.join(NAMESPACE_SEPARATOR)
|
55
|
+
end
|
56
|
+
|
57
|
+
# @since 2.1.0
|
58
|
+
# @api private
|
59
|
+
def camelized_name
|
60
|
+
inflector.camelize(name)
|
61
|
+
end
|
62
|
+
|
63
|
+
# @since 2.1.0
|
64
|
+
# @api private
|
65
|
+
def underscored_namespace
|
66
|
+
namespaces.map { inflector.underscore(_1) }
|
67
|
+
end
|
68
|
+
|
69
|
+
# @since 2.1.0
|
70
|
+
# @api private
|
71
|
+
def underscored_name
|
72
|
+
inflector.underscore(name)
|
73
|
+
end
|
74
|
+
|
75
|
+
# @since 2.1.0
|
76
|
+
# @api private
|
77
|
+
def module_namespace_declaration
|
78
|
+
namespaces.each_with_index.map { |token, i|
|
79
|
+
"#{OFFSET}#{INDENTATION * i}module #{inflector.camelize(token)}"
|
80
|
+
}.join($/)
|
81
|
+
end
|
82
|
+
|
83
|
+
# @since 2.1.0
|
84
|
+
# @api private
|
85
|
+
def module_namespace_end
|
86
|
+
namespaces.each_with_index.map { |_, i|
|
87
|
+
"#{OFFSET}#{INDENTATION * i}end"
|
88
|
+
}.reverse.join($/)
|
89
|
+
end
|
90
|
+
|
91
|
+
# @since 2.1.0
|
92
|
+
# @api private
|
93
|
+
def module_namespace_offset
|
94
|
+
"#{OFFSET}#{INDENTATION * namespaces.count}"
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require_relative "
|
3
|
+
require_relative "version"
|
4
4
|
|
5
5
|
module Hanami
|
6
6
|
module CLI
|
@@ -12,9 +12,10 @@ module Hanami
|
|
12
12
|
class Context
|
13
13
|
# @since 2.0.0
|
14
14
|
# @api private
|
15
|
-
def initialize(inflector, app)
|
15
|
+
def initialize(inflector, app, **options)
|
16
16
|
@inflector = inflector
|
17
17
|
@app = app
|
18
|
+
@options = options
|
18
19
|
end
|
19
20
|
|
20
21
|
# @since 2.0.0
|
@@ -23,10 +24,20 @@ module Hanami
|
|
23
24
|
binding
|
24
25
|
end
|
25
26
|
|
27
|
+
def hanami_gem(name)
|
28
|
+
gem_name = name == "hanami" ? "hanami" : "hanami-#{name}"
|
29
|
+
|
30
|
+
%(gem "#{gem_name}", #{hanami_version(name)})
|
31
|
+
end
|
32
|
+
|
26
33
|
# @since 2.0.0
|
27
34
|
# @api private
|
28
|
-
def hanami_version
|
29
|
-
|
35
|
+
def hanami_version(gem_name)
|
36
|
+
if hanami_head?
|
37
|
+
%(github: "hanami/#{gem_name}", branch: "main")
|
38
|
+
else
|
39
|
+
%("#{Version.gem_requirement}")
|
40
|
+
end
|
30
41
|
end
|
31
42
|
|
32
43
|
# @since 2.0.0
|
@@ -41,11 +52,49 @@ module Hanami
|
|
41
52
|
inflector.underscore(app)
|
42
53
|
end
|
43
54
|
|
55
|
+
# @since 2.1.0
|
56
|
+
# @api private
|
57
|
+
def humanized_app_name
|
58
|
+
inflector.humanize(app)
|
59
|
+
end
|
60
|
+
|
61
|
+
# @since 2.1.0
|
62
|
+
# @api private
|
63
|
+
def hanami_head?
|
64
|
+
options.fetch(:head)
|
65
|
+
end
|
66
|
+
|
67
|
+
# @since 2.1.0
|
68
|
+
# @api private
|
69
|
+
def generate_assets?
|
70
|
+
!options.fetch(:skip_assets, false)
|
71
|
+
end
|
72
|
+
|
73
|
+
# @since 2.1.0
|
74
|
+
# @api private
|
75
|
+
def bundled_views?
|
76
|
+
Hanami.bundled?("hanami-view")
|
77
|
+
end
|
78
|
+
|
79
|
+
# @since 2.1.0
|
80
|
+
# @api private
|
81
|
+
def bundled_assets?
|
82
|
+
Hanami.bundled?("hanami-assets")
|
83
|
+
end
|
84
|
+
|
44
85
|
private
|
45
86
|
|
87
|
+
# @since 2.0.0
|
88
|
+
# @api private
|
46
89
|
attr_reader :inflector
|
47
90
|
|
91
|
+
# @since 2.0.0
|
92
|
+
# @api private
|
48
93
|
attr_reader :app
|
94
|
+
|
95
|
+
# @since 2.1.0
|
96
|
+
# @api private
|
97
|
+
attr_reader :options
|
49
98
|
end
|
50
99
|
end
|
51
100
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>The page you were looking for doesn’t exist (404)</title>
|
5
|
+
</head>
|
6
|
+
<body>
|
7
|
+
<!-- This file lives in public/404.html -->
|
8
|
+
<h1>The page you were looking for doesn’t exist.</h1>
|
9
|
+
<p>You may have mistyped the address or the page may have moved.</p>
|
10
|
+
</body>
|
11
|
+
</html>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>We’re sorry, but something went wrong (500)</title>
|
5
|
+
</head>
|
6
|
+
<body>
|
7
|
+
<!-- This file lives in public/500.html -->
|
8
|
+
<h1>We’re sorry, but something went wrong.</h1>
|
9
|
+
<p>If you are the application owner, check the logs for more information.</p>
|
10
|
+
</body>
|
11
|
+
</html>
|
@@ -0,0 +1 @@
|
|
1
|
+
import "../css/app.css";
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
<meta charset="UTF-8">
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
|
+
<title><%= humanized_app_name %></title>
|
7
|
+
<%- if generate_assets? -%>
|
8
|
+
<%%= favicon %>
|
9
|
+
<%%= css "app" %>
|
10
|
+
<%- end -%>
|
11
|
+
</head>
|
12
|
+
<body>
|
13
|
+
<%%= yield %>
|
14
|
+
<%- if generate_assets? -%>
|
15
|
+
<%%= js "app" %>
|
16
|
+
<%- end -%>
|
17
|
+
</body>
|
18
|
+
</html>
|
Binary file
|
@@ -2,23 +2,31 @@
|
|
2
2
|
|
3
3
|
source "https://rubygems.org"
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
<%= hanami_gem("hanami") %>
|
6
|
+
<%= hanami_gem("router") %>
|
7
|
+
<%= hanami_gem("controller") %>
|
8
|
+
<%= hanami_gem("validations") %>
|
9
|
+
<%= hanami_gem("view") %>
|
10
|
+
<%- if generate_assets? -%>
|
11
|
+
<%= hanami_gem("assets") %>
|
12
|
+
<%- end -%>
|
9
13
|
|
10
14
|
gem "dry-types", "~> 1.0", ">= 1.6.1"
|
11
15
|
gem "puma"
|
12
16
|
gem "rake"
|
13
17
|
|
18
|
+
group :development do
|
19
|
+
<%= hanami_gem("webconsole") %>
|
20
|
+
end
|
21
|
+
|
14
22
|
group :development, :test do
|
15
23
|
gem "dotenv"
|
16
24
|
end
|
17
25
|
|
18
26
|
group :cli, :development do
|
19
|
-
|
27
|
+
<%= hanami_gem("reloader") %>
|
20
28
|
end
|
21
29
|
|
22
30
|
group :cli, :development, :test do
|
23
|
-
|
31
|
+
<%= hanami_gem("rspec") %>
|
24
32
|
end
|
@@ -6,10 +6,12 @@ threads min_threads_count, max_threads_count
|
|
6
6
|
|
7
7
|
port ENV.fetch("<%= Hanami::Port::ENV_VAR %>", <%= Hanami::Port::DEFAULT %>)
|
8
8
|
environment ENV.fetch("HANAMI_ENV", "development")
|
9
|
-
workers ENV.fetch("HANAMI_WEB_CONCURRENCY",
|
9
|
+
workers ENV.fetch("HANAMI_WEB_CONCURRENCY", 0)
|
10
10
|
|
11
|
-
|
12
|
-
|
11
|
+
if ENV.fetch("HANAMI_WEB_CONCURRENCY", 0) > 0
|
12
|
+
on_worker_boot do
|
13
|
+
Hanami.shutdown
|
14
|
+
end
|
13
15
|
end
|
14
16
|
|
15
17
|
preload_app!
|
@@ -40,6 +40,7 @@ module Hanami
|
|
40
40
|
fs.write("README.md", t("readme.erb", context))
|
41
41
|
fs.write("Gemfile", t("gemfile.erb", context))
|
42
42
|
fs.write("Rakefile", t("rakefile.erb", context))
|
43
|
+
fs.write("Procfile.dev", t("procfile.erb", context))
|
43
44
|
fs.write("config.ru", t("config_ru.erb", context))
|
44
45
|
|
45
46
|
fs.write("config/app.rb", t("app.erb", context))
|
@@ -52,13 +53,26 @@ module Hanami
|
|
52
53
|
|
53
54
|
fs.write("app/actions/.keep", t("keep.erb", context))
|
54
55
|
fs.write("app/action.rb", t("action.erb", context))
|
56
|
+
fs.write("app/view.rb", t("view.erb", context))
|
57
|
+
fs.write("app/views/helpers.rb", t("helpers.erb", context))
|
58
|
+
fs.write("app/templates/layouts/app.html.erb", t("app_layout.erb", context))
|
59
|
+
|
60
|
+
if context.generate_assets?
|
61
|
+
fs.write("app/assets/js/app.js", t("app_js.erb", context))
|
62
|
+
fs.write("app/assets/css/app.css", t("app_css.erb", context))
|
63
|
+
fs.write("app/assets/images/favicon.ico", File.read(File.join(__dir__, "app", "favicon.ico")))
|
64
|
+
end
|
65
|
+
|
66
|
+
fs.write("public/404.html", File.read(File.join(__dir__, "app", "404.html")))
|
67
|
+
fs.write("public/500.html", File.read(File.join(__dir__, "app", "500.html")))
|
55
68
|
end
|
56
69
|
|
57
70
|
def template(path, context)
|
58
71
|
require "erb"
|
59
72
|
|
60
73
|
ERB.new(
|
61
|
-
File.read(File.join(__dir__, "app", path))
|
74
|
+
File.read(File.join(__dir__, "app", path)),
|
75
|
+
trim_mode: "-"
|
62
76
|
).result(context.ctx)
|
63
77
|
end
|
64
78
|
|
@@ -0,0 +1,64 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "open3"
|
4
|
+
|
5
|
+
module Hanami
|
6
|
+
module CLI
|
7
|
+
# @api private
|
8
|
+
# @since 2.1.0
|
9
|
+
class InteractiveSystemCall
|
10
|
+
# @api private
|
11
|
+
# @since 2.1.0
|
12
|
+
def initialize(out: $stdout, err: $stderr)
|
13
|
+
@out = out
|
14
|
+
@err = err
|
15
|
+
super()
|
16
|
+
end
|
17
|
+
|
18
|
+
# @api private
|
19
|
+
# @since 2.1.0
|
20
|
+
def call(cmd, *args, env: {})
|
21
|
+
::Bundler.with_unbundled_env do
|
22
|
+
threads = []
|
23
|
+
exit_status = 0
|
24
|
+
|
25
|
+
# rubocop:disable Lint/SuppressedException
|
26
|
+
Open3.popen3(env, command(cmd, *args)) do |_stdin, stdout, stderr, wait_thr|
|
27
|
+
threads << Thread.new do
|
28
|
+
stdout.each_line do |line|
|
29
|
+
out.puts(line)
|
30
|
+
end
|
31
|
+
rescue IOError # FIXME: Check if this is legit
|
32
|
+
end
|
33
|
+
|
34
|
+
threads << Thread.new do
|
35
|
+
stderr.each_line do |line|
|
36
|
+
err.puts(line)
|
37
|
+
end
|
38
|
+
rescue IOError # FIXME: Check if this is legit
|
39
|
+
end
|
40
|
+
|
41
|
+
threads.each(&:join)
|
42
|
+
|
43
|
+
exit_status = wait_thr.value
|
44
|
+
end
|
45
|
+
# rubocop:enable Lint/SuppressedException
|
46
|
+
|
47
|
+
exit(exit_status.exitstatus)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
private
|
52
|
+
|
53
|
+
# @api private
|
54
|
+
# @since 2.1.0
|
55
|
+
attr_reader :out, :err
|
56
|
+
|
57
|
+
# @since 2.1.0
|
58
|
+
# @api public
|
59
|
+
def command(cmd, *args)
|
60
|
+
[cmd, args].flatten(1).compact.join(" ")
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -85,13 +85,13 @@ module Hanami
|
|
85
85
|
#
|
86
86
|
# @since 2.0.0
|
87
87
|
# @api public
|
88
|
-
def call(cmd, env: {})
|
88
|
+
def call(cmd, *args, env: {})
|
89
89
|
exitstatus = nil
|
90
90
|
out = nil
|
91
91
|
err = nil
|
92
92
|
|
93
93
|
::Bundler.with_unbundled_env do
|
94
|
-
Open3.popen3(env, cmd) do |stdin, stdout, stderr, wait_thr|
|
94
|
+
Open3.popen3(env, command(cmd, *args)) do |stdin, stdout, stderr, wait_thr|
|
95
95
|
yield stdin, stdout, stderr, wait_thr if block_given?
|
96
96
|
|
97
97
|
stdin.close
|
@@ -104,6 +104,12 @@ module Hanami
|
|
104
104
|
|
105
105
|
Result.new(exit_code: exitstatus, out: out, err: err)
|
106
106
|
end
|
107
|
+
|
108
|
+
# @since 2.1.0
|
109
|
+
# @api public
|
110
|
+
def command(cmd, *args)
|
111
|
+
[cmd, args].flatten(1).compact.join(" ")
|
112
|
+
end
|
107
113
|
end
|
108
114
|
end
|
109
115
|
end
|
data/lib/hanami/cli/url.rb
CHANGED
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.0.
|
4
|
+
version: 2.1.0.beta2
|
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
|
+
date: 2023-10-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -53,7 +53,7 @@ dependencies:
|
|
53
53
|
version: '1.0'
|
54
54
|
- - ">="
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: 1.0.
|
56
|
+
version: 1.0.2
|
57
57
|
- - "<"
|
58
58
|
- !ruby/object:Gem::Version
|
59
59
|
version: '2'
|
@@ -66,7 +66,7 @@ dependencies:
|
|
66
66
|
version: '1.0'
|
67
67
|
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: 1.0.
|
69
|
+
version: 1.0.2
|
70
70
|
- - "<"
|
71
71
|
- !ruby/object:Gem::Version
|
72
72
|
version: '2'
|
@@ -191,6 +191,10 @@ files:
|
|
191
191
|
- lib/hanami/cli/command.rb
|
192
192
|
- lib/hanami/cli/commands.rb
|
193
193
|
- lib/hanami/cli/commands/app.rb
|
194
|
+
- lib/hanami/cli/commands/app/assets.rb
|
195
|
+
- lib/hanami/cli/commands/app/assets/command.rb
|
196
|
+
- lib/hanami/cli/commands/app/assets/compile.rb
|
197
|
+
- lib/hanami/cli/commands/app/assets/watch.rb
|
194
198
|
- lib/hanami/cli/commands/app/command.rb
|
195
199
|
- lib/hanami/cli/commands/app/console.rb
|
196
200
|
- lib/hanami/cli/commands/app/db/create.rb
|
@@ -209,9 +213,11 @@ files:
|
|
209
213
|
- lib/hanami/cli/commands/app/db/utils/postgres.rb
|
210
214
|
- lib/hanami/cli/commands/app/db/utils/sqlite.rb
|
211
215
|
- lib/hanami/cli/commands/app/db/version.rb
|
216
|
+
- lib/hanami/cli/commands/app/dev.rb
|
212
217
|
- lib/hanami/cli/commands/app/generate.rb
|
213
218
|
- lib/hanami/cli/commands/app/generate/action.rb
|
214
219
|
- lib/hanami/cli/commands/app/generate/slice.rb
|
220
|
+
- lib/hanami/cli/commands/app/generate/view.rb
|
215
221
|
- lib/hanami/cli/commands/app/install.rb
|
216
222
|
- lib/hanami/cli/commands/app/middleware.rb
|
217
223
|
- lib/hanami/cli/commands/app/routes.rb
|
@@ -225,28 +231,48 @@ files:
|
|
225
231
|
- lib/hanami/cli/generators/app/action.rb
|
226
232
|
- lib/hanami/cli/generators/app/action/action.erb
|
227
233
|
- lib/hanami/cli/generators/app/action/slice_action.erb
|
234
|
+
- lib/hanami/cli/generators/app/action/slice_template.html.erb
|
235
|
+
- lib/hanami/cli/generators/app/action/slice_view.erb
|
228
236
|
- lib/hanami/cli/generators/app/action/template.erb
|
229
237
|
- lib/hanami/cli/generators/app/action/template.html.erb
|
230
238
|
- lib/hanami/cli/generators/app/action/view.erb
|
231
239
|
- lib/hanami/cli/generators/app/action_context.rb
|
232
240
|
- lib/hanami/cli/generators/app/slice.rb
|
233
241
|
- lib/hanami/cli/generators/app/slice/action.erb
|
242
|
+
- lib/hanami/cli/generators/app/slice/app_css.erb
|
243
|
+
- lib/hanami/cli/generators/app/slice/app_js.erb
|
244
|
+
- lib/hanami/cli/generators/app/slice/app_layout.erb
|
234
245
|
- lib/hanami/cli/generators/app/slice/entities.erb
|
246
|
+
- lib/hanami/cli/generators/app/slice/helpers.erb
|
235
247
|
- lib/hanami/cli/generators/app/slice/keep.erb
|
236
248
|
- lib/hanami/cli/generators/app/slice/repository.erb
|
237
249
|
- lib/hanami/cli/generators/app/slice/routes.erb
|
238
250
|
- lib/hanami/cli/generators/app/slice/slice.erb
|
239
251
|
- lib/hanami/cli/generators/app/slice/view.erb
|
240
252
|
- lib/hanami/cli/generators/app/slice_context.rb
|
253
|
+
- lib/hanami/cli/generators/app/view.rb
|
254
|
+
- lib/hanami/cli/generators/app/view/app_template.html.erb
|
255
|
+
- lib/hanami/cli/generators/app/view/app_view.erb
|
256
|
+
- lib/hanami/cli/generators/app/view/slice_template.html.erb
|
257
|
+
- lib/hanami/cli/generators/app/view/slice_view.erb
|
258
|
+
- lib/hanami/cli/generators/app/view_context.rb
|
241
259
|
- lib/hanami/cli/generators/context.rb
|
242
260
|
- lib/hanami/cli/generators/gem/app.rb
|
261
|
+
- lib/hanami/cli/generators/gem/app/404.html
|
262
|
+
- lib/hanami/cli/generators/gem/app/500.html
|
243
263
|
- lib/hanami/cli/generators/gem/app/action.erb
|
244
264
|
- lib/hanami/cli/generators/gem/app/app.erb
|
265
|
+
- lib/hanami/cli/generators/gem/app/app_css.erb
|
266
|
+
- lib/hanami/cli/generators/gem/app/app_js.erb
|
267
|
+
- lib/hanami/cli/generators/gem/app/app_layout.erb
|
245
268
|
- lib/hanami/cli/generators/gem/app/config_ru.erb
|
246
269
|
- lib/hanami/cli/generators/gem/app/env.erb
|
270
|
+
- lib/hanami/cli/generators/gem/app/favicon.ico
|
247
271
|
- lib/hanami/cli/generators/gem/app/gemfile.erb
|
248
272
|
- lib/hanami/cli/generators/gem/app/gitignore.erb
|
273
|
+
- lib/hanami/cli/generators/gem/app/helpers.erb
|
249
274
|
- lib/hanami/cli/generators/gem/app/keep.erb
|
275
|
+
- lib/hanami/cli/generators/gem/app/procfile.erb
|
250
276
|
- lib/hanami/cli/generators/gem/app/puma.erb
|
251
277
|
- lib/hanami/cli/generators/gem/app/rakefile.erb
|
252
278
|
- lib/hanami/cli/generators/gem/app/readme.erb
|
@@ -254,7 +280,9 @@ files:
|
|
254
280
|
- lib/hanami/cli/generators/gem/app/settings.erb
|
255
281
|
- lib/hanami/cli/generators/gem/app/types.erb
|
256
282
|
- lib/hanami/cli/generators/gem/app/validator.erb
|
283
|
+
- lib/hanami/cli/generators/gem/app/view.erb
|
257
284
|
- lib/hanami/cli/generators/version.rb
|
285
|
+
- lib/hanami/cli/interactive_system_call.rb
|
258
286
|
- lib/hanami/cli/middleware_stack_inspector.rb
|
259
287
|
- lib/hanami/cli/naming.rb
|
260
288
|
- lib/hanami/cli/rake_tasks.rb
|
@@ -288,11 +316,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
288
316
|
version: '3.0'
|
289
317
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
290
318
|
requirements:
|
291
|
-
- - "
|
319
|
+
- - ">"
|
292
320
|
- !ruby/object:Gem::Version
|
293
|
-
version:
|
321
|
+
version: 1.3.1
|
294
322
|
requirements: []
|
295
|
-
rubygems_version: 3.4.
|
323
|
+
rubygems_version: 3.4.13
|
296
324
|
signing_key:
|
297
325
|
specification_version: 4
|
298
326
|
summary: Hanami CLI
|