Class: Diecut::Cli::Generate

Inherits:
KindGroup
  • Object
show all
Includes:
Thor::Actions
Defined in:
lib/diecut/cli.rb

Direct Known Subclasses

TargetedGenerate

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from KindGroup

subclass_for

Class Method Details

.setup_subclass(mediator, example_ui) ⇒ Object



34
35
36
37
38
39
40
41
42
# File 'lib/diecut/cli.rb', line 34

def self.setup_subclass(mediator, example_ui)
  example_ui.field_names.each do |field|
    class_option(field, {
      :desc     => example_ui.description(field) || field,
      :required => example_ui.required?(field),
      :default  => example_ui.default_for(field)
    })
  end
end

Instance Method Details

#filesObject



44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/diecut/cli.rb', line 44

def files
  self.destination_root = target_dir

  mill = Mill.new(self.class.kind)
  mill.activate_plugins {|name| options["with-#{name}"] }

  ui = mill.user_interface
  options.delete_if{|_, value| value.nil?}
  ui.from_hash(options)

  mill.churn(ui) do |path, contents|
    create_file(path, contents)
  end
end