class Diecut::Mediator

Attributes

plugins[R]

Public Class Methods

new() click to toggle source
# File lib/diecut/mediator.rb, line 8
def initialize
  @plugins = []
  @activated = {}
end

Public Instance Methods

activate(plug_name) click to toggle source
# File lib/diecut/mediator.rb, line 23
def activate(plug_name)
  @activated[plug_name] = true
end
activated?(plug_name) click to toggle source
# File lib/diecut/mediator.rb, line 19
def activated?(plug_name)
  @activated[plug_name]
end
activated_plugins() click to toggle source
# File lib/diecut/mediator.rb, line 31
def activated_plugins
  @plugins.find_all do |plugin|
    @activated[plugin.name]
  end
end
add_plugin(plug, activated) click to toggle source
# File lib/diecut/mediator.rb, line 14
def add_plugin(plug, activated)
  @activated[plug.name] = activated
  @plugins << plug
end
apply_user_input(ui, context_class) click to toggle source
# File lib/diecut/mediator.rb, line 70
def apply_user_input(ui, context_class)
  applier = UIApplier.new
  applier.plugins = activated_plugins
  applier.ui = ui
  applier.context = context_class.new
  applier.apply

end
build_example_ui() click to toggle source

Set up context default settings set up ui settings from context

< User gets involved >

# File lib/diecut/mediator.rb, line 42
def build_example_ui
  ui_class = UIConfig.build_subclass("Example UI")

  handler = ContextHandler.new
  handler.context_class = Configurable.build_subclass("dummy context")
  handler.ui_class = ui_class
  handler.plugins = @plugins

  handler.backfill_options_to_context
  handler.apply_to_ui

  handler.ui_class
end
build_ui_class(context_class) click to toggle source
# File lib/diecut/mediator.rb, line 56
def build_ui_class(context_class)
  ui_class = UIConfig.build_subclass("User Interface")

  handler = ContextHandler.new
  handler.context_class = context_class
  handler.ui_class = ui_class
  handler.plugins = activated_plugins

  handler.apply_simple_defaults
  handler.apply_to_ui

  handler.ui_class
end
deactivate(plug_name) click to toggle source
# File lib/diecut/mediator.rb, line 27
def deactivate(plug_name)
  @activated[plug_name] = false
end