Class: Diecut::Cli::KindGroup

Inherits:
Thor::Group
  • Object
show all
Defined in:
lib/diecut/cli.rb

Direct Known Subclasses

Generate, Lint

Class Method Summary collapse

Class Method Details

.setup_subclass(mediator, example_ui) ⇒ Object



27
28
# File 'lib/diecut/cli.rb', line 27

def self.setup_subclass(mediator, example_ui)
end

.subclass_for(kind, mediator = nil, example_ui = nil) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/diecut/cli.rb', line 8

def self.subclass_for(kind, mediator = nil, example_ui = nil)
  mediator ||= Diecut.mediator(kind)
  example_ui ||= mediator.build_example_ui

  Class.new(self) do
    def self.kind
      @kind
    end

    mediator.plugins.each do |plugin|
      class_option "with-#{plugin.name}", :default => plugin.default_active?
    end

    setup_subclass(mediator, example_ui)
  end.tap do |klass|
    klass.instance_variable_set("@kind", kind)
  end
end