Sha256: bd58450569f3e8bce658658f2d0293fad3245da96aa6f6012ed7a8c89ef451c9
Contents?: true
Size: 1.46 KB
Versions: 1
Compression:
Stored size: 1.46 KB
Contents
require 'valise' require 'diecut' require 'diecut/errors' require 'diecut/template-set' module Diecut class Mill def initialize(kind) @kind = kind end attr_reader :kind attr_writer :valise, :mediator, :templates, :issue_handler def mediator @mediator ||= Diecut.mediator(kind) end def templates @templates ||= TemplateSet.new end def activate_plugins mediator.plugins.map(&:name).each do |name| if yield(name) mediator.activate(name) else mediator.deactivate(name) end end end def valise @valise ||= begin stems = mediator.activated_plugins.map do |plugin| plugin.stem_for(kind) end Valise::Set.define do stems.each do |stem| ro stem.template_dir end end end end def load_files valise.filter('**', %i[extended dotmatch]).files do |file| templates.add(file.rel_path.to_s, file.contents) end end def context_class templates.context_class end def ui_class mediator.build_ui_class(context_class) end def user_interface load_files templates.prepare ui_class.new end def churn(ui) templates.context = mediator.apply_user_input(ui, templates.context_class) templates.results do |path, contents| yield(path, contents) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
diecut-0.0.3 | lib/diecut/mill.rb |