41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# File 'lib/diecut/cli.rb', line 41
def self.build_kind_subcommand(plugin_kind)
mediator = Diecut.mediator(plugin_kind)
example_ui = mediator.build_example_ui
klass = Class.new(KindCli) do
class << self
def kind(value = nil)
if @kind.nil?
@kind = value
end
@kind
end
end
mediator.plugins.each do |plugin|
class_option "with-#{plugin.name}", :default => plugin.default_active?
end
example_ui.field_names.each do |field|
method_option(field, {:for => :generate, :desc => example_ui.description(field) || field,
:required => example_ui.required?(field), :default => example_ui.default_for(field)})
end
end
klass.kind(plugin_kind)
klass
end
|