module Roger::Generators
Generators
namespace
Public Class Methods
generator_name(name, klass)
click to toggle source
# File lib/roger/generators.rb, line 29 def self.generator_name(name, klass) # Hack to not break old tasks if name.is_a?(Class) klass = name name = klass.to_s.sub(/Generator$/, "").sub(/^.*Generators::/, "").downcase else raise ArgumentError, "Name must be a symbol" unless name.is_a?(Symbol) end [name.to_s, klass] end
register(name, klass = nil)
click to toggle source
# File lib/roger/generators.rb, line 12 def self.register(name, klass = nil) name, klass = generator_name(name, klass) if Cli::Generate.tasks.key?(name) raise( ArgumentError, "Generator name '#{name.inspect}' already in use" ) end usage = "#{name} #{klass.arguments.map(&:banner).join(' ')}" long_desc = klass.desc || "Run #{name} generator" Cli::Generate.register klass, name, usage, long_desc Cli::Generate.tasks[name].options = klass.class_options if klass.class_options end