Module: Mashfeed::Plugin::Loader

Defined in:
lib/mashfeed/plugin.rb

Overview

plugin loader

Instance Method Summary collapse

Instance Method Details

#const_missing(name) ⇒ Object



64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/mashfeed/plugin.rb', line 64

def const_missing(name)
  plugin_name = [self.name.gsub(/Mashfeed::Plugin::/,''), name].join('::')
  filename = File.join(Mashfeed::Plugin.path, Inflector::underscore(plugin_name), 'init.rb')
  eval(<<-__EOM__) unless File.exist?(filename)
    module #{self.name}::#{name}
      extend ::Mashfeed::Plugin::Loader
    end
    #{self.name}::#{name}
  __EOM__
  Mashfeed::Plugin.module_eval(File.read(filename), filename)
  eval([self.name,name].join('::')) 
end