Richard (richlowe) will kill me for saying this, but this (roughly) how I want code for the next version of Raggle to look:
require 'raggle/engine'
require 'raggle/interface/ncurses'
# load raggle config
Raggle::Config::load_config
# start raggle engine
engine = Raggle::Engine.new
# start interface and bind it to engine
iface_class = Raggle::Config::interfaces[$config['interface']]
iface = iface_class.new(engine)
(He'll be pissed because he was pushing or that forever, and I kept saying I wanted Raggle to be all one file, simple to install and use). Well, it's getting bigger and bigger, and I don't see any other way to keep the code manageable and to do some of the things I plan to do other than splitting it up into separate files.