From: Robert Klemme Date: 2003-11-20T23:37:20+09:00 Subject: Re: Plugin-API "Christian Kruse" schrieb im Newsbeitrag news:8mgipb.a13.ln@news.defunced.de... > Hi there, > > I'm writing an application in Ruby which should be easy to extend. One > should be able to write a plugin for this application and should be able > to load it with an entry in the config file, e.g. > > Load ContentFilter > > Perl I would use eval statements like > > eval "use $modname"; > die $@ if $@; > > to load the plugin. In Perl the plugin would look like the following: > > push @{$main::Plugins->{state}},new Module; > > package Module; > > sub new() { > } > .... > > 1; > > What's the "ruby way" to do this? Assuming the config file is evaluated as ruby code you can do: 15:33:28 [temp]: for file in PluginBase.rb SomePlugin.rb config.rb application.rb ; do echo "---- $file ----" ; cat "$file" ; done ---- PluginBase.rb ---- class PluginBase end ---- SomePlugin.rb ---- require 'PluginBase' class PluginClass < PluginBase # functionality end $plugin_registry << PluginClass ---- config.rb ---- require 'SomePlugin' ---- application.rb ---- # other classes $plugin_registry = [] eval File.readlines("config.rb").join p $plugin_registry 15:33:36 [temp]: As easy as that... robert