Hi -- On Thu, 17 Sep 2009, Dylan Lukes wrote: > 7stud -- wrote: >> 7stud -- wrote: >>> Where is the plugin() method? >> >> ruby is telling you, "Hey guy who names every variable 'plugin'! >> There's no plugin method defined anywhere." > > Correct, there is no plugin method. Here is some slightly modified code > and the variables it references: First of all, let's make Ruby do more of the work :-) This is untested, but I think it will give you at least some ideas on how to neaten up the code. In particular, note that there's probably no reason to convert the classes back and forth from strings. (Even if you need to do that, just use the #name method.) module Plugin def initialize(server, config) end def run end end class BackupPlugin include Plugin end class MessagePlugin include Plugin end class KickPlugin include Plugin end PLUGINS = [ BackupPlugin, MessagePlugin, KickPlugin ] CONFIG = { BackupPlugin => { "interval" => (30 * 60), "directory" => "backups" } } class MyServer def start_plugins PLUGINS.map {|plugin| plugin(self, CONFIG[plugin]) } # !!!! end end Of course, the problem is still there. What exactly do you want to do? plugin is a class. Do you want an instance of it? If so: plugin.new(self, CONFIG[plugin]) One way or another, you need a method name. David -- David A. Black, Director Ruby Power and Light, LLC (http://www.rubypal.com) Ruby/Rails training, consulting, mentoring, code review Book: The Well-Grounded Rubyist (http://www.manning.com/black2)