Sha256: 5486036a833372c33fe0e8f4bad3811358be76e8fb8357f7314094942d8c7994
Contents?: true
Size: 1.35 KB
Versions: 1
Compression:
Stored size: 1.35 KB
Contents
require 'diecut/mediator' require 'diecut/plugin-description' require 'diecut/plugin-loader' require 'diecut/errors' module Diecut class << self def plugin_loader @plugin_loader ||= PluginLoader.new end def plugin_loader=(loader) @plugin_loader = loader end def clear_plugins @plugin_loader = nil end def load_plugins(prerelease = false) plugin_loader.load_plugins(prerelease) end def plugins plugin_loader.plugins end def issue_handler @issue_handler ||= ErrorHandling::AllWarn.new end attr_writer :issue_handler # Used in a `diecut_plugin.rb` file (either in the `lib/` of a gem, or at # the local `~/.config/diecut/diecut_plugin.rb` to register a new plugin. # # @param name [String, Symbol] # Names the plugin so that it can be toggled later # # @yieldparam description [PluginDescription] # The description object to configure the plugin with. def plugin(name, &block) plugin_loader.describe_plugin(name, &block) end def kinds plugins.reduce([]) do |list, plugin| list + plugin.kinds end.uniq end def mediator(kind) Mediator.new.tap do |med| plugins.each do |plug| next unless plug.has_kind?(kind) med.add_plugin(plug) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
diecut-0.0.3 | lib/diecut.rb |