hanami-cli 2.3.0.beta1 → 2.3.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 +4 -4
- data/.github/workflows/ci.yml +2 -3
- data/.rubocop.yml +2 -0
- data/.rubocop_todo.yml +150 -0
- data/CHANGELOG.md +44 -0
- data/README.md +1 -4
- data/hanami-cli.gemspec +3 -3
- data/lib/hanami/cli/commands/app/command.rb +5 -1
- data/lib/hanami/cli/commands/app/console.rb +10 -1
- data/lib/hanami/cli/commands/app/db/migrate.rb +5 -2
- data/lib/hanami/cli/commands/app/db/rollback.rb +26 -14
- data/lib/hanami/cli/commands/app/db/structure/dump.rb +7 -3
- data/lib/hanami/cli/commands/app/db/utils/database.rb +22 -0
- data/lib/hanami/cli/commands/app/db/utils/mysql.rb +3 -1
- data/lib/hanami/cli/commands/app/db/utils/postgres.rb +16 -3
- data/lib/hanami/cli/commands/app/db/utils/sqlite.rb +1 -1
- data/lib/hanami/cli/commands/app/db/version.rb +2 -0
- data/lib/hanami/cli/commands/app/generate/action.rb +9 -12
- data/lib/hanami/cli/commands/app/generate/slice.rb +8 -8
- data/lib/hanami/cli/commands/app/run.rb +108 -0
- data/lib/hanami/cli/commands/app.rb +1 -0
- data/lib/hanami/cli/commands/gem/new.rb +33 -11
- data/lib/hanami/cli/errors.rb +2 -0
- data/lib/hanami/cli/generators/app/action.rb +11 -5
- data/lib/hanami/cli/generators/app/component.rb +1 -1
- data/lib/hanami/cli/generators/app/relation.rb +1 -1
- data/lib/hanami/cli/generators/app/ruby_file.rb +7 -12
- data/lib/hanami/cli/generators/app/slice.rb +19 -8
- data/lib/hanami/cli/generators/app/view.rb +1 -1
- data/lib/hanami/cli/generators/constants.rb +1 -1
- data/lib/hanami/cli/generators/context.rb +12 -1
- data/lib/hanami/cli/generators/gem/app/context.erb +10 -0
- data/lib/hanami/cli/generators/gem/app/gemfile.erb +3 -2
- data/lib/hanami/cli/generators/gem/app/readme.erb +6 -6
- data/lib/hanami/cli/generators/gem/app/setup.erb +27 -0
- data/lib/hanami/cli/generators/gem/app/types.erb +1 -1
- data/lib/hanami/cli/generators/gem/app.rb +4 -0
- data/lib/hanami/cli/generators/version.rb +5 -7
- data/lib/hanami/cli/interactive_system_call.rb +1 -2
- data/lib/hanami/cli/system_call.rb +1 -1
- data/lib/hanami/cli/version.rb +1 -1
- data/lib/hanami/console/context.rb +3 -0
- data/lib/hanami/console/plugins/unbooted_slice_warnings.rb +40 -0
- data/script/ci +31 -0
- metadata +10 -4
|
@@ -38,27 +38,25 @@ module Hanami
|
|
|
38
38
|
"^#{result}"
|
|
39
39
|
end
|
|
40
40
|
|
|
41
|
-
# @since 2.0.0
|
|
42
41
|
# @api private
|
|
43
42
|
def self.prerelease?
|
|
44
43
|
version.match?(/alpha|beta|rc/)
|
|
45
44
|
end
|
|
46
45
|
|
|
47
46
|
# @example
|
|
48
|
-
# Hanami::VERSION # => 2.
|
|
49
|
-
# Hanami::CLI::Generators::Version.stable_version # => "2.0"
|
|
47
|
+
# Hanami::VERSION # => 2.3.1
|
|
48
|
+
# Hanami::CLI::Generators::Version.stable_version # => "2.3.0"
|
|
50
49
|
#
|
|
51
|
-
# @since 2.0.0
|
|
52
50
|
# @api private
|
|
53
51
|
def self.stable_version
|
|
54
|
-
version.scan(/\A\d{1,2}\.\d{1,2}/).first
|
|
52
|
+
major_minor = version.scan(/\A\d{1,2}\.\d{1,2}/).first
|
|
53
|
+
"#{major_minor}.0"
|
|
55
54
|
end
|
|
56
55
|
|
|
57
56
|
# @example
|
|
58
57
|
# Hanami::VERSION # => 2.0.0.alpha8.1
|
|
59
|
-
# Hanami::CLI::Generators::Version.
|
|
58
|
+
# Hanami::CLI::Generators::Version.prerelease_version # => "2.0.0.alpha"
|
|
60
59
|
#
|
|
61
|
-
# @since 2.0.0
|
|
62
60
|
# @api private
|
|
63
61
|
def self.prerelease_version
|
|
64
62
|
version.sub(/[[[:digit:]].]*\Z/, "")
|
|
@@ -13,13 +13,12 @@ module Hanami
|
|
|
13
13
|
@out = out
|
|
14
14
|
@err = err
|
|
15
15
|
@exit_after = exit_after
|
|
16
|
-
super()
|
|
17
16
|
end
|
|
18
17
|
|
|
19
18
|
# @api private
|
|
20
19
|
# @since 2.1.0
|
|
21
20
|
def call(cmd, *args, env: {}, out_prefix: "")
|
|
22
|
-
::Bundler.
|
|
21
|
+
::Bundler.with_original_env do
|
|
23
22
|
threads = []
|
|
24
23
|
exit_status = 0
|
|
25
24
|
|
data/lib/hanami/cli/version.rb
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require_relative "plugins/slice_readers"
|
|
4
|
+
require_relative "plugins/unbooted_slice_warnings"
|
|
4
5
|
|
|
5
6
|
module Hanami
|
|
6
7
|
# @since 2.0.0
|
|
@@ -21,6 +22,8 @@ module Hanami
|
|
|
21
22
|
|
|
22
23
|
define_context_methods
|
|
23
24
|
include Plugins::SliceReaders.new(app)
|
|
25
|
+
|
|
26
|
+
Plugins::UnbootedSliceWarnings.activate
|
|
24
27
|
end
|
|
25
28
|
|
|
26
29
|
private
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Hanami
|
|
4
|
+
module Console
|
|
5
|
+
module Plugins
|
|
6
|
+
# Console plugin that prints a one-time warning when an unbooted slice is asked for its
|
|
7
|
+
# `.keys`.
|
|
8
|
+
#
|
|
9
|
+
# @api private
|
|
10
|
+
module UnbootedSliceWarnings
|
|
11
|
+
module SliceExtension
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def self.activate
|
|
15
|
+
warning_shown_for_slice = {}
|
|
16
|
+
|
|
17
|
+
# Define the wrapper method with access to the context via closure
|
|
18
|
+
SliceExtension.define_method(:keys) do
|
|
19
|
+
if !booted? && !warning_shown_for_slice[self]
|
|
20
|
+
message = <<~TEXT
|
|
21
|
+
Warning: #{self} is not booted. Run `#{self}.boot` to load all components, or launch the console with `--boot`.
|
|
22
|
+
TEXT
|
|
23
|
+
warn message
|
|
24
|
+
|
|
25
|
+
warning_shown_for_slice[self] = true
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
super()
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
Hanami::Slice::ClassMethods.prepend(SliceExtension)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def self.deactivate
|
|
35
|
+
SliceExtension.remove_method :keys
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
data/script/ci
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
IFS=$'\n\t'
|
|
4
|
+
|
|
5
|
+
prepare_build() {
|
|
6
|
+
if [ -d coverage ]; then
|
|
7
|
+
rm -rf coverage
|
|
8
|
+
fi
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
print_ruby_version() {
|
|
12
|
+
echo "Using $(ruby -v)"
|
|
13
|
+
echo
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
run_code_quality_checks() {
|
|
17
|
+
bundle exec rubocop .
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
run_unit_tests() {
|
|
21
|
+
bundle exec rake spec
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
main() {
|
|
25
|
+
prepare_build
|
|
26
|
+
print_ruby_version
|
|
27
|
+
run_code_quality_checks
|
|
28
|
+
run_unit_tests
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
main
|
metadata
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: hanami-cli
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.3.0
|
|
4
|
+
version: 2.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
-
-
|
|
7
|
+
- Hanakai team
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
10
|
date: 1980-01-02 00:00:00.000000000 Z
|
|
@@ -189,7 +189,7 @@ dependencies:
|
|
|
189
189
|
version: '0'
|
|
190
190
|
description: Hanami command line
|
|
191
191
|
email:
|
|
192
|
-
-
|
|
192
|
+
- info@hanakai.org
|
|
193
193
|
executables:
|
|
194
194
|
- hanami
|
|
195
195
|
extensions: []
|
|
@@ -201,6 +201,7 @@ files:
|
|
|
201
201
|
- ".repobot.yml"
|
|
202
202
|
- ".rspec"
|
|
203
203
|
- ".rubocop.yml"
|
|
204
|
+
- ".rubocop_todo.yml"
|
|
204
205
|
- ".yardopts"
|
|
205
206
|
- CHANGELOG.md
|
|
206
207
|
- CODE_OF_CONDUCT.md
|
|
@@ -255,6 +256,7 @@ files:
|
|
|
255
256
|
- lib/hanami/cli/commands/app/install.rb
|
|
256
257
|
- lib/hanami/cli/commands/app/middleware.rb
|
|
257
258
|
- lib/hanami/cli/commands/app/routes.rb
|
|
259
|
+
- lib/hanami/cli/commands/app/run.rb
|
|
258
260
|
- lib/hanami/cli/commands/app/server.rb
|
|
259
261
|
- lib/hanami/cli/commands/app/version.rb
|
|
260
262
|
- lib/hanami/cli/commands/gem.rb
|
|
@@ -288,6 +290,7 @@ files:
|
|
|
288
290
|
- lib/hanami/cli/generators/gem/app/app_layout.erb
|
|
289
291
|
- lib/hanami/cli/generators/gem/app/assets.js
|
|
290
292
|
- lib/hanami/cli/generators/gem/app/config_ru.erb
|
|
293
|
+
- lib/hanami/cli/generators/gem/app/context.erb
|
|
291
294
|
- lib/hanami/cli/generators/gem/app/dev
|
|
292
295
|
- lib/hanami/cli/generators/gem/app/env.erb
|
|
293
296
|
- lib/hanami/cli/generators/gem/app/favicon.ico
|
|
@@ -306,6 +309,7 @@ files:
|
|
|
306
309
|
- lib/hanami/cli/generators/gem/app/routes.erb
|
|
307
310
|
- lib/hanami/cli/generators/gem/app/seeds.erb
|
|
308
311
|
- lib/hanami/cli/generators/gem/app/settings.erb
|
|
312
|
+
- lib/hanami/cli/generators/gem/app/setup.erb
|
|
309
313
|
- lib/hanami/cli/generators/gem/app/struct.erb
|
|
310
314
|
- lib/hanami/cli/generators/gem/app/types.erb
|
|
311
315
|
- lib/hanami/cli/generators/gem/app/validator.erb
|
|
@@ -325,7 +329,9 @@ files:
|
|
|
325
329
|
- lib/hanami/cli/version.rb
|
|
326
330
|
- lib/hanami/console/context.rb
|
|
327
331
|
- lib/hanami/console/plugins/slice_readers.rb
|
|
332
|
+
- lib/hanami/console/plugins/unbooted_slice_warnings.rb
|
|
328
333
|
- project.yml
|
|
334
|
+
- script/ci
|
|
329
335
|
homepage: https://hanamirb.org
|
|
330
336
|
licenses:
|
|
331
337
|
- MIT
|
|
@@ -342,7 +348,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
342
348
|
requirements:
|
|
343
349
|
- - ">="
|
|
344
350
|
- !ruby/object:Gem::Version
|
|
345
|
-
version: '3.
|
|
351
|
+
version: '3.2'
|
|
346
352
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
347
353
|
requirements:
|
|
348
354
|
- - ">="
|