Module: Hanami::CLI
- Extended by:
- Dry::CLI::Registry
- Defined in:
- lib/hanami/cli.rb,
lib/hanami/cli/url.rb,
lib/hanami/cli/files.rb,
lib/hanami/cli/errors.rb,
lib/hanami/cli/naming.rb,
lib/hanami/cli/server.rb,
lib/hanami/cli/bundler.rb,
lib/hanami/cli/command.rb,
lib/hanami/cli/version.rb,
lib/hanami/cli/commands.rb,
lib/hanami/cli/repl/irb.rb,
lib/hanami/cli/repl/pry.rb,
lib/hanami/cli/repl/core.rb,
lib/hanami/cli/rake_tasks.rb,
lib/hanami/cli/system_call.rb,
lib/hanami/cli/commands/app.rb,
lib/hanami/cli/commands/gem.rb,
lib/hanami/cli/commands/app/dev.rb,
lib/hanami/cli/commands/gem/new.rb,
lib/hanami/cli/generators/context.rb,
lib/hanami/cli/generators/gem/app.rb,
lib/hanami/cli/generators/version.rb,
lib/hanami/cli/commands/app/assets.rb,
lib/hanami/cli/commands/app/routes.rb,
lib/hanami/cli/commands/app/server.rb,
lib/hanami/cli/generators/app/part.rb,
lib/hanami/cli/generators/app/view.rb,
lib/hanami/cli/commands/app/command.rb,
lib/hanami/cli/commands/app/console.rb,
lib/hanami/cli/commands/app/db/drop.rb,
lib/hanami/cli/commands/app/db/seed.rb,
lib/hanami/cli/commands/app/install.rb,
lib/hanami/cli/commands/app/version.rb,
lib/hanami/cli/commands/gem/version.rb,
lib/hanami/cli/generators/app/slice.rb,
lib/hanami/cli/commands/app/db/reset.rb,
lib/hanami/cli/commands/app/db/setup.rb,
lib/hanami/cli/commands/app/generate.rb,
lib/hanami/cli/generators/app/action.rb,
lib/hanami/cli/commands/app/db/create.rb,
lib/hanami/cli/commands/app/db/migrate.rb,
lib/hanami/cli/commands/app/db/version.rb,
lib/hanami/cli/commands/app/middleware.rb,
lib/hanami/cli/interactive_system_call.rb,
lib/hanami/cli/commands/app/db/rollback.rb,
lib/hanami/cli/commands/app/assets/watch.rb,
lib/hanami/cli/commands/app/generate/part.rb,
lib/hanami/cli/commands/app/generate/view.rb,
lib/hanami/cli/middleware_stack_inspector.rb,
lib/hanami/cli/commands/app/assets/command.rb,
lib/hanami/cli/commands/app/assets/compile.rb,
lib/hanami/cli/commands/app/db/sample_data.rb,
lib/hanami/cli/commands/app/db/utils/mysql.rb,
lib/hanami/cli/commands/app/generate/slice.rb,
lib/hanami/cli/generators/app/part_context.rb,
lib/hanami/cli/generators/app/view_context.rb,
lib/hanami/cli/commands/app/db/utils/sqlite.rb,
lib/hanami/cli/commands/app/generate/action.rb,
lib/hanami/cli/generators/app/slice_context.rb,
lib/hanami/cli/generators/app/action_context.rb,
lib/hanami/cli/commands/app/db/structure/dump.rb,
lib/hanami/cli/commands/app/db/utils/database.rb,
lib/hanami/cli/commands/app/db/utils/postgres.rb,
lib/hanami/cli/commands/app/db/create_migration.rb,
lib/hanami/cli/commands/app/db/utils/database_config.rb
Overview
Extensible command line interface for Hanami.
Defined Under Namespace
Modules: Commands, Generators, Repl, URL Classes: BundleInstallError, Bundler, Command, Error, Files, HanamiExecError, HanamiInstallError, InteractiveSystemCall, InvalidActionNameError, InvalidURLError, InvalidURLPrefixError, MiddlewareStackInspector, MissingSliceError, Naming, NotImplementedError, PathAlreadyExistsError, RakeTasks, Server, SystemCall, UnknownHTTPMethodError, UnsupportedDatabaseSchemeError
Constant Summary collapse
- VERSION =
The current hanami-cli version.
"2.1.1"
Class Method Summary collapse
- .gem_loader ⇒ Object private
- .register_commands!(within_hanami_app = within_hanami_app?) ) ⇒ Object private
-
.within_hanami_app? ⇒ Boolean
private
Returns true if the CLI is being called from inside an Hanami app.
Class Method Details
.gem_loader ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/hanami/cli.rb', line 14 def self.gem_loader @gem_loader ||= Zeitwerk::Loader.new.tap do |loader| root = File.("..", __dir__) loader.tag = "hanami-cli" loader.inflector = Zeitwerk::GemInflector.new("#{root}/hanami-cli.rb") loader.push_dir(root) loader.ignore( "#{root}/hanami-cli.rb", "#{root}/hanami/cli/{errors,version}.rb" ) loader.inflector.inflect("cli" => "CLI") loader.inflector.inflect("db" => "DB") loader.inflector.inflect("url" => "URL") end end |
.register_commands!(within_hanami_app = within_hanami_app?) ) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/hanami/cli/commands.rb', line 37 def self.register_commands!(within_hanami_app = within_hanami_app?) commands = if within_hanami_app require_relative "commands/app" Commands::App else require_relative "commands/gem" Commands::Gem end extend(commands) end |
.within_hanami_app? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns true if the CLI is being called from inside an Hanami app.
This is typically used to determine whether to register commands that are applicable either inside or outside an app.
14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/hanami/cli/commands.rb', line 14 def self.within_hanami_app? require "hanami" !!Hanami.app_path rescue LoadError => e raise e unless e.path == "hanami" # If for any reason the hanami gem isn't installed, make a simple best effort to determine # whether we're inside an app. File.exist?("config/app.rb") || File.exist?("app.rb") end |