module Susanoo::CLI::Commands::Generate

Provide the `generate` & `destroy` commands for project wide usage.

Public Instance Methods

destroy(generator_name = nil, *options) click to toggle source
# File lib/susanoo/cli/project_interface/generate.rb, line 22
def destroy(generator_name = nil, *options)
  generator = get_the_generator_class generator_name

  generator.start(options, behavior: :revoke,
                  destination_root: project_root)
end
generate(generator_name = nil, *options) click to toggle source
# File lib/susanoo/cli/project_interface/generate.rb, line 14
def generate(generator_name = nil, *options)
  generator = get_the_generator_class generator_name
  # Run the generator with given options
  generator.start(options, behavior: :invoke,
                  destination_root: project_root)
end

Private Instance Methods

get_the_generator_class(generator_name) click to toggle source
# File lib/susanoo/cli/project_interface/generate.rb, line 49
def get_the_generator_class(generator_name)
  # Print the generators list and exit
  if generator_name.nil?
    print_generator_list
    return
  end

  # Try to load and get the generator Class
  begin
    klass = generator_name.downcase.camelize
    generator = Susanoo::Generators.const_get(klass)

  rescue NameError
    say_status 'Error', "Generator `#{generator_name}` not found.",
               :red
    exit 1
  end
  generator
end
print_generator_list() click to toggle source