hanami-cli 2.1.0 → 2.2.0.beta1

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.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +18 -13
  3. data/CHANGELOG.md +21 -0
  4. data/Gemfile +4 -2
  5. data/README.md +11 -7
  6. data/docker-compose.yml +9 -0
  7. data/hanami-cli.gemspec +2 -2
  8. data/lib/hanami/cli/command.rb +1 -1
  9. data/lib/hanami/cli/commands/app/assets/command.rb +1 -1
  10. data/lib/hanami/cli/commands/app/command.rb +2 -16
  11. data/lib/hanami/cli/commands/app/db/command.rb +116 -0
  12. data/lib/hanami/cli/commands/app/db/create.rb +19 -11
  13. data/lib/hanami/cli/commands/app/db/drop.rb +19 -10
  14. data/lib/hanami/cli/commands/app/db/migrate.rb +19 -13
  15. data/lib/hanami/cli/commands/app/db/prepare.rb +42 -0
  16. data/lib/hanami/cli/commands/app/db/seed.rb +11 -22
  17. data/lib/hanami/cli/commands/app/db/structure/dump.rb +30 -7
  18. data/lib/hanami/cli/commands/app/db/structure/load.rb +52 -0
  19. data/lib/hanami/cli/commands/app/db/utils/database.rb +68 -73
  20. data/lib/hanami/cli/commands/app/db/utils/mysql.rb +2 -2
  21. data/lib/hanami/cli/commands/app/db/utils/postgres.rb +38 -19
  22. data/lib/hanami/cli/commands/app/db/utils/sqlite.rb +58 -10
  23. data/lib/hanami/cli/commands/app/db/version.rb +12 -9
  24. data/lib/hanami/cli/commands/app/generate/action.rb +4 -3
  25. data/lib/hanami/cli/commands/app/generate/command.rb +49 -0
  26. data/lib/hanami/cli/commands/app/generate/component.rb +49 -0
  27. data/lib/hanami/cli/commands/app/generate/migration.rb +27 -0
  28. data/lib/hanami/cli/commands/app/generate/operation.rb +26 -0
  29. data/lib/hanami/cli/commands/app/generate/part.rb +1 -1
  30. data/lib/hanami/cli/commands/app/generate/relation.rb +35 -0
  31. data/lib/hanami/cli/commands/app/generate/repo.rb +46 -0
  32. data/lib/hanami/cli/commands/app/generate/slice.rb +20 -3
  33. data/lib/hanami/cli/commands/app/generate/struct.rb +27 -0
  34. data/lib/hanami/cli/commands/app/install.rb +1 -1
  35. data/lib/hanami/cli/commands/app/middleware.rb +1 -1
  36. data/lib/hanami/cli/commands/app/server.rb +2 -2
  37. data/lib/hanami/cli/commands/app.rb +21 -2
  38. data/lib/hanami/cli/commands/gem/new.rb +78 -14
  39. data/lib/hanami/cli/errors.rb +28 -0
  40. data/lib/hanami/cli/generators/app/action/slice_action.erb +1 -1
  41. data/lib/hanami/cli/generators/app/action_context.rb +5 -13
  42. data/lib/hanami/cli/generators/app/component/component.erb +8 -0
  43. data/lib/hanami/cli/generators/app/component/slice_component.erb +8 -0
  44. data/lib/hanami/cli/generators/app/component.rb +61 -0
  45. data/lib/hanami/cli/generators/app/component_context.rb +82 -0
  46. data/lib/hanami/cli/generators/app/migration.rb +69 -0
  47. data/lib/hanami/cli/generators/app/operation.rb +48 -0
  48. data/lib/hanami/cli/generators/app/part_context.rb +5 -21
  49. data/lib/hanami/cli/generators/app/relation.rb +44 -0
  50. data/lib/hanami/cli/generators/app/repo.rb +40 -0
  51. data/lib/hanami/cli/generators/app/ruby_file_writer.rb +149 -0
  52. data/lib/hanami/cli/generators/app/slice/operation.erb +7 -0
  53. data/lib/hanami/cli/generators/app/slice/relation.erb +8 -0
  54. data/lib/hanami/cli/generators/app/slice/{slice.erb → repo.erb} +3 -1
  55. data/lib/hanami/cli/generators/app/slice/struct.erb +8 -0
  56. data/lib/hanami/cli/generators/app/slice.rb +14 -6
  57. data/lib/hanami/cli/generators/app/slice_context.rb +9 -2
  58. data/lib/hanami/cli/generators/app/struct.rb +39 -0
  59. data/lib/hanami/cli/generators/app/view_context.rb +4 -16
  60. data/lib/hanami/cli/generators/constants.rb +39 -0
  61. data/lib/hanami/cli/generators/context.rb +48 -0
  62. data/lib/hanami/cli/generators/gem/app/action.erb +3 -0
  63. data/lib/hanami/cli/generators/gem/app/env.erb +4 -0
  64. data/lib/hanami/cli/generators/gem/app/gemfile.erb +11 -0
  65. data/lib/hanami/cli/generators/gem/app/gitignore.erb +1 -1
  66. data/lib/hanami/cli/generators/gem/app/operation.erb +13 -0
  67. data/lib/hanami/cli/generators/gem/app/relation.erb +10 -0
  68. data/lib/hanami/cli/generators/gem/app/repo.erb +10 -0
  69. data/lib/hanami/cli/generators/gem/app/struct.erb +10 -0
  70. data/lib/hanami/cli/generators/gem/app.rb +19 -0
  71. data/lib/hanami/cli/ruby_file_generator.rb +123 -0
  72. data/lib/hanami/cli/version.rb +1 -1
  73. metadata +39 -16
  74. data/lib/hanami/cli/commands/app/db/create_migration.rb +0 -32
  75. data/lib/hanami/cli/commands/app/db/reset.rb +0 -28
  76. data/lib/hanami/cli/commands/app/db/rollback.rb +0 -81
  77. data/lib/hanami/cli/commands/app/db/sample_data.rb +0 -42
  78. data/lib/hanami/cli/commands/app/db/setup.rb +0 -26
  79. data/lib/hanami/cli/commands/app/db/utils/database_config.rb +0 -60
  80. data/lib/hanami/cli/generators/app/slice/repository.erb +0 -10
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "../../app/command"
4
- require_relative "create"
5
- require_relative "migrate"
6
-
7
- module Hanami
8
- module CLI
9
- module Commands
10
- module App
11
- module DB
12
- # @api private
13
- class Setup < App::Command
14
- desc "Setup database"
15
-
16
- # @api private
17
- def call(**)
18
- run_command Create
19
- run_command Migrate
20
- end
21
- end
22
- end
23
- end
24
- end
25
- end
26
- end
@@ -1,60 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "uri"
4
-
5
- module Hanami
6
- module CLI
7
- module Commands
8
- module App
9
- module DB
10
- # @api private
11
- module Utils
12
- # @api private
13
- class DatabaseConfig
14
- # @api private
15
- attr_reader :uri
16
-
17
- # @api private
18
- def initialize(database_url)
19
- @uri = URI(database_url)
20
- end
21
-
22
- # @api private
23
- def hostname
24
- uri.hostname
25
- end
26
- alias_method :host, :hostname
27
-
28
- # @api private
29
- def user
30
- uri.user
31
- end
32
- alias_method :username, :user
33
-
34
- # @api private
35
- def password
36
- uri.password
37
- end
38
- alias_method :pass, :password
39
-
40
- # @api private
41
- def port
42
- uri.port
43
- end
44
-
45
- # @api private
46
- def db_name
47
- @db_name ||= uri.path.gsub(/\A\//, "")
48
- end
49
-
50
- # @api private
51
- def db_type
52
- uri.scheme
53
- end
54
- end
55
- end
56
- end
57
- end
58
- end
59
- end
60
- end
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "<%= underscored_app_name %>/repository"
4
- require_relative "entities"
5
-
6
- module <%= camelized_slice_name %>
7
- class Repository < <%= camelized_app_name %>::Repository
8
- struct_namespace Entities
9
- end
10
- end