module Lux::Config::Plugin
Public Instance Methods
folders(namespace=:main)
click to toggle source
get all folders in a namespace
# File lib/lux/config/lib/plugin.rb, line 57 def folders namespace=:main name = name.to_sym list = @plugins.values list.select { |it| it.namespace.include?(namespace) } list.map { |it| it.folder } end
get(name)
click to toggle source
# File lib/lux/config/lib/plugin.rb, line 40 def get name @plugins[name.to_s] || die('Plugin "%s" not loaded' % name) end
keys()
click to toggle source
# File lib/lux/config/lib/plugin.rb, line 48 def keys @plugins.keys end
load(arg)
click to toggle source
load specific plugin Lux.plugin
:foo Lux.plugin
'foo/bar' Lux.plugin
.folders
# File lib/lux/config/lib/plugin.rb, line 10 def load arg arg = arg.to_s if arg.is_a?(Symbol) if arg.is_a?(String) arg = arg.include?('/') ? { folder: arg } : { name: arg } end opts = arg.to_opts name: String, folder: String, namespace: Symbol opts.name ||= opts.folder.split('/').last opts.name = opts.name.to_s opts.folder ||= Lux.fw_root.join('plugins', opts.name).to_s opts.namespace = [opts.namespace] unless opts.namespace.is_a?(Array) return @plugins[opts.name] if @plugins[opts.name] die(%{Plugin "#{opts.name}" not found in "#{opts.folder}"}) unless Dir.exist?(opts.folder) @plugins[opts.name] ||= opts base = Pathname.new(opts.folder).join(opts.name, '.rb') if base.exist? require base.to_s else Lux::Config.require_all(opts.folder) end @plugins[opts.name] end
loaded()
click to toggle source
# File lib/lux/config/lib/plugin.rb, line 44 def loaded @plugins.values end
plugins()
click to toggle source
# File lib/lux/config/lib/plugin.rb, line 52 def plugins @plugins end