Module: Diecut

Defined in:
lib/diecut.rb,
lib/diecut/cli.rb,
lib/diecut/mill.rb,
lib/diecut/errors.rb,
lib/diecut/linter.rb,
lib/diecut/report.rb,
lib/diecut/mediator.rb,
lib/diecut/mustache.rb,
lib/diecut/template.rb,
lib/diecut/ui-config.rb,
lib/diecut/ui-applier.rb,
lib/diecut/configurable.rb,
lib/diecut/error-report.rb,
lib/diecut/template-set.rb,
lib/diecut/plugin-loader.rb,
lib/diecut/report-builder.rb,
lib/diecut/context-handler.rb,
lib/diecut/template-reducer.rb,
lib/diecut/plugin-description.rb,
lib/diecut/caller-locations-polyfill.rb,
lib/diecut/plugin-description/option.rb,
lib/diecut/report-builders/template-list.rb,
lib/diecut/report-builders/invalid-plugin.rb,
lib/diecut/report-builders/orphaned-field.rb,
lib/diecut/report-builders/unused-default.rb,
lib/diecut/report-builders/exception-report.rb,
lib/diecut/report-builders/option-collision.rb,
lib/diecut/plugin-description/context-default.rb,
lib/diecut/report-builders/missing-context-field.rb,
lib/diecut/report-builders/overridden-context-defaults.rb

Defined Under Namespace

Modules: CallerLocationsPolyfill, Cli, ErrorHandling, ReportBuilders Classes: CommandLine, Configurable, ContextHandler, Error, FieldClash, InvalidPlugin, Linter, Mediator, Mill, MissingContext, Mustache, OverriddenDefault, PluginDescription, PluginLoader, Report, ReportBuilder, ReportFormatter, Template, TemplateListBuilder, TemplateReducer, TemplateSet, UIApplier, UIConfig, UnusedDefault

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.issue_handlerObject



28
29
30
# File 'lib/diecut.rb', line 28

def issue_handler
  @issue_handler ||= ErrorHandling::AllWarn.new
end

Class Method Details

.clear_pluginsObject



16
17
18
# File 'lib/diecut.rb', line 16

def clear_plugins
  @plugin_loader = nil
end

.kindsObject



45
46
47
48
49
# File 'lib/diecut.rb', line 45

def kinds
  plugins.reduce([]) do |list, plugin|
    list + plugin.kinds
  end.uniq
end

.load_plugins(prerelease = false) ⇒ Object



20
21
22
# File 'lib/diecut.rb', line 20

def load_plugins(prerelease = false)
  plugin_loader.load_plugins(prerelease)
end

.mediator(kind) ⇒ Object



51
52
53
54
55
56
57
58
# File 'lib/diecut.rb', line 51

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

.plugin(name) {|description| ... } ⇒ Object

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.

Parameters:

  • name (String, Symbol)

    Names the plugin so that it can be toggled later

Yield Parameters:

  • description (PluginDescription)

    The description object to configure the plugin with.



41
42
43
# File 'lib/diecut.rb', line 41

def plugin(name, &block)
  plugin_loader.describe_plugin(name, &block)
end

.plugin_loaderObject



8
9
10
# File 'lib/diecut.rb', line 8

def plugin_loader
  @plugin_loader ||= PluginLoader.new
end

.plugin_loader=(loader) ⇒ Object



12
13
14
# File 'lib/diecut.rb', line 12

def plugin_loader=(loader)
  @plugin_loader = loader
end

.pluginsObject



24
25
26
# File 'lib/diecut.rb', line 24

def plugins
  plugin_loader.plugins
end