module Adhearsion::Generators

Public Class Methods

add_generator(name, klass) click to toggle source

Globally add a new generator class to +ahn generate+

@param [Symbol] name key name for generator mapping @param [Class] klass class of generator

@return [Hash] generator mappings

@example

Adhearsion::Generators.add_generator :myplugin, MyPluginGenerator
# File lib/adhearsion/generators.rb, line 47
def add_generator(name, klass)
  mappings[name] = klass
end
help(command = 'generate') click to toggle source

Show help message with available generators.

# File lib/adhearsion/generators.rb, line 10
def help(command = 'generate')
  "".tap do |h|
    h << "Available generators:\n"

    mappings.each_pair do |name, klass|
      h << "* " << klass.desc << "\n"
    end
  end
end
invoke(generator_name, args = ARGV) click to toggle source
# File lib/adhearsion/generators.rb, line 20
def invoke(generator_name, args = ARGV)
  klass = Generators.mappings[generator_name.to_sym]
  raise CLI::UnknownGeneratorError, generator_name unless klass

  args << "--help" if args.empty? && klass.arguments.any?(&:required?)

  klass.start args
end
mappings() click to toggle source

Return a ordered list of task with their class

# File lib/adhearsion/generators.rb, line 32
def mappings
  @_mappings ||= Hash.new
end