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