class Mnemosyne::Registry
Attributes
monitor[R]
Public Class Methods
new()
click to toggle source
# File lib/mnemosyne/registry.rb, line 27 def initialize @registrations = [] @activated = false @monitor = Monitor.new end
Public Instance Methods
activate!()
click to toggle source
# File lib/mnemosyne/registry.rb, line 33 def activate! return if activated? @registrations.each(&method(:activate)) @activated = true end
activated?()
click to toggle source
# File lib/mnemosyne/registry.rb, line 41 def activated? @activated end
register(*args)
click to toggle source
# File lib/mnemosyne/registry.rb, line 45 def register(*args) @registrations << (registration = Registration.new(*args)) activate(registration) if activated? end
required(path)
click to toggle source
# File lib/mnemosyne/registry.rb, line 51 def required(path) return unless activated? return unless (set = monitor.delete(path)) set.each(&method(:activate)) end
Private Instance Methods
activate(registration)
click to toggle source
# File lib/mnemosyne/registry.rb, line 62 def activate(registration) if registration.installable? registration.install else monitor << registration end end