Class: Hanami::CLI::Commands::App::Command
- Inherits:
-
Hanami::CLI::Command
- Object
- Dry::CLI::Command
- Hanami::CLI::Command
- Hanami::CLI::Commands::App::Command
- Defined in:
- lib/hanami/cli/commands/app/command.rb
Overview
Base class for hanami
CLI commands intended to be executed within an existing Hanami
app.
Direct Known Subclasses
Assets::Command, Console, DB::Command, Dev, Generate::Action, Generate::Command, Generate::Component, Generate::Part, Generate::Repo, Generate::Slice, Generate::Struct, Generate::View, Install, Version
Defined Under Namespace
Modules: Environment
Constant Summary collapse
- ACTION_SEPARATOR =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
"."
Class Method Summary collapse
- .inherited(klass) ⇒ Object private
Instance Method Summary collapse
-
#app ⇒ Hanami::App
Returns the Hanami app class.
-
#measure(desc) ⇒ Object
Executes a given block and prints string to the
out
stream with details of the time taken to execute. -
#run_command(klass) ⇒ Object
Runs another CLI command via its command class.
Methods inherited from Hanami::CLI::Command
Constructor Details
This class inherits a constructor from Hanami::CLI::Command
Class Method Details
.inherited(klass) ⇒ 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.
52 53 54 55 |
# File 'lib/hanami/cli/commands/app/command.rb', line 52 def self.inherited(klass) super klass.prepend(Environment) end |
Instance Method Details
#app ⇒ Hanami::App
Returns the Hanami app class.
65 66 67 68 69 70 71 |
# File 'lib/hanami/cli/commands/app/command.rb', line 65 def app @app ||= begin require "hanami/prepare" Hanami.app end end |
#measure(desc) ⇒ Object
Executes a given block and prints string to the out
stream with details of the time
taken to execute.
If the block returns a falsey value, then a failure message is printed.
109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/hanami/cli/commands/app/command.rb', line 109 def measure(desc) start = Process.clock_gettime(Process::CLOCK_MONOTONIC) result = yield stop = Process.clock_gettime(Process::CLOCK_MONOTONIC) if result out.puts "=> #{desc} in #{(stop - start).round(4)}s" else out.puts "!!! => #{desc.inspect} FAILED" end end |