hanami-cli_bulma 0.0.1
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 +7 -0
- data/.github/FUNDING.yml +1 -0
- data/.github/workflows/ci.yml +68 -0
- data/.gitignore +13 -0
- data/.repobot.yml +9 -0
- data/.rspec +2 -0
- data/.rubocop.yml +46 -0
- data/.tool-versions +1 -0
- data/.yardopts +3 -0
- data/CHANGELOG.md +374 -0
- data/CODE_OF_CONDUCT.md +84 -0
- data/Gemfile +31 -0
- data/LICENSE.md +22 -0
- data/README.md +61 -0
- data/Rakefile +12 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/docker-compose.yml +14 -0
- data/exe/hanami +15 -0
- data/hanami-cli_bulma.gemspec +47 -0
- data/lib/hanami/cli_bulma/bundler.rb +16 -0
- data/lib/hanami/cli_bulma/commands/app/command.rb +21 -0
- data/lib/hanami/cli_bulma/commands/app/generate/action.rb +25 -0
- data/lib/hanami/cli_bulma/commands/app/generate/slice.rb +27 -0
- data/lib/hanami/cli_bulma/commands/app/generate/view.rb +23 -0
- data/lib/hanami/cli_bulma/commands/app/generate.rb +16 -0
- data/lib/hanami/cli_bulma/commands/app.rb +30 -0
- data/lib/hanami/cli_bulma/commands/gem/new.rb +28 -0
- data/lib/hanami/cli_bulma/commands/gem.rb +21 -0
- data/lib/hanami/cli_bulma/commands.rb +35 -0
- data/lib/hanami/cli_bulma/generators/app/action/action.erb +17 -0
- data/lib/hanami/cli_bulma/generators/app/action/slice_action.erb +17 -0
- data/lib/hanami/cli_bulma/generators/app/action.rb +72 -0
- data/lib/hanami/cli_bulma/generators/app/slice/action.erb +7 -0
- data/lib/hanami/cli_bulma/generators/app/slice/app_css.erb +7 -0
- data/lib/hanami/cli_bulma/generators/app/slice/app_js.erb +1 -0
- data/lib/hanami/cli_bulma/generators/app/slice/app_layout.erb +46 -0
- data/lib/hanami/cli_bulma/generators/app/slice/favicon.ico +0 -0
- data/lib/hanami/cli_bulma/generators/app/slice/helpers.erb +10 -0
- data/lib/hanami/cli_bulma/generators/app/slice/keep.erb +0 -0
- data/lib/hanami/cli_bulma/generators/app/slice/operation.erb +7 -0
- data/lib/hanami/cli_bulma/generators/app/slice/relation.erb +8 -0
- data/lib/hanami/cli_bulma/generators/app/slice/repo.erb +8 -0
- data/lib/hanami/cli_bulma/generators/app/slice/routes.erb +3 -0
- data/lib/hanami/cli_bulma/generators/app/slice/struct.erb +8 -0
- data/lib/hanami/cli_bulma/generators/app/slice/view.erb +7 -0
- data/lib/hanami/cli_bulma/generators/app/slice.rb +26 -0
- data/lib/hanami/cli_bulma/generators/app/view/app_template-edit.html.erb +24 -0
- data/lib/hanami/cli_bulma/generators/app/view/app_template-index.html.erb +24 -0
- data/lib/hanami/cli_bulma/generators/app/view/app_template-new.html.erb +24 -0
- data/lib/hanami/cli_bulma/generators/app/view/app_template-show.html.erb +5 -0
- data/lib/hanami/cli_bulma/generators/app/view/app_template.html.erb +5 -0
- data/lib/hanami/cli_bulma/generators/app/view/app_view-edit.erb +10 -0
- data/lib/hanami/cli_bulma/generators/app/view/app_view-index.erb +10 -0
- data/lib/hanami/cli_bulma/generators/app/view/app_view-new.erb +10 -0
- data/lib/hanami/cli_bulma/generators/app/view/app_view-show.erb +10 -0
- data/lib/hanami/cli_bulma/generators/app/view/app_view.erb +10 -0
- data/lib/hanami/cli_bulma/generators/app/view/slice_template-edit.html.erb +24 -0
- data/lib/hanami/cli_bulma/generators/app/view/slice_template-index.html.erb +26 -0
- data/lib/hanami/cli_bulma/generators/app/view/slice_template-new.html.erb +24 -0
- data/lib/hanami/cli_bulma/generators/app/view/slice_template-show.html.erb +5 -0
- data/lib/hanami/cli_bulma/generators/app/view/slice_template.html.erb +5 -0
- data/lib/hanami/cli_bulma/generators/app/view/slice_view-edit.erb +10 -0
- data/lib/hanami/cli_bulma/generators/app/view/slice_view-index.erb +13 -0
- data/lib/hanami/cli_bulma/generators/app/view/slice_view-new.erb +10 -0
- data/lib/hanami/cli_bulma/generators/app/view/slice_view-show.erb +10 -0
- data/lib/hanami/cli_bulma/generators/app/view/slice_view.erb +10 -0
- data/lib/hanami/cli_bulma/generators/app/view.rb +73 -0
- data/lib/hanami/cli_bulma/generators/app/view_context.rb +19 -0
- data/lib/hanami/cli_bulma/generators/gem/app/404.html +82 -0
- data/lib/hanami/cli_bulma/generators/gem/app/500.html +82 -0
- data/lib/hanami/cli_bulma/generators/gem/app/action.erb +12 -0
- data/lib/hanami/cli_bulma/generators/gem/app/app.erb +8 -0
- data/lib/hanami/cli_bulma/generators/gem/app/app_css.erb +7 -0
- data/lib/hanami/cli_bulma/generators/gem/app/app_js.erb +1 -0
- data/lib/hanami/cli_bulma/generators/gem/app/app_layout.erb +45 -0
- data/lib/hanami/cli_bulma/generators/gem/app/assets.js +16 -0
- data/lib/hanami/cli_bulma/generators/gem/app/config_ru.erb +5 -0
- data/lib/hanami/cli_bulma/generators/gem/app/dev +8 -0
- data/lib/hanami/cli_bulma/generators/gem/app/env.erb +4 -0
- data/lib/hanami/cli_bulma/generators/gem/app/favicon.ico +0 -0
- data/lib/hanami/cli_bulma/generators/gem/app/gemfile.erb +44 -0
- data/lib/hanami/cli_bulma/generators/gem/app/gitignore.erb +9 -0
- data/lib/hanami/cli_bulma/generators/gem/app/helpers.erb +10 -0
- data/lib/hanami/cli_bulma/generators/gem/app/keep.erb +0 -0
- data/lib/hanami/cli_bulma/generators/gem/app/operation.erb +13 -0
- data/lib/hanami/cli_bulma/generators/gem/app/package.json.erb +8 -0
- data/lib/hanami/cli_bulma/generators/gem/app/procfile.erb +4 -0
- data/lib/hanami/cli_bulma/generators/gem/app/puma.erb +47 -0
- data/lib/hanami/cli_bulma/generators/gem/app/rakefile.erb +3 -0
- data/lib/hanami/cli_bulma/generators/gem/app/readme.erb +1 -0
- data/lib/hanami/cli_bulma/generators/gem/app/relation.erb +10 -0
- data/lib/hanami/cli_bulma/generators/gem/app/repo.erb +10 -0
- data/lib/hanami/cli_bulma/generators/gem/app/routes.erb +7 -0
- data/lib/hanami/cli_bulma/generators/gem/app/settings.erb +9 -0
- data/lib/hanami/cli_bulma/generators/gem/app/struct.erb +10 -0
- data/lib/hanami/cli_bulma/generators/gem/app/types.erb +11 -0
- data/lib/hanami/cli_bulma/generators/gem/app/validator.erb +12 -0
- data/lib/hanami/cli_bulma/generators/gem/app/view.erb +9 -0
- data/lib/hanami/cli_bulma/generators/gem/app.rb +114 -0
- data/lib/hanami/cli_bulma/version.rb +11 -0
- data/lib/hanami/cli_bulma.rb +50 -0
- data/lib/hanami-cli_bulma.rb +3 -0
- data/project.yml +2 -0
- metadata +242 -0
|
@@ -0,0 +1,45 @@
|
|
|
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_tag %>
|
|
9
|
+
<%%= stylesheet_tag "app" %>
|
|
10
|
+
<%- end -%>
|
|
11
|
+
</head>
|
|
12
|
+
<body>
|
|
13
|
+
<nav class="navbar" role="navigation" aria-label="main navigation">
|
|
14
|
+
<div class="navbar-brand">
|
|
15
|
+
<a class="navbar-item" href="https://hanamimastery.com">
|
|
16
|
+
<img src="https://hanamimastery.com/logo-hm-letter.jpeg" height="28">
|
|
17
|
+
</a>
|
|
18
|
+
</div>
|
|
19
|
+
<div id="top-navigation" class="navbar-menu">
|
|
20
|
+
<div class="navbar-start">
|
|
21
|
+
<%%= link_to 'Home', '/', class: 'navbar-item' %>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
</nav>
|
|
25
|
+
|
|
26
|
+
<section class="section">
|
|
27
|
+
<div class="container">
|
|
28
|
+
<%%= yield %>
|
|
29
|
+
</div>
|
|
30
|
+
</section>
|
|
31
|
+
|
|
32
|
+
<footer class="footer">
|
|
33
|
+
<div class="content has-text-centered">
|
|
34
|
+
<p>
|
|
35
|
+
<strong><%= humanized_app_name %></strong>. The source code is licensed
|
|
36
|
+
<a href="http://opensource.org/licenses/mit-license.php">MIT</a>. The website content
|
|
37
|
+
is licensed <a href="http://creativecommons.org/licenses/by-nc-sa/4.0/">CC BY NC SA 4.0</a>.
|
|
38
|
+
</p>
|
|
39
|
+
</div>
|
|
40
|
+
</footer>
|
|
41
|
+
<%- if generate_assets? -%>
|
|
42
|
+
<%%= javascript_tag "app" %>
|
|
43
|
+
<%- end -%>
|
|
44
|
+
</body>
|
|
45
|
+
</html>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as assets from "hanami-assets";
|
|
2
|
+
|
|
3
|
+
await assets.run();
|
|
4
|
+
|
|
5
|
+
// To provide additional esbuild (https://esbuild.github.io) options, use the following:
|
|
6
|
+
//
|
|
7
|
+
// Read more at: https://guides.hanamirb.org/assets/customization/
|
|
8
|
+
//
|
|
9
|
+
// await assets.run({
|
|
10
|
+
// esbuildOptionsFn: (args, esbuildOptions) => {
|
|
11
|
+
// // Add to esbuildOptions here. Use `args.watch` as a condition for different options for
|
|
12
|
+
// // compile vs watch.
|
|
13
|
+
//
|
|
14
|
+
// return esbuildOptions;
|
|
15
|
+
// }
|
|
16
|
+
// });
|
|
Binary file
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
source "https://rubygems.org"
|
|
4
|
+
|
|
5
|
+
<%= hanami_gem("hanami") %>
|
|
6
|
+
<%- if generate_assets? -%>
|
|
7
|
+
<%= hanami_gem("assets") %>
|
|
8
|
+
<%- end -%>
|
|
9
|
+
<%= hanami_gem("controller") %>
|
|
10
|
+
<%- if generate_db? -%>
|
|
11
|
+
<%= hanami_gem("db") %>
|
|
12
|
+
<%- end -%>
|
|
13
|
+
<%= hanami_gem("router") %>
|
|
14
|
+
<%= hanami_gem("validations") %>
|
|
15
|
+
<%= hanami_gem("view") %>
|
|
16
|
+
|
|
17
|
+
gem "hanami-cli_bulma", github: "swilgosz/hanami-cli_bulma"
|
|
18
|
+
gem "dry-types", "~> 1.0", ">= 1.6.1"
|
|
19
|
+
gem "dry-operation", github: "dry-rb/dry-operation"
|
|
20
|
+
gem "puma"
|
|
21
|
+
gem "rake"
|
|
22
|
+
<%- if generate_sqlite? -%>
|
|
23
|
+
gem "sqlite3"
|
|
24
|
+
<%- elsif generate_postgres? -%>
|
|
25
|
+
gem "pg"
|
|
26
|
+
<%- elsif generate_mysql? -%>
|
|
27
|
+
gem "mysql2"
|
|
28
|
+
<%- end -%>
|
|
29
|
+
|
|
30
|
+
group :development do
|
|
31
|
+
<%= hanami_gem("webconsole") %>
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
group :development, :test do
|
|
35
|
+
gem "dotenv"
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
group :cli, :development do
|
|
39
|
+
<%= hanami_gem("reloader") %>
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
group :cli, :development, :test do
|
|
43
|
+
<%= hanami_gem("rspec") %>
|
|
44
|
+
end
|
|
File without changes
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# auto_register: false
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
require "dry/operation"
|
|
5
|
+
|
|
6
|
+
module <%= camelized_app_name %>
|
|
7
|
+
class Operation < Dry::Operation
|
|
8
|
+
<%- if generate_db? -%>
|
|
9
|
+
# Provide `transaction do ... end` method for database transactions
|
|
10
|
+
include Dry::Operation::Extensions::ROM
|
|
11
|
+
<%- end -%>
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
#
|
|
4
|
+
# Environment and port
|
|
5
|
+
#
|
|
6
|
+
port ENV.fetch("<%= Hanami::Port::ENV_VAR %>", <%= Hanami::Port::DEFAULT %>)
|
|
7
|
+
environment ENV.fetch("HANAMI_ENV", "development")
|
|
8
|
+
|
|
9
|
+
#
|
|
10
|
+
# Threads within each Puma/Ruby process (aka worker)
|
|
11
|
+
#
|
|
12
|
+
|
|
13
|
+
# Configure the minimum and maximum number of threads to use to answer requests.
|
|
14
|
+
max_threads_count = ENV.fetch("HANAMI_MAX_THREADS", 5)
|
|
15
|
+
min_threads_count = ENV.fetch("HANAMI_MIN_THREADS") { max_threads_count }
|
|
16
|
+
|
|
17
|
+
threads min_threads_count, max_threads_count
|
|
18
|
+
|
|
19
|
+
#
|
|
20
|
+
# Workers (aka Puma/Ruby processes)
|
|
21
|
+
#
|
|
22
|
+
|
|
23
|
+
puma_concurrency = Integer(ENV.fetch("HANAMI_WEB_CONCURRENCY", 0))
|
|
24
|
+
puma_cluster_mode = puma_concurrency > 1
|
|
25
|
+
|
|
26
|
+
# How many worker (Puma/Ruby) processes to run.
|
|
27
|
+
# Typically this is set to the number of available cores.
|
|
28
|
+
workers puma_concurrency
|
|
29
|
+
|
|
30
|
+
#
|
|
31
|
+
# Cluster mode (aka multiple workers)
|
|
32
|
+
#
|
|
33
|
+
|
|
34
|
+
if puma_cluster_mode
|
|
35
|
+
# Preload the application before starting the workers. Only in cluster mode.
|
|
36
|
+
preload_app!
|
|
37
|
+
|
|
38
|
+
# Code to run immediately before master process forks workers (once on boot).
|
|
39
|
+
#
|
|
40
|
+
# These hooks can block if necessary to wait for background operations unknown
|
|
41
|
+
# to puma to finish before the process terminates. This can be used to close
|
|
42
|
+
# any connections to remote servers (database, redis, …) that were opened when
|
|
43
|
+
# preloading the code.
|
|
44
|
+
before_fork do
|
|
45
|
+
Hanami.shutdown
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# <%= camelized_app_name %>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# auto_register: false
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
require "dry/validation"
|
|
5
|
+
require "dry/schema/messages/i18n"
|
|
6
|
+
|
|
7
|
+
module <%= camelized_app_name %>
|
|
8
|
+
module Validator < Dry::Validation::Contract
|
|
9
|
+
config.messages.backend = :i18n
|
|
10
|
+
config.messages.top_namespace = "validation"
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "erb"
|
|
4
|
+
require "shellwords"
|
|
5
|
+
|
|
6
|
+
module Hanami
|
|
7
|
+
module CLIBulma
|
|
8
|
+
module Generators
|
|
9
|
+
# @since 2.0.0
|
|
10
|
+
# @api private
|
|
11
|
+
module Gem
|
|
12
|
+
# @since 2.0.0
|
|
13
|
+
# @api private
|
|
14
|
+
class App
|
|
15
|
+
# @since 2.0.0
|
|
16
|
+
# @api private
|
|
17
|
+
def initialize(fs:, inflector:)
|
|
18
|
+
super()
|
|
19
|
+
@fs = fs
|
|
20
|
+
@inflector = inflector
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# @since 2.0.0
|
|
24
|
+
# @api private
|
|
25
|
+
def call(app, context: Hanami::CLI::Generatos::Context.new(inflector, app), &blk)
|
|
26
|
+
generate_app(app, context)
|
|
27
|
+
blk.call
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
private
|
|
31
|
+
|
|
32
|
+
attr_reader :fs
|
|
33
|
+
|
|
34
|
+
attr_reader :inflector
|
|
35
|
+
|
|
36
|
+
attr_reader :config
|
|
37
|
+
|
|
38
|
+
def generate_app(app, context) # rubocop:disable Metrics/AbcSize
|
|
39
|
+
fs.write(".gitignore", t("gitignore.erb", context))
|
|
40
|
+
fs.write(".env", t("env.erb", context))
|
|
41
|
+
|
|
42
|
+
fs.write("README.md", t("readme.erb", context))
|
|
43
|
+
fs.write("Gemfile", t("gemfile.erb", context))
|
|
44
|
+
fs.write("Rakefile", t("rakefile.erb", context))
|
|
45
|
+
fs.write("Procfile.dev", t("procfile.erb", context))
|
|
46
|
+
fs.write("config.ru", t("config_ru.erb", context))
|
|
47
|
+
|
|
48
|
+
fs.write("bin/dev", file("dev"))
|
|
49
|
+
fs.chmod("bin/dev", 0o755)
|
|
50
|
+
|
|
51
|
+
fs.write("config/app.rb", t("app.erb", context))
|
|
52
|
+
fs.write("config/settings.rb", t("settings.erb", context))
|
|
53
|
+
fs.write("config/routes.rb", t("routes.erb", context))
|
|
54
|
+
fs.write("config/puma.rb", t("puma.erb", context))
|
|
55
|
+
|
|
56
|
+
fs.write("lib/tasks/.keep", t("keep.erb", context))
|
|
57
|
+
fs.write("lib/#{app}/types.rb", t("types.erb", context))
|
|
58
|
+
|
|
59
|
+
fs.write("app/actions/.keep", t("keep.erb", context))
|
|
60
|
+
fs.write("app/action.rb", t("action.erb", context))
|
|
61
|
+
fs.write("app/view.rb", t("view.erb", context))
|
|
62
|
+
fs.write("app/views/helpers.rb", t("helpers.erb", context))
|
|
63
|
+
fs.write("app/templates/layouts/app.html.erb", t("app_layout.erb", context))
|
|
64
|
+
|
|
65
|
+
if context.generate_assets?
|
|
66
|
+
fs.write("package.json", t("package.json.erb", context))
|
|
67
|
+
fs.write("config/assets.js", file("assets.js"))
|
|
68
|
+
fs.write("app/assets/js/app.js", t("app_js.erb", context))
|
|
69
|
+
fs.write("app/assets/css/app.css", t("app_css.erb", context))
|
|
70
|
+
fs.write("app/assets/images/favicon.ico", file("favicon.ico"))
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
if context.generate_db?
|
|
74
|
+
fs.write("app/db/relation.rb", t("relation.erb", context))
|
|
75
|
+
fs.write("app/relations/.keep", t("keep.erb", context))
|
|
76
|
+
|
|
77
|
+
fs.write("app/db/repo.rb", t("repo.erb", context))
|
|
78
|
+
fs.write("app/repos/.keep", t("keep.erb", context))
|
|
79
|
+
|
|
80
|
+
fs.write("app/db/struct.rb", t("struct.erb", context))
|
|
81
|
+
fs.write("app/structs/.keep", t("keep.erb", context))
|
|
82
|
+
|
|
83
|
+
fs.write("config/db/migrate/.keep" , t("keep.erb", context))
|
|
84
|
+
|
|
85
|
+
if context.generate_sqlite?
|
|
86
|
+
fs.write("db/.keep" , t("keep.erb", context))
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
fs.write("app/operation.rb", t("operation.erb", context))
|
|
91
|
+
|
|
92
|
+
fs.write("public/404.html", file("404.html"))
|
|
93
|
+
fs.write("public/500.html", file("500.html"))
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def template(path, context)
|
|
97
|
+
require "erb"
|
|
98
|
+
|
|
99
|
+
ERB.new(
|
|
100
|
+
File.read(File.join(__dir__, "app", path)),
|
|
101
|
+
trim_mode: "-"
|
|
102
|
+
).result(context.ctx)
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
alias_method :t, :template
|
|
106
|
+
|
|
107
|
+
def file(path)
|
|
108
|
+
File.read(File.join(__dir__, "app", path))
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "dry/cli"
|
|
4
|
+
require "zeitwerk"
|
|
5
|
+
|
|
6
|
+
module Hanami
|
|
7
|
+
# Extensible command line interface for Hanami.
|
|
8
|
+
#
|
|
9
|
+
# @api public
|
|
10
|
+
# @since 0.0.1
|
|
11
|
+
module CLIBulma
|
|
12
|
+
def self.within_hanami_app?
|
|
13
|
+
require "hanami"
|
|
14
|
+
|
|
15
|
+
!!Hanami.app_path
|
|
16
|
+
rescue LoadError => e
|
|
17
|
+
raise e unless e.path == "hanami"
|
|
18
|
+
|
|
19
|
+
# If for any reason the hanami gem isn't installed, make a simple best effort to determine
|
|
20
|
+
# whether we're inside an app.
|
|
21
|
+
File.exist?("config/app.rb") || File.exist?("app.rb")
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# @api private
|
|
25
|
+
# @since 0.0.1
|
|
26
|
+
def self.gem_loader
|
|
27
|
+
@gem_loader ||= Zeitwerk::Loader.new.tap do |loader|
|
|
28
|
+
root = File.expand_path("..", __dir__)
|
|
29
|
+
loader.tag = "hanami-cli_bulma"
|
|
30
|
+
loader.inflector = Zeitwerk::GemInflector.new("#{root}/hanami-cli_bulma.rb")
|
|
31
|
+
loader.push_dir(root)
|
|
32
|
+
loader.ignore(
|
|
33
|
+
"#{root}/hanami-cli_bulma.rb",
|
|
34
|
+
"#{root}/hanami/cli_bulma/{errors,version}.rb"
|
|
35
|
+
)
|
|
36
|
+
loader.inflector.inflect("cli_bulma" => "CLIBulma")
|
|
37
|
+
loader.inflector.inflect("cli" => "CLI")
|
|
38
|
+
loader.inflector.inflect("db" => "DB")
|
|
39
|
+
loader.inflector.inflect("url" => "URL")
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
gem_loader.setup
|
|
44
|
+
|
|
45
|
+
extend Dry::CLI::Registry
|
|
46
|
+
require_relative "cli_bulma/commands"
|
|
47
|
+
|
|
48
|
+
register_commands!
|
|
49
|
+
end
|
|
50
|
+
end
|
data/project.yml
ADDED