Module: Adhearsion::Generators

Extended by:
ActiveSupport::Autoload
Defined in:
lib/adhearsion/generators.rb,
lib/adhearsion/generators/generator.rb,
lib/adhearsion/generators/app/app_generator.rb,
lib/adhearsion/generators/plugin/plugin_generator.rb,
lib/adhearsion/generators/controller/controller_generator.rb

Defined Under Namespace

Classes: AppGenerator, ControllerGenerator, Generator, PluginGenerator

Class Method Summary (collapse)

Class Method Details

+ (Hash) add_generator(name, klass)

Globally add a new generator class to ahn generate

key name for generator mapping class of generator

Adhearsion::Generators.add_generator :myplugin, MyPluginGenerator

Parameters:

  • name (Symbol)
  • klass (Class)

Returns:

  • (Hash)

    generator mappings



51
52
53
# File 'lib/adhearsion/generators.rb', line 51

def add_generator(name, klass)
  mappings[name] = klass
end

+ (Object) help(command = 'generate')

Show help message with available generators.



12
13
14
15
16
17
18
19
20
# File 'lib/adhearsion/generators.rb', line 12

def help(command = 'generate')
  "".tap do |h|
    h << "Available generators:\n"

    mappings.each_pair do |name, klass|
      h << "* " << klass.desc << "\n"
    end
  end
end

+ (Object) invoke(generator_name, args = ARGV)



22
23
24
25
26
27
28
29
# File 'lib/adhearsion/generators.rb', line 22

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

+ (Object) mappings

Return a ordered list of task with their class



34
35
36
# File 'lib/adhearsion/generators.rb', line 34

def mappings
  @_mappings ||= Hash.new
end