hanami-cli 2.2.1 → 2.3.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/.github/workflows/ci.yml +9 -1
- data/CHANGELOG.md +50 -0
- data/Gemfile +3 -1
- data/hanami-cli.gemspec +3 -1
- data/lib/hanami/cli/command.rb +5 -11
- data/lib/hanami/cli/commands/app/command.rb +5 -5
- data/lib/hanami/cli/commands/app/console.rb +1 -0
- data/lib/hanami/cli/commands/app/db/command.rb +0 -1
- data/lib/hanami/cli/commands/app/db/drop.rb +2 -2
- data/lib/hanami/cli/commands/app/db/rollback.rb +204 -0
- data/lib/hanami/cli/commands/app/db/utils/mysql.rb +3 -2
- data/lib/hanami/cli/commands/app/db/utils/postgres.rb +3 -1
- data/lib/hanami/cli/commands/app/generate/action.rb +32 -40
- data/lib/hanami/cli/commands/app/generate/command.rb +54 -17
- data/lib/hanami/cli/commands/app/generate/component.rb +4 -19
- data/lib/hanami/cli/commands/app/generate/part.rb +4 -21
- data/lib/hanami/cli/commands/app/generate/slice.rb +2 -2
- data/lib/hanami/cli/commands/app/generate/view.rb +5 -24
- data/lib/hanami/cli/commands/app/run.rb +108 -0
- data/lib/hanami/cli/commands/app/server.rb +0 -1
- data/lib/hanami/cli/commands/app.rb +2 -0
- data/lib/hanami/cli/commands/gem/new.rb +34 -3
- data/lib/hanami/cli/errors.rb +26 -0
- data/lib/hanami/cli/files.rb +20 -6
- data/lib/hanami/cli/generators/app/action.rb +83 -100
- data/lib/hanami/cli/generators/app/component.rb +11 -33
- data/lib/hanami/cli/generators/app/migration.rb +1 -1
- data/lib/hanami/cli/generators/app/operation.rb +4 -5
- data/lib/hanami/cli/generators/app/part.rb +42 -65
- data/lib/hanami/cli/generators/app/relation.rb +5 -6
- data/lib/hanami/cli/generators/app/repo.rb +3 -5
- data/lib/hanami/cli/generators/app/ruby_class_file.rb +32 -0
- data/lib/hanami/cli/generators/app/ruby_file.rb +123 -0
- data/lib/hanami/cli/generators/app/ruby_module_file.rb +28 -0
- data/lib/hanami/cli/generators/app/slice.rb +130 -37
- data/lib/hanami/cli/generators/app/struct.rb +3 -4
- data/lib/hanami/cli/generators/app/view.rb +40 -45
- data/lib/hanami/cli/generators/constants.rb +1 -1
- data/lib/hanami/cli/generators/context.rb +6 -0
- data/lib/hanami/cli/generators/gem/app/assets.js +14 -13
- data/lib/hanami/cli/generators/gem/app/dev +1 -1
- data/lib/hanami/cli/generators/gem/app/gemfile.erb +5 -0
- data/lib/hanami/cli/generators/gem/app/gitignore.erb +3 -1
- data/lib/hanami/cli/generators/gem/app/rakefile.erb +3 -0
- data/lib/hanami/cli/generators/gem/app/readme.erb +14 -0
- data/lib/hanami/cli/generators/gem/app/types.erb +1 -1
- data/lib/hanami/cli/generators/gem/app.rb +40 -37
- data/lib/hanami/cli/ruby_file_generator.rb +17 -8
- data/lib/hanami/cli/server.rb +15 -1
- data/lib/hanami/cli/version.rb +1 -1
- data/lib/hanami/console/context.rb +5 -0
- metadata +37 -42
- data/lib/hanami/cli/generators/app/action/action.erb +0 -17
- data/lib/hanami/cli/generators/app/action/slice_action.erb +0 -17
- data/lib/hanami/cli/generators/app/action/slice_template.html.erb +0 -1
- data/lib/hanami/cli/generators/app/action/slice_view.erb +0 -10
- data/lib/hanami/cli/generators/app/action/template.erb +0 -0
- data/lib/hanami/cli/generators/app/action/template.html.erb +0 -1
- data/lib/hanami/cli/generators/app/action/view.erb +0 -10
- data/lib/hanami/cli/generators/app/action_context.rb +0 -90
- data/lib/hanami/cli/generators/app/component/component.erb +0 -8
- data/lib/hanami/cli/generators/app/component/slice_component.erb +0 -8
- data/lib/hanami/cli/generators/app/component_context.rb +0 -82
- data/lib/hanami/cli/generators/app/part/app_base_part.erb +0 -9
- data/lib/hanami/cli/generators/app/part/app_part.erb +0 -13
- data/lib/hanami/cli/generators/app/part/slice_base_part.erb +0 -9
- data/lib/hanami/cli/generators/app/part/slice_part.erb +0 -13
- data/lib/hanami/cli/generators/app/part_context.rb +0 -82
- data/lib/hanami/cli/generators/app/ruby_file_writer.rb +0 -151
- data/lib/hanami/cli/generators/app/slice/action.erb +0 -7
- data/lib/hanami/cli/generators/app/slice/app_css.erb +0 -5
- data/lib/hanami/cli/generators/app/slice/app_js.erb +0 -1
- data/lib/hanami/cli/generators/app/slice/app_layout.erb +0 -18
- data/lib/hanami/cli/generators/app/slice/helpers.erb +0 -10
- data/lib/hanami/cli/generators/app/slice/keep.erb +0 -0
- data/lib/hanami/cli/generators/app/slice/operation.erb +0 -7
- data/lib/hanami/cli/generators/app/slice/relation.erb +0 -8
- data/lib/hanami/cli/generators/app/slice/repo.erb +0 -8
- data/lib/hanami/cli/generators/app/slice/routes.erb +0 -3
- data/lib/hanami/cli/generators/app/slice/struct.erb +0 -8
- data/lib/hanami/cli/generators/app/slice/view.erb +0 -7
- data/lib/hanami/cli/generators/app/slice_context.rb +0 -72
- data/lib/hanami/cli/generators/app/view/app_template.html.erb +0 -1
- data/lib/hanami/cli/generators/app/view/app_view.erb +0 -10
- data/lib/hanami/cli/generators/app/view/slice_template.html.erb +0 -1
- data/lib/hanami/cli/generators/app/view/slice_view.erb +0 -10
- data/lib/hanami/cli/generators/app/view_context.rb +0 -88
|
@@ -26,7 +26,7 @@ module Hanami
|
|
|
26
26
|
INDENT = " "
|
|
27
27
|
|
|
28
28
|
def self.class(class_name, **args)
|
|
29
|
-
new(class_name: class_name, **args).
|
|
29
|
+
new(class_name: class_name, **args).call
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
def self.module(*names, **args)
|
|
@@ -36,24 +36,33 @@ module Hanami
|
|
|
36
36
|
names
|
|
37
37
|
end
|
|
38
38
|
|
|
39
|
-
new(
|
|
39
|
+
new(
|
|
40
|
+
modules: module_names,
|
|
41
|
+
class_name: nil,
|
|
42
|
+
parent_class_name: nil,
|
|
43
|
+
**args,
|
|
44
|
+
).call
|
|
40
45
|
end
|
|
41
46
|
|
|
42
47
|
def initialize(
|
|
43
48
|
class_name: nil,
|
|
44
|
-
|
|
49
|
+
parent_class_name: nil,
|
|
45
50
|
modules: [],
|
|
46
51
|
header: [],
|
|
47
52
|
body: []
|
|
48
53
|
)
|
|
49
54
|
@class_name = class_name
|
|
50
|
-
@
|
|
55
|
+
@parent_class_name = parent_class_name
|
|
51
56
|
@modules = modules
|
|
52
57
|
@header = header.any? ? (header + [""]) : []
|
|
53
58
|
@body = body
|
|
59
|
+
|
|
60
|
+
if parent_class_name && !class_name
|
|
61
|
+
raise ArgumentError, "class_name is required when parent_class_name is specified"
|
|
62
|
+
end
|
|
54
63
|
end
|
|
55
64
|
|
|
56
|
-
def
|
|
65
|
+
def call
|
|
57
66
|
definition = lines(modules).map { |line| "#{line}\n" }.join
|
|
58
67
|
source_code = [header, definition].flatten.join("\n")
|
|
59
68
|
ensure_parseable!(source_code)
|
|
@@ -64,7 +73,7 @@ module Hanami
|
|
|
64
73
|
|
|
65
74
|
attr_reader(
|
|
66
75
|
:class_name,
|
|
67
|
-
:
|
|
76
|
+
:parent_class_name,
|
|
68
77
|
:modules,
|
|
69
78
|
:header,
|
|
70
79
|
:body
|
|
@@ -98,8 +107,8 @@ module Hanami
|
|
|
98
107
|
end
|
|
99
108
|
|
|
100
109
|
def class_definition
|
|
101
|
-
if
|
|
102
|
-
"class #{class_name} < #{
|
|
110
|
+
if parent_class_name
|
|
111
|
+
"class #{class_name} < #{parent_class_name}"
|
|
103
112
|
else
|
|
104
113
|
"class #{class_name}"
|
|
105
114
|
end
|
data/lib/hanami/cli/server.rb
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
begin
|
|
4
|
+
require "rackup"
|
|
5
|
+
rescue LoadError
|
|
6
|
+
# Rack 2 doesn't have rackup gem, use Rack::Server instead
|
|
7
|
+
end
|
|
8
|
+
|
|
3
9
|
module Hanami
|
|
4
10
|
module CLI
|
|
5
11
|
# @since 2.0.0
|
|
@@ -24,9 +30,17 @@ module Hanami
|
|
|
24
30
|
warn: :warn
|
|
25
31
|
}.freeze
|
|
26
32
|
|
|
33
|
+
def self.rack_server_class
|
|
34
|
+
if defined?(Rackup::Server)
|
|
35
|
+
Rackup::Server
|
|
36
|
+
else
|
|
37
|
+
Rack::Server
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
27
41
|
# @since 2.0.0
|
|
28
42
|
# @api private
|
|
29
|
-
def initialize(rack_server:
|
|
43
|
+
def initialize(rack_server: self.class.rack_server_class)
|
|
30
44
|
@rack_server = rack_server
|
|
31
45
|
end
|
|
32
46
|
|
data/lib/hanami/cli/version.rb
CHANGED
|
@@ -50,6 +50,11 @@ module Hanami
|
|
|
50
50
|
define_method(:respond_to_missing?) do |name, include_private|
|
|
51
51
|
super(name, include_private) || hanami_app.respond_to?(name, include_private)
|
|
52
52
|
end
|
|
53
|
+
|
|
54
|
+
# User-provided extension modules
|
|
55
|
+
app.config.console.extensions.each do |mod|
|
|
56
|
+
include mod
|
|
57
|
+
end
|
|
53
58
|
end
|
|
54
59
|
end
|
|
55
60
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: hanami-cli
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.3.0.beta2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Luca Guidi
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: exe
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: bundler
|
|
@@ -90,6 +89,20 @@ dependencies:
|
|
|
90
89
|
- - "<"
|
|
91
90
|
- !ruby/object:Gem::Version
|
|
92
91
|
version: '2'
|
|
92
|
+
- !ruby/object:Gem::Dependency
|
|
93
|
+
name: irb
|
|
94
|
+
requirement: !ruby/object:Gem::Requirement
|
|
95
|
+
requirements:
|
|
96
|
+
- - ">="
|
|
97
|
+
- !ruby/object:Gem::Version
|
|
98
|
+
version: '0'
|
|
99
|
+
type: :runtime
|
|
100
|
+
prerelease: false
|
|
101
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
102
|
+
requirements:
|
|
103
|
+
- - ">="
|
|
104
|
+
- !ruby/object:Gem::Version
|
|
105
|
+
version: '0'
|
|
93
106
|
- !ruby/object:Gem::Dependency
|
|
94
107
|
name: rake
|
|
95
108
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -118,6 +131,20 @@ dependencies:
|
|
|
118
131
|
- - "~>"
|
|
119
132
|
- !ruby/object:Gem::Version
|
|
120
133
|
version: '2.6'
|
|
134
|
+
- !ruby/object:Gem::Dependency
|
|
135
|
+
name: rackup
|
|
136
|
+
requirement: !ruby/object:Gem::Requirement
|
|
137
|
+
requirements:
|
|
138
|
+
- - ">="
|
|
139
|
+
- !ruby/object:Gem::Version
|
|
140
|
+
version: '0'
|
|
141
|
+
type: :runtime
|
|
142
|
+
prerelease: false
|
|
143
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
144
|
+
requirements:
|
|
145
|
+
- - ">="
|
|
146
|
+
- !ruby/object:Gem::Version
|
|
147
|
+
version: '0'
|
|
121
148
|
- !ruby/object:Gem::Dependency
|
|
122
149
|
name: rspec
|
|
123
150
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -203,6 +230,7 @@ files:
|
|
|
203
230
|
- lib/hanami/cli/commands/app/db/drop.rb
|
|
204
231
|
- lib/hanami/cli/commands/app/db/migrate.rb
|
|
205
232
|
- lib/hanami/cli/commands/app/db/prepare.rb
|
|
233
|
+
- lib/hanami/cli/commands/app/db/rollback.rb
|
|
206
234
|
- lib/hanami/cli/commands/app/db/seed.rb
|
|
207
235
|
- lib/hanami/cli/commands/app/db/structure/dump.rb
|
|
208
236
|
- lib/hanami/cli/commands/app/db/structure/load.rb
|
|
@@ -227,6 +255,7 @@ files:
|
|
|
227
255
|
- lib/hanami/cli/commands/app/install.rb
|
|
228
256
|
- lib/hanami/cli/commands/app/middleware.rb
|
|
229
257
|
- lib/hanami/cli/commands/app/routes.rb
|
|
258
|
+
- lib/hanami/cli/commands/app/run.rb
|
|
230
259
|
- lib/hanami/cli/commands/app/server.rb
|
|
231
260
|
- lib/hanami/cli/commands/app/version.rb
|
|
232
261
|
- lib/hanami/cli/commands/gem.rb
|
|
@@ -235,51 +264,19 @@ files:
|
|
|
235
264
|
- lib/hanami/cli/errors.rb
|
|
236
265
|
- lib/hanami/cli/files.rb
|
|
237
266
|
- lib/hanami/cli/generators/app/action.rb
|
|
238
|
-
- lib/hanami/cli/generators/app/action/action.erb
|
|
239
|
-
- lib/hanami/cli/generators/app/action/slice_action.erb
|
|
240
|
-
- lib/hanami/cli/generators/app/action/slice_template.html.erb
|
|
241
|
-
- lib/hanami/cli/generators/app/action/slice_view.erb
|
|
242
|
-
- lib/hanami/cli/generators/app/action/template.erb
|
|
243
|
-
- lib/hanami/cli/generators/app/action/template.html.erb
|
|
244
|
-
- lib/hanami/cli/generators/app/action/view.erb
|
|
245
|
-
- lib/hanami/cli/generators/app/action_context.rb
|
|
246
267
|
- lib/hanami/cli/generators/app/component.rb
|
|
247
|
-
- lib/hanami/cli/generators/app/component/component.erb
|
|
248
|
-
- lib/hanami/cli/generators/app/component/slice_component.erb
|
|
249
|
-
- lib/hanami/cli/generators/app/component_context.rb
|
|
250
268
|
- lib/hanami/cli/generators/app/migration.rb
|
|
251
269
|
- lib/hanami/cli/generators/app/operation.rb
|
|
252
270
|
- lib/hanami/cli/generators/app/part.rb
|
|
253
|
-
- lib/hanami/cli/generators/app/part/app_base_part.erb
|
|
254
|
-
- lib/hanami/cli/generators/app/part/app_part.erb
|
|
255
|
-
- lib/hanami/cli/generators/app/part/slice_base_part.erb
|
|
256
|
-
- lib/hanami/cli/generators/app/part/slice_part.erb
|
|
257
|
-
- lib/hanami/cli/generators/app/part_context.rb
|
|
258
271
|
- lib/hanami/cli/generators/app/relation.rb
|
|
259
272
|
- lib/hanami/cli/generators/app/repo.rb
|
|
260
|
-
- lib/hanami/cli/generators/app/
|
|
273
|
+
- lib/hanami/cli/generators/app/ruby_class_file.rb
|
|
274
|
+
- lib/hanami/cli/generators/app/ruby_file.rb
|
|
275
|
+
- lib/hanami/cli/generators/app/ruby_module_file.rb
|
|
261
276
|
- lib/hanami/cli/generators/app/slice.rb
|
|
262
|
-
- lib/hanami/cli/generators/app/slice/action.erb
|
|
263
|
-
- lib/hanami/cli/generators/app/slice/app_css.erb
|
|
264
|
-
- lib/hanami/cli/generators/app/slice/app_js.erb
|
|
265
|
-
- lib/hanami/cli/generators/app/slice/app_layout.erb
|
|
266
277
|
- lib/hanami/cli/generators/app/slice/favicon.ico
|
|
267
|
-
- lib/hanami/cli/generators/app/slice/helpers.erb
|
|
268
|
-
- lib/hanami/cli/generators/app/slice/keep.erb
|
|
269
|
-
- lib/hanami/cli/generators/app/slice/operation.erb
|
|
270
|
-
- lib/hanami/cli/generators/app/slice/relation.erb
|
|
271
|
-
- lib/hanami/cli/generators/app/slice/repo.erb
|
|
272
|
-
- lib/hanami/cli/generators/app/slice/routes.erb
|
|
273
|
-
- lib/hanami/cli/generators/app/slice/struct.erb
|
|
274
|
-
- lib/hanami/cli/generators/app/slice/view.erb
|
|
275
|
-
- lib/hanami/cli/generators/app/slice_context.rb
|
|
276
278
|
- lib/hanami/cli/generators/app/struct.rb
|
|
277
279
|
- lib/hanami/cli/generators/app/view.rb
|
|
278
|
-
- lib/hanami/cli/generators/app/view/app_template.html.erb
|
|
279
|
-
- lib/hanami/cli/generators/app/view/app_view.erb
|
|
280
|
-
- lib/hanami/cli/generators/app/view/slice_template.html.erb
|
|
281
|
-
- lib/hanami/cli/generators/app/view/slice_view.erb
|
|
282
|
-
- lib/hanami/cli/generators/app/view_context.rb
|
|
283
280
|
- lib/hanami/cli/generators/constants.rb
|
|
284
281
|
- lib/hanami/cli/generators/context.rb
|
|
285
282
|
- lib/hanami/cli/generators/gem/app.rb
|
|
@@ -339,7 +336,6 @@ metadata:
|
|
|
339
336
|
source_code_uri: https://github.com/hanami/cli
|
|
340
337
|
changelog_uri: https://github.com/hanami/cli/blob/master/CHANGELOG.md
|
|
341
338
|
rubygems_mfa_required: 'true'
|
|
342
|
-
post_install_message:
|
|
343
339
|
rdoc_options: []
|
|
344
340
|
require_paths:
|
|
345
341
|
- lib
|
|
@@ -347,15 +343,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
347
343
|
requirements:
|
|
348
344
|
- - ">="
|
|
349
345
|
- !ruby/object:Gem::Version
|
|
350
|
-
version: '3.
|
|
346
|
+
version: '3.2'
|
|
351
347
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
352
348
|
requirements:
|
|
353
349
|
- - ">="
|
|
354
350
|
- !ruby/object:Gem::Version
|
|
355
351
|
version: '0'
|
|
356
352
|
requirements: []
|
|
357
|
-
rubygems_version: 3.
|
|
358
|
-
signing_key:
|
|
353
|
+
rubygems_version: 3.6.9
|
|
359
354
|
specification_version: 4
|
|
360
355
|
summary: Hanami CLI
|
|
361
356
|
test_files: []
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module <%= camelized_app_name %>
|
|
4
|
-
module Actions
|
|
5
|
-
<%= module_controller_declaration %>
|
|
6
|
-
<%= module_controller_offset %>class <%= camelized_action_name %> < <%= camelized_app_name %>::Action
|
|
7
|
-
<%- if bundled_views? -%>
|
|
8
|
-
<%= module_controller_offset %> def handle(request, response)
|
|
9
|
-
<%- else -%>
|
|
10
|
-
<%= module_controller_offset %> def handle(request, response)
|
|
11
|
-
<%= module_controller_offset %> response.body = self.class.name
|
|
12
|
-
<%- end -%>
|
|
13
|
-
<%= module_controller_offset %> end
|
|
14
|
-
<%= module_controller_offset %>end
|
|
15
|
-
<%= module_controller_end %>
|
|
16
|
-
end
|
|
17
|
-
end
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module <%= camelized_slice_name %>
|
|
4
|
-
module Actions
|
|
5
|
-
<%= module_controller_declaration %>
|
|
6
|
-
<%= module_controller_offset %>class <%= camelized_action_name %> < <%= camelized_slice_name %>::Action
|
|
7
|
-
<%- if bundled_views? -%>
|
|
8
|
-
<%= module_controller_offset %> def handle(request, response)
|
|
9
|
-
<%- else -%>
|
|
10
|
-
<%= module_controller_offset %> def handle(request, response)
|
|
11
|
-
<%= module_controller_offset %> response.body = self.class.name
|
|
12
|
-
<%- end -%>
|
|
13
|
-
<%= module_controller_offset %> end
|
|
14
|
-
<%= module_controller_offset %>end
|
|
15
|
-
<%= module_controller_end %>
|
|
16
|
-
end
|
|
17
|
-
end
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<h1><%= camelized_slice_name %>::Views::<%= camelized_controller_name %>::<%= camelized_action_name %></h1>
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module <%= camelized_slice_name %>
|
|
4
|
-
module Views
|
|
5
|
-
<%= module_controller_declaration %>
|
|
6
|
-
<%= module_controller_offset %>class <%= camelized_action_name %> < <%= camelized_slice_name %>::View
|
|
7
|
-
<%= module_controller_offset %>end
|
|
8
|
-
<%= module_controller_end %>
|
|
9
|
-
end
|
|
10
|
-
end
|
|
File without changes
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<h1><%= camelized_app_name %>::Views::<%= camelized_controller_name %>::<%= camelized_action_name %></h1>
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module <%= camelized_app_name %>
|
|
4
|
-
module Views
|
|
5
|
-
<%= module_controller_declaration %>
|
|
6
|
-
<%= module_controller_offset %>class <%= camelized_action_name %> < <%= camelized_app_name %>::View
|
|
7
|
-
<%= module_controller_offset %>end
|
|
8
|
-
<%= module_controller_end %>
|
|
9
|
-
end
|
|
10
|
-
end
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "dry/files/path"
|
|
4
|
-
require_relative "slice_context"
|
|
5
|
-
require_relative "../constants"
|
|
6
|
-
|
|
7
|
-
module Hanami
|
|
8
|
-
module CLI
|
|
9
|
-
module Generators
|
|
10
|
-
# @since 2.0.0
|
|
11
|
-
# @api private
|
|
12
|
-
module App
|
|
13
|
-
# @since 2.0.0
|
|
14
|
-
# @api private
|
|
15
|
-
class ActionContext < SliceContext
|
|
16
|
-
# @since 2.0.0
|
|
17
|
-
# @api private
|
|
18
|
-
def initialize(inflector, app, slice, controller, action)
|
|
19
|
-
@controller = controller
|
|
20
|
-
@action = action
|
|
21
|
-
super(inflector, app, slice, nil)
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
# @since 2.0.0
|
|
25
|
-
# @api private
|
|
26
|
-
def camelized_controller_name
|
|
27
|
-
controller.map do |token|
|
|
28
|
-
inflector.camelize(token)
|
|
29
|
-
end.join(NAMESPACE_SEPARATOR)
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
# @since 2.0.0
|
|
33
|
-
# @api private
|
|
34
|
-
def camelized_action_name
|
|
35
|
-
inflector.camelize(action)
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
# @since 2.0.0
|
|
39
|
-
# @api private
|
|
40
|
-
def underscored_controller_name
|
|
41
|
-
controller.map do |token|
|
|
42
|
-
inflector.underscore(token)
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
# @since 2.0.0
|
|
47
|
-
# @api private
|
|
48
|
-
def underscored_action_name
|
|
49
|
-
inflector.underscore(action)
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
# @since 2.0.0
|
|
53
|
-
# @api private
|
|
54
|
-
def module_controller_declaration
|
|
55
|
-
controller.each_with_index.map do |token, i|
|
|
56
|
-
"#{NESTED_OFFSET}#{INDENTATION * i}module #{inflector.camelize(token)}"
|
|
57
|
-
end.join($/)
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
# @since 2.0.0
|
|
61
|
-
# @api private
|
|
62
|
-
def module_controller_end
|
|
63
|
-
controller.each_with_index.map do |_, i|
|
|
64
|
-
"#{NESTED_OFFSET}#{INDENTATION * i}end"
|
|
65
|
-
end.reverse.join($/)
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
# @since 2.0.0
|
|
69
|
-
# @api private
|
|
70
|
-
def module_controller_offset
|
|
71
|
-
"#{NESTED_OFFSET}#{INDENTATION * controller.count}"
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
# @since 2.0.0
|
|
75
|
-
# @api private
|
|
76
|
-
def template_path
|
|
77
|
-
Dry::Files::Path["slices", underscored_slice_name, "templates", *underscored_controller_name,
|
|
78
|
-
"#{underscored_action_name}.html.erb"]
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
private
|
|
82
|
-
|
|
83
|
-
attr_reader :controller
|
|
84
|
-
|
|
85
|
-
attr_reader :action
|
|
86
|
-
end
|
|
87
|
-
end
|
|
88
|
-
end
|
|
89
|
-
end
|
|
90
|
-
end
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative "../constants"
|
|
4
|
-
|
|
5
|
-
module Hanami
|
|
6
|
-
module CLI
|
|
7
|
-
module Generators
|
|
8
|
-
module App
|
|
9
|
-
class ComponentContext < SliceContext
|
|
10
|
-
# @api private
|
|
11
|
-
# @since 2.2.0
|
|
12
|
-
attr_reader :key
|
|
13
|
-
|
|
14
|
-
# @api private
|
|
15
|
-
# @since 2.2.0
|
|
16
|
-
def initialize(inflector, app, slice, key)
|
|
17
|
-
@key = key
|
|
18
|
-
super(inflector, app, slice, nil)
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
# @api private
|
|
22
|
-
# @since 2.2.0
|
|
23
|
-
def namespaces
|
|
24
|
-
@namespaces ||= key.split(MATCHER_PATTERN)[..-2].map { inflector.underscore(_1) }
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
# @api private
|
|
28
|
-
# @since 2.2.0
|
|
29
|
-
def name
|
|
30
|
-
@name ||= key.split(MATCHER_PATTERN)[-1]
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
# @api private
|
|
34
|
-
# @since 2.2.0
|
|
35
|
-
def camelized_namespace
|
|
36
|
-
namespaces.map { inflector.camelize(_1) }.join(NAMESPACE_SEPARATOR)
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
# @api private
|
|
40
|
-
# @since 2.2.0
|
|
41
|
-
def camelized_name
|
|
42
|
-
inflector.camelize(name)
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
# @api private
|
|
46
|
-
# @since 2.2.0
|
|
47
|
-
def underscored_namespace
|
|
48
|
-
namespaces.map { inflector.underscore(_1) }
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
# @api private
|
|
52
|
-
# @since 2.2.0
|
|
53
|
-
def underscored_name
|
|
54
|
-
inflector.underscore(name)
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
# @api private
|
|
58
|
-
# @since 2.2.0
|
|
59
|
-
def module_namespace_declaration
|
|
60
|
-
namespaces.each_with_index.map { |token, i|
|
|
61
|
-
"#{OFFSET}#{INDENTATION * i}module #{inflector.camelize(token)}"
|
|
62
|
-
}.join($/)
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
# @api private
|
|
66
|
-
# @since 2.2.0
|
|
67
|
-
def module_namespace_end
|
|
68
|
-
namespaces.each_with_index.map { |_, i|
|
|
69
|
-
"#{OFFSET}#{INDENTATION * i}end"
|
|
70
|
-
}.reverse.join($/)
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
# @api private
|
|
74
|
-
# @since 2.2.0
|
|
75
|
-
def module_namespace_offset
|
|
76
|
-
"#{OFFSET}#{INDENTATION * namespaces.count}"
|
|
77
|
-
end
|
|
78
|
-
end
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
end
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# auto_register: false
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
|
|
4
|
-
module <%= camelized_app_name %>
|
|
5
|
-
module Views
|
|
6
|
-
module Parts
|
|
7
|
-
<%= module_namespace_declaration -%>
|
|
8
|
-
<%= module_namespace_offset %>class <%= camelized_name %> < <%= camelized_app_name %>::Views::Part
|
|
9
|
-
<%= module_namespace_offset %>end
|
|
10
|
-
<%= module_namespace_end -%>
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
end
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# auto_register: false
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
|
|
4
|
-
module <%= camelized_slice_name %>
|
|
5
|
-
module Views
|
|
6
|
-
module Parts
|
|
7
|
-
<%= module_namespace_declaration -%>
|
|
8
|
-
<%= module_namespace_offset %>class <%= camelized_name %> < <%= camelized_slice_name %>::Views::Part
|
|
9
|
-
<%= module_namespace_offset %>end
|
|
10
|
-
<%= module_namespace_end -%>
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
end
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "dry/files/path"
|
|
4
|
-
require_relative "slice_context"
|
|
5
|
-
require_relative "../constants"
|
|
6
|
-
|
|
7
|
-
module Hanami
|
|
8
|
-
module CLI
|
|
9
|
-
module Generators
|
|
10
|
-
# @since 2.1.0
|
|
11
|
-
# @api private
|
|
12
|
-
module App
|
|
13
|
-
# @since 2.1.0
|
|
14
|
-
# @api private
|
|
15
|
-
class PartContext < SliceContext
|
|
16
|
-
# @since 2.1.0
|
|
17
|
-
# @api private
|
|
18
|
-
attr_reader :key
|
|
19
|
-
|
|
20
|
-
# @since 2.1.0
|
|
21
|
-
# @api private
|
|
22
|
-
def initialize(inflector, app, slice, key)
|
|
23
|
-
@key = key
|
|
24
|
-
super(inflector, app, slice, nil)
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
# @since 2.1.0
|
|
28
|
-
# @api private
|
|
29
|
-
def namespaces
|
|
30
|
-
@namespaces ||= key.split(KEY_SEPARATOR)[..-2]
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
# @since 2.1.0
|
|
34
|
-
# @api private
|
|
35
|
-
def name
|
|
36
|
-
@name ||= key.split(KEY_SEPARATOR)[-1]
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
# @since 2.1.0
|
|
40
|
-
# @api private
|
|
41
|
-
def camelized_name
|
|
42
|
-
inflector.camelize(name)
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
# @since 2.1.0
|
|
46
|
-
# @api private
|
|
47
|
-
def underscored_namespace
|
|
48
|
-
namespaces.map { inflector.underscore(_1) }
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
# @since 2.1.0
|
|
52
|
-
# @api private
|
|
53
|
-
def underscored_name
|
|
54
|
-
inflector.underscore(name)
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
# @since 2.1.0
|
|
58
|
-
# @api private
|
|
59
|
-
def module_namespace_declaration
|
|
60
|
-
namespaces.each_with_index.map { |token, i|
|
|
61
|
-
"#{NESTED_OFFSET}#{INDENTATION * i}module #{inflector.camelize(token)}"
|
|
62
|
-
}.join($/)
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
# @since 2.1.0
|
|
66
|
-
# @api private
|
|
67
|
-
def module_namespace_end
|
|
68
|
-
namespaces.each_with_index.map { |_, i|
|
|
69
|
-
"#{NESTED_OFFSET}#{INDENTATION * i}end"
|
|
70
|
-
}.reverse.join($/)
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
# @since 2.1.0
|
|
74
|
-
# @api private
|
|
75
|
-
def module_namespace_offset
|
|
76
|
-
"#{NESTED_OFFSET}#{INDENTATION * namespaces.count}"
|
|
77
|
-
end
|
|
78
|
-
end
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
end
|