Module: Kumogata2::Plugin
- Defined in:
- lib/kumogata2/plugin.rb
Defined Under Namespace
Class Method Summary collapse
- .find_by_ext(ext) ⇒ Object
- .load_plugins ⇒ Object
- .plugin_by_name ⇒ Object
- .plugins ⇒ Object
- .register(name, exts, klass) ⇒ Object
Class Method Details
.find_by_ext(ext) ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/kumogata2/plugin.rb', line 18 def find_by_ext(ext) plgn = self.plugins.reverse.find do |i| i.ext.include?(ext) end plgn ? plgn.type : nil end |
.load_plugins ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/kumogata2/plugin.rb', line 34 def load_plugins plgns = Gem::Specification.find_all.select {|i| i.name =~ /\Akumogata2-plugin-/ } plgns.each do |plgns_spec| name = plgns_spec.name path = File.join(name.split('-', 3)) begin require path rescue LoadError => e Kumogata2::Logger::Helper.log(:warn, "Cannot load plugin: #{name}: #{e}", color: :yellow) end end end |
.plugin_by_name ⇒ Object
26 27 28 |
# File 'lib/kumogata2/plugin.rb', line 26 def plugin_by_name @plugins end |
.plugins ⇒ Object
30 31 32 |
# File 'lib/kumogata2/plugin.rb', line 30 def plugins @plugins.map {|_, v| v } end |
.register(name, exts, klass) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/kumogata2/plugin.rb', line 3 def register(name, exts, klass) name = name.to_s @plugins ||= Hashie::Mash.new if @plugins.has_key?(name) Kumogata2::Logger::Helper.log(:warn, "Plugin has already been registered: #{name}", color: :yellow) end @plugins[name] = { name: name, type: klass, ext: exts.map(&:to_s), } end |