lib/roger/generators.rb in roger-0.13.0 vs lib/roger/generators.rb in roger-1.0.0
- old
+ new
@@ -5,14 +5,25 @@
module Generators
class Base < Cli::Command
end
- def self.register(sub)
- name = sub.to_s.sub(/Generator$/, "").sub(/^.*Generators::/,"").downcase
+ def self.register(name, sub = nil)
+ # Hack to not break old tasks
+ if name.kind_of?(Class)
+ sub = name
+ name = sub.to_s.sub(/Generator$/, "").sub(/^.*Generators::/,"").downcase
+ else
+ raise ArgumentError, "Name must be a symbol" unless name.kind_of?(Symbol)
+ end
+
+ name = name.to_s
+
+ raise ArgumentError, "Another generator has already claimed the name #{name.inspect}" if Cli::Generate.tasks.has_key?(name)
+
usage = "#{name} #{sub.arguments.map{ |arg| arg.banner }.join(" ")}"
long_desc = sub.desc || "Run #{name} generator"
-
+
Cli::Generate.register sub, name, usage, long_desc
Cli::Generate.tasks[name].options = sub.class_options if sub.class_options
end
end
\ No newline at end of file