Sha256: 8085ad252777a69b80d64f8b25f18a28b66c5005530a79e054668b0b7b60ba68
Contents?: true
Size: 1.42 KB
Versions: 2
Compression:
Stored size: 1.42 KB
Contents
# frozen_string_literal: true require "dry/inflector" require "dry/files" require "shellwords" module Hanami module CLI module Commands module App module Generate # @api private # @since 2.2.0 class Component < App::Command argument :name, required: true, desc: "Component name" option :slice, required: false, desc: "Slice name" example [ %(isbn_decoder (MyApp::IsbnDecoder)), %(recommenders.fiction (MyApp::Recommenders::Fiction)), %(isbn_decoder --slice=admin (Admin::IsbnDecoder)), %(Exporters::Complete::CSV (MyApp::Exporters::Complete::CSV)), ] attr_reader :generator private :generator # @api private # @since 2.2.0 def initialize( fs:, inflector:, generator: Generators::App::Component.new(fs: fs, inflector: inflector), **opts ) @generator = generator super(fs: fs, inflector: inflector, **opts) end # @api private # @since 2.2.0 def call(name:, slice: nil, **) slice = inflector.underscore(Shellwords.shellescape(slice)) if slice generator.call(app.namespace, name, slice) end end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
hanami-cli-2.2.1 | lib/hanami/cli/commands/app/generate/component.rb |
hanami-cli-2.2.0 | lib/hanami/cli/commands/app/generate/component.rb |