class Diecut::Mill

Attributes

issue_handler[W]
kind[R]
mediator[W]
templates[W]
valise[W]

Public Class Methods

new(kind) click to toggle source
# File lib/diecut/mill.rb, line 8
def initialize(kind)
  @kind = kind
end

Public Instance Methods

activate_plugins() { |name| ... } click to toggle source
# File lib/diecut/mill.rb, line 22
def activate_plugins
  mediator.plugins.map(&:name).each do |name|
    if yield(name)
      mediator.activate(name)
    else
      mediator.deactivate(name)
    end
  end
end
churn(ui) { |path, contents| ... } click to toggle source
# File lib/diecut/mill.rb, line 73
def churn(ui)
  templates.context = mediator.apply_user_input(ui, templates.context_class)
  templates.results do |path, contents|
    yield(path, contents)
  end
end
context_class() click to toggle source
# File lib/diecut/mill.rb, line 58
def context_class
  templates.context_class
end
load_files() click to toggle source
# File lib/diecut/mill.rb, line 52
def load_files
  valise.filter('**', %i[extended dotmatch]).files do |file|
    templates.add(file.rel_path.to_s, file.contents)
  end
end
mediator() click to toggle source
# File lib/diecut/mill.rb, line 14
def mediator
  @mediator ||= Diecut.mediator(kind)
end
templates() click to toggle source
# File lib/diecut/mill.rb, line 18
def templates
  @templates ||= TemplateSet.new
end
ui_class() click to toggle source
# File lib/diecut/mill.rb, line 62
def ui_class
  mediator.build_ui_class(context_class)
end
user_interface() click to toggle source
# File lib/diecut/mill.rb, line 66
def user_interface
  load_files
  templates.prepare

  ui_class.new
end
valise() click to toggle source
# File lib/diecut/mill.rb, line 32
def valise
  @valise ||=
    begin
      stems = mediator.activated_plugins.map do |plugin|
        plugin.stem_for(kind)
      end
      Valise::Set.define do
        stems.each do |stem|
          if stem.stem
            stemmed(stem.stem) do
              ro stem.template_dir
            end
          else
            ro stem.template_dir
          end
        end
      end
    end
end