class Lexicon::Cli::Extension::CommonExtension
Constants
- LOGGER_LEVEL
- PACKAGE_DIR
- PACKAGE_SCHEMA_PATH
- SCHEMA_VALIDATOR
Attributes
data_root[R]
@return [Pathname]
Public Class Methods
new(data_root:)
click to toggle source
# File lib/lexicon/cli/extension/common_extension.rb, line 15 def initialize(data_root:) @data_root = data_root end
Public Instance Methods
boot(container)
click to toggle source
@param [Corindon::DependencyInjection::Container] container
# File lib/lexicon/cli/extension/common_extension.rb, line 20 def boot(container) register_parameters( container, { PACKAGE_SCHEMA_PATH => package_schema_file, PACKAGE_DIR => data_root.join('out'), LOGGER_LEVEL => Logger::ERROR, } ) container.add_definition(Lexicon::Common::Database::Factory) container.add_definition(Lexicon::Common::Package::DirectoryPackageLoader) do args(CommonExtension::PACKAGE_DIR, schema_validator: CommonExtension::SCHEMA_VALIDATOR) end container.add_definition(Lexicon::Common::Package::PackageIntegrityValidator) { args(shell: Lexicon::Common::ShellExecutor) } container.add_definition(Lexicon::Common::Schema::ValidatorFactory) { args(CommonExtension::PACKAGE_SCHEMA_PATH) } container.add_definition(Lexicon::Common::ShellExecutor) container.add_definition(Logger) { args(value(STDOUT), level: LOGGER_LEVEL) } container.add_definition(SCHEMA_VALIDATOR) container.on_service_built(->(service, container) { if service.is_a?(Lexicon::Common::Mixin::ContainerAware) service.container = container end }) container.on_service_built(->(service, container) { if service.is_a?(Lexicon::Common::Mixin::LoggerAware) service.logger = container.get(Logger) end }) end
commands()
click to toggle source
# File lib/lexicon/cli/extension/common_extension.rb, line 53 def commands proc do desc 'console', 'Start a console' subcommand 'console', Command::ConsoleCommand end end
Private Instance Methods
package_schema_file()
click to toggle source
@return [Pathname]
# File lib/lexicon/cli/extension/common_extension.rb, line 66 def package_schema_file Pathname.new(Gem::Specification.find_by_name('lexicon-common').gem_dir).join(Lexicon::Common::LEXICON_SCHEMA_RELATIVE_PATH) end