<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>config/boot.rb</filename>
    </added>
    <added>
      <filename>lib/lokii/servers/gsm_proxy.rb</filename>
    </added>
    <added>
      <filename>lib/lokii/servers/gsm_server.rb</filename>
    </added>
    <added>
      <filename>lib/lokii/servers/memoy_server.rb</filename>
    </added>
    <added>
      <filename>templates/Rakefile</filename>
    </added>
    <added>
      <filename>templates/app/handlers/i_love_you_handler.rb</filename>
    </added>
    <added>
      <filename>templates/app/handlers/ping_handler.rb</filename>
    </added>
    <added>
      <filename>templates/app/models/inbox.rb</filename>
    </added>
    <added>
      <filename>templates/app/models/multipart_inbox.rb</filename>
    </added>
    <added>
      <filename>templates/app/models/outbox.rb</filename>
    </added>
    <added>
      <filename>templates/app/models/worker.rb</filename>
    </added>
    <added>
      <filename>templates/test/handlers/i_love_you_handler_test.rb</filename>
    </added>
    <added>
      <filename>templates/test/test_helper.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,6 +1,8 @@
+.DS_Store
 config/database.yml
 config/smsd.yml
 config/settings.yml
-.DS_Store
+db
 notes
-pkg
\ No newline at end of file
+pkg
+script/smsd
\ No newline at end of file</diff>
      <filename>.gitignore</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,34 @@
 GEM_NAME = 'lokii'
 
+require File.join(File.expand_path(File.dirname(__FILE__)), 'config', 'boot.rb')
+
+require 'rake'
+require 'rake/testtask'
+require 'rake/rdoctask'
+
+desc 'Test the lokii gem'
+Rake::TestTask.new(:test) do |t|
+  t.libs &lt;&lt; 'config'
+  t.libs &lt;&lt; 'lib'
+  t.libs &lt;&lt; 'test'
+  t.pattern = File.join('test', '**', '*_test.rb')
+  t.verbose = true
+end
+ 
+desc 'Generate documentation for lokii'
+Rake::RDocTask.new(:rdoc) do |rdoc|
+  rdoc.rdoc_dir = 'rdoc'
+  rdoc.title = 'Transceivers'
+  rdoc.options &lt;&lt; '--line-numbers' &lt;&lt; '--inline-source'
+  rdoc.rdoc_files.include('README')
+  rdoc.rdoc_files.include(File.join('lib', '**', '*.rb'))
+end
+
+Dir[File.join('tasks', '**', '*.rake')].each { |rake| load rake }
+
+# By default, we test. We love tests.
+task :default =&gt; [:test]
+
 begin
   require 'jeweler'
   Jeweler::Tasks.new do |s|
@@ -9,7 +38,7 @@ begin
     s.homepage    = &quot;http://socialrange.org/&quot;
     s.description = &quot;Lokii is a Ruby SMS framework for ultimate awesomeness and with configurable servers and handlers.&quot;
     s.authors     = [&quot;Jeff Rafter&quot;]
-    s.files       = FileList[&quot;[A-Z]*.*&quot;, &quot;{bin,lib,test,script,examples}/**/*&quot;] + [&quot;config/init.rb&quot;, &quot;config/process.rb&quot;, &quot;config/settings.example.yml&quot;, &quot;config/database.example.yml&quot;, &quot;config/messages.example.yml&quot;]
+    s.files       = FileList[&quot;[A-Z]*.*&quot;, &quot;{app,bin,examples,lib,script,templates}/**/*&quot;] + [&quot;config/boot.rb&quot;, &quot;config/init.rb&quot;, &quot;config/process.rb&quot;, &quot;config/settings.example.yml&quot;, &quot;config/database.example.yml&quot;, &quot;config/messages.example.yml&quot;]
     s.executables = &quot;lokii&quot;
   end
 rescue LoadError
@@ -20,19 +49,29 @@ def windows?
   false
 end
  
-desc 'Uninstall the current gem'
-task :uninstall do
-  list = `gem list #{GEM_NAME}`
-  installed = list =~ /#{GEM_NAME}/m
-  puts &quot;Uninstalling #{GEM_NAME}&quot; if installed
-  sh &quot;#{'sudo ' unless windows?}gem uninstall #{GEM_NAME}&quot; if installed
+def remove(task) 
+  Rake.application.instance_variable_get(&quot;@tasks&quot;).delete(task)
 end
- 
-desc 'Install the package as a gem'
-task :install =&gt; [:uninstall, :gemspec] do
-  sh &quot;rm -rf pkg&quot;
-  sh &quot;mkdir pkg&quot;
-  sh &quot;gem build #{GEM_NAME}.gemspec&quot;
-  sh &quot;mv *.gem pkg&quot;
-  sh &quot;#{'sudo ' unless windows?}gem install pkg/*.gem --no-rdoc --no-ri&quot;
+  
+remove 'gem'
+remove 'gem:build'
+remove 'gem:install'
+
+namespace :jeweler do 
+  desc 'Uninstall the current gem'
+  task :uninstall do
+    list = `gem list #{GEM_NAME}`
+    installed = list =~ /#{GEM_NAME}/m
+    puts &quot;Uninstalling #{GEM_NAME}&quot; if installed
+    sh &quot;#{'sudo' unless windows?} gem uninstall #{GEM_NAME}&quot; if installed
+  end
+   
+  desc 'Install the package as a gem'
+  task :install =&gt; [:uninstall, :gemspec] do
+    sh &quot;rm -rf pkg&quot;
+    sh &quot;mkdir pkg&quot;
+    sh &quot;gem build #{GEM_NAME}.gemspec&quot;
+    sh &quot;mv *.gem pkg&quot;
+    sh &quot;#{'sudo' unless windows?} gem install pkg/*.gem --no-rdoc --no-ri&quot;
+  end
 end
\ No newline at end of file</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,4 @@
 #!/usr/bin/env ruby
-require 'rubygems'
 require 'fileutils'
 
 LOCATION_ROOT = File.join(File.dirname(__FILE__), &quot;..&quot;)
@@ -15,6 +14,7 @@ def copy(f, t = nil)
 end
 
 def usage
+  puts &quot;&quot;
   puts &quot;Usage:&quot; 
   puts &quot;&quot;
   puts &quot;  lokii create [name] - Creates a lokii directory at name or ./lokii&quot;
@@ -39,15 +39,18 @@ if ARGV.length &gt;= 1 &amp;&amp; ![&quot;start&quot;, &quot;stop&quot;, &quot;run&quot;, &quot;restart&quot;].include?(ARGV[0])
   end
   # Generate it.
   FileUtils.mkdir(DEST)
-  [&quot;log&quot;, &quot;tmp&quot;, &quot;config&quot;, &quot;app&quot;, &quot;script&quot;].each do |folder|
+  [&quot;log&quot;, &quot;tmp&quot;, &quot;config&quot;, &quot;app&quot;, &quot;script&quot;, &quot;test&quot;].each do |folder|
     FileUtils.mkdir(j(DEST, folder))
   end
 
-  # PIDS
+  # Folders
   FileUtils.mkdir(j(DEST, 'tmp', 'pids'))
   FileUtils.mkdir(j(DEST, 'app', 'handlers'))
   FileUtils.mkdir(j(DEST, 'app', 'models'))
   FileUtils.mkdir(j(DEST, 'app', 'servers'))
+  FileUtils.mkdir(j(DEST, 'test', 'handlers'))
+  FileUtils.mkdir(j(DEST, 'test', 'models'))
+  FileUtils.mkdir(j(DEST, 'test', 'servers'))
   
   puts &quot;Writing Settings&quot;
   copy j(&quot;config&quot;, &quot;settings.example.yml&quot;), j(&quot;config&quot;, &quot;settings.yml&quot;)
@@ -56,12 +59,18 @@ if ARGV.length &gt;= 1 &amp;&amp; ![&quot;start&quot;, &quot;stop&quot;, &quot;run&quot;, &quot;restart&quot;].include?(ARGV[0])
   copy j(&quot;config&quot;, &quot;database.example.yml&quot;), j(&quot;config&quot;, &quot;database.yml&quot;)
   copy j(&quot;config&quot;, &quot;messages.example.yml&quot;), j(&quot;config&quot;, &quot;messages.yml&quot;)
   
+  puts &quot;Writing Boot&quot;
+  copy j(&quot;config&quot;, &quot;boot.rb&quot;)  
+
   puts &quot;Writing Initializer&quot;
   copy j(&quot;config&quot;, &quot;init.rb&quot;)
   
   puts &quot;Writing Process&quot;
   copy j(&quot;config&quot;, &quot;process.rb&quot;)
   
+  puts &quot;Writing Rakefile&quot;
+  copy j(&quot;templates&quot;, &quot;Rakefile&quot;), j(&quot;Rakefile&quot;)
+  
   puts &quot;Copying start scripts&quot;
   copy j(&quot;script&quot;, &quot;console&quot;)
   copy j(&quot;script&quot;, &quot;daemon&quot;)
@@ -71,10 +80,15 @@ if ARGV.length &gt;= 1 &amp;&amp; ![&quot;start&quot;, &quot;stop&quot;, &quot;run&quot;, &quot;restart&quot;].include?(ARGV[0])
   FileUtils.chmod 0755, j(DEST, &quot;script&quot;, &quot;lokii&quot;)
   
   puts &quot;Copying example handlers&quot;
-  copy j(&quot;lib&quot;, &quot;lokii&quot;, &quot;handlers&quot;, &quot;ping_handler.rb&quot;), j(&quot;app&quot;, &quot;handlers&quot;, &quot;ping_handler.rb&quot;)
-  copy j(&quot;lib&quot;, &quot;lokii&quot;, &quot;handlers&quot;, &quot;i_love_you_handler.rb&quot;), j(&quot;app&quot;, &quot;handlers&quot;, &quot;i_love_you_handler.rb&quot;)
-  
+  copy j(&quot;templates&quot;, &quot;app&quot;, &quot;handlers&quot;, &quot;ping_handler.rb&quot;), j(&quot;app&quot;, &quot;handlers&quot;, &quot;ping_handler.rb&quot;)
+  copy j(&quot;templates&quot;, &quot;app&quot;, &quot;handlers&quot;, &quot;i_love_you_handler.rb&quot;), j(&quot;app&quot;, &quot;handlers&quot;, &quot;i_love_you_handler.rb&quot;)
+
+  puts &quot;Building test environment&quot;
+  copy j(&quot;templates&quot;, &quot;test&quot;, &quot;test_helper.rb&quot;), j(&quot;test&quot;, &quot;test_helper.rb&quot;)
+  copy j(&quot;templates&quot;, &quot;test&quot;, &quot;handlers&quot;, &quot;i_love_you_handler_test.rb&quot;), j(&quot;test&quot;, &quot;handlers&quot;, &quot;i_love_you_handler_test.rb&quot;)  
+
   puts &quot;Done&quot;
+
 elsif ARGV.length &gt;= 1
   if !File.exist?(j(&quot;script&quot;, &quot;daemon&quot;))
     puts &quot;This isn't a lokii directory.&quot;
@@ -82,6 +96,7 @@ elsif ARGV.length &gt;= 1
     exit(1)
   end
   exec &quot;ruby ./script/daemon #{ARGV.map {|a| a.include?(&quot; &quot;) ? &quot;\&quot;#{a}\&quot;&quot; : a }.join(&quot; &quot;)}&quot;
+
 else
   if !File.exist?(j(&quot;script&quot;, &quot;lokii&quot;))
     puts &quot;This isn't a lokii directory.&quot;</diff>
      <filename>bin/lokii</filename>
    </modified>
    <modified>
      <diff>@@ -1,14 +1,20 @@
+require 'rubygems'
 require 'lokii'
 
-Lokii::Config.setup
+# Only option currently is :database
+Lokii::Config.setup do |config|
+  config.options[:database] = false
+end
 
 # Lokii won't do anything unless a server is activated. By default it comes with
 # two servers: database_server and file_server. These are simple servers that
 # implement the checking, processing and saying, either through a database 
 # (which can be used in conjunction with gnokii/smsd and others) or through 
 # a watched directory.
-require File.join('lokii', 'servers', 'database_server')
-Lokii::Processor.servers = Lokii::DatabaseServer.new
+require 'lokii/servers/gsm_server'
+
+# Register the server with the processor
+Lokii::Processor.servers = Lokii::GsmServer.new
 
 # Once you have selected a server you need to register the appropriate handlers
 # By example a PingHandler and ILoveYouHandler are registered. Handlers are</diff>
      <filename>config/init.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,7 @@
 development:
   interval: 1
   verbose: false
+  ports: /dev/cu.usbmodem1a21
   log: log/development.log
   err: log/development.err
   pid: tmp/pids/lokii.pid</diff>
      <filename>config/settings.example.yml</filename>
    </modified>
    <modified>
      <diff>@@ -1,9 +1,5 @@
-require 'rubygems'
-require 'active_record'
-require 'active_support'
-
 require File.join('lokii', 'logger')
 require File.join('lokii', 'config')
 require File.join('lokii', 'server')
 require File.join('lokii', 'handler')
-require File.join('lokii', 'processor')
+require File.join('lokii', 'processor')
\ No newline at end of file</diff>
      <filename>lib/lokii.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,9 +1,23 @@
+require 'yaml'
+
+class Hash
+  def symbolize_keys!
+    each do |k,v| 
+      sym = k.respond_to?(:to_sym) ? k.to_sym : k 
+      self[sym] = Hash === v ? v.symbolize_keys! : v 
+      delete(k) unless k == sym
+    end
+    self
+  end
+end
+
 module Lokii
   class Config    
-    cattr_accessor :configuration, :settings, :database, :messages
-
-    def self.setup(options = {})
-      load_config(options)
+    def self.setup(&amp;block)
+      define_accessors :options, :configuration, :settings, :database, :messages
+      self.options = {}
+      block.call(self)
+      load_config
       load_defaults
       load_application
       setup_defaults
@@ -35,23 +49,23 @@ module Lokii
 
   private
   
-    def self.load_config(options = {})
+    def self.load_config
       self.configuration = {}
-      self.database = YAML.load_file(File.join(self.root, 'config', 'database.yml'))
+      self.database = YAML.load_file(File.join(self.root, 'config', 'database.yml')) rescue nil
       self.messages = YAML.load_file(File.join(self.root, 'config', 'messages.yml')) rescue nil
       self.settings = YAML.load_file(File.join(self.root, 'config', 'settings.yml')) 
-      self.load_settings(options)
+      self.load_settings
       self.map_config
     end  
     
-    def self.load_settings(options = {})
+    def self.load_settings
       self.settings.symbolize_keys!
-      self.configuration.merge!(self.settings[self.environment].merge(options))
+      self.configuration.merge!(self.settings[self.environment].merge(self.options))
       self.configuration.symbolize_keys!
     end
      
     def self.map_config  
-      self.database.symbolize_keys!
+      self.database.symbolize_keys! if self.database
       self.messages.symbolize_keys! if self.messages
       
       mod = Module.new do
@@ -72,7 +86,6 @@ module Lokii
     end
     
     def self.load_defaults
-      require File.join('lokii', 'models', 'worker')
     end
 
     def self.load_application
@@ -87,10 +100,18 @@ module Lokii
     end
     
     def self.setup_database
+      return unless self.options[:database]
+      require 'active_record'
       ActiveRecord::Base.establish_connection(Lokii::Config.database[Lokii::Config.environment])
     rescue Exception =&gt; e
       Lokii::Logger.error &quot;Could not initialize the database #{e.to_yaml}&quot;
     end
     
+    def self.define_accessors(*args) 
+      args.each {|attr|
+        class_eval(&quot;unless defined? @@#{attr}\n@@#{attr} = nil\nend\n\ndef self.#{attr}\n@@#{attr}\nend\n\ndef #{attr}\n@@#{attr}\nend\n&quot;, __FILE__, __LINE__)
+        class_eval(&quot;unless defined? @@#{attr}\n@@#{attr} = nil\nend\n\ndef self.#{attr}=(obj)\n@@#{attr} = obj\nend\n\ndef #{attr}=(obj)\n@@#{attr} = obj\nend\n&quot;, __FILE__, __LINE__)    
+      }
+    end
   end  
 end  
\ No newline at end of file</diff>
      <filename>lib/lokii/config.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,16 +1,14 @@
 module Lokii
   class Handler
-    attr_accessor :message, :worker, :server
+    attr_accessor :message, :server
         
     def initialize
       @message = nil
-      @worker = nil
       @server = nil
     end
 
-    def handle(message, worker, server)
+    def handle(message, server)
       @message = message
-      @worker = worker      
       @server = server
       process 
     end
@@ -24,8 +22,8 @@ module Lokii
     end
 
     def reply(text)
-      Lokii::Logger.debug &quot;Sending reply to #{message.number}&quot;
-      @server.say(text, message.number, message.id)
+      Lokii::Logger.debug &quot;Sending reply to #{message[:number]}&quot;
+      @server.say(text, message[:number], message)
     end
     
     def halt</diff>
      <filename>lib/lokii/handler.rb</filename>
    </modified>
    <modified>
      <diff>@@ -11,10 +11,17 @@ module Lokii
   # sent to the specified log file (and not the console). You can configure the
   # output log file in +config/settings.yml+.   
   class Logger    
-    cattr_accessor :logger
-    
     class &lt;&lt; self
-          
+      @@logger = nil 
+
+      def logger
+        @@logger
+      end
+      
+      def logger=(value)
+        @@logger = value
+      end
+                
       def method_missing(name, *args, &amp;blk)
         self.setup  
         self.logger.send(name, *args, &amp;blk)</diff>
      <filename>lib/lokii/logger.rb</filename>
    </modified>
    <modified>
      <diff>@@ -54,19 +54,18 @@ module Lokii
     
   private
 
-    def handle(message)
-      message = message
-      worker = Worker.active.find(:first, :conditions =&gt; {:number =&gt; message.number})
-      return unless worker
-      Lokii::Logger.debug &quot;&quot;
-      Lokii::Logger.debug &quot;Handling message\n#{message.to_yaml}&quot;
+    def handle(message)        
+      Lokii::Logger.debug &quot;\nHandling message&quot;
+      Lokii::Logger.debug &quot;:sender: #{message[:number]}&quot;
+      Lokii::Logger.debug &quot;:sent: #{message[:created_at]}&quot;
+      Lokii::Logger.debug &quot;:received: #{message[:processed_at]}&quot;
+      Lokii::Logger.debug &quot;:text: #{message[:text]}&quot;
       catch :halt do
         handlers.each {|handler|
-          handler.handle(message, worker, self)
-          break if message.processed &gt; 0
+          handler.handle(message, self)
         }
       end  
-      complete(message) unless message.processed?
+      complete(message) unless message[:processed]
     end
     
   end</diff>
      <filename>lib/lokii/server.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,12 +6,12 @@ Gem::Specification.new do |s|
 
   s.required_rubygems_version = Gem::Requirement.new(&quot;&gt;= 0&quot;) if s.respond_to? :required_rubygems_version=
   s.authors = [&quot;Jeff Rafter&quot;]
-  s.date = %q{2008-12-04}
+  s.date = %q{2009-02-04}
   s.default_executable = %q{lokii}
   s.description = %q{Lokii is a Ruby SMS framework for ultimate awesomeness and with configurable servers and handlers.}
   s.email = %q{jeff@socialrange.org}
   s.executables = [&quot;lokii&quot;]
-  s.files = [&quot;README.textile&quot;, &quot;VERSION.yml&quot;, &quot;bin/lokii&quot;, &quot;lib/lokii&quot;, &quot;lib/lokii/config.rb&quot;, &quot;lib/lokii/handler.rb&quot;, &quot;lib/lokii/handlers&quot;, &quot;lib/lokii/handlers/i_love_you_handler.rb&quot;, &quot;lib/lokii/handlers/ping_handler.rb&quot;, &quot;lib/lokii/logger.rb&quot;, &quot;lib/lokii/mapper.rb&quot;, &quot;lib/lokii/models&quot;, &quot;lib/lokii/models/inbox.rb&quot;, &quot;lib/lokii/models/multipart_inbox.rb&quot;, &quot;lib/lokii/models/outbox.rb&quot;, &quot;lib/lokii/models/worker.rb&quot;, &quot;lib/lokii/processor.rb&quot;, &quot;lib/lokii/server.rb&quot;, &quot;lib/lokii/servers&quot;, &quot;lib/lokii/servers/database_server.rb&quot;, &quot;lib/lokii.rb&quot;, &quot;test/test_helper.rb&quot;, &quot;test/unit&quot;, &quot;test/unit/i_love_you_handler_test.rb&quot;, &quot;script/console&quot;, &quot;script/daemon&quot;, &quot;script/lokii&quot;, &quot;script/smsd&quot;, &quot;config/init.rb&quot;, &quot;config/process.rb&quot;, &quot;config/settings.example.yml&quot;, &quot;config/database.example.yml&quot;, &quot;config/messages.example.yml&quot;]
+  s.files = [&quot;README.textile&quot;, &quot;VERSION.yml&quot;, &quot;app/handlers&quot;, &quot;app/handlers/i_love_you_handler.rb&quot;, &quot;app/handlers/ping_handler.rb&quot;, &quot;bin/lokii&quot;, &quot;lib/lokii&quot;, &quot;lib/lokii/config.rb&quot;, &quot;lib/lokii/handler.rb&quot;, &quot;lib/lokii/handlers&quot;, &quot;lib/lokii/handlers/i_love_you_handler.rb&quot;, &quot;lib/lokii/handlers/ping_handler.rb&quot;, &quot;lib/lokii/logger.rb&quot;, &quot;lib/lokii/models&quot;, &quot;lib/lokii/models/inbox.rb&quot;, &quot;lib/lokii/models/multipart_inbox.rb&quot;, &quot;lib/lokii/models/outbox.rb&quot;, &quot;lib/lokii/models/worker.rb&quot;, &quot;lib/lokii/processor.rb&quot;, &quot;lib/lokii/server.rb&quot;, &quot;lib/lokii/servers&quot;, &quot;lib/lokii/servers/database_server.rb&quot;, &quot;lib/lokii/servers/gsm_proxy.rb&quot;, &quot;lib/lokii/servers/gsm_server.rb&quot;, &quot;lib/lokii/servers/memoy_server.rb&quot;, &quot;lib/lokii.rb&quot;, &quot;script/console&quot;, &quot;script/daemon&quot;, &quot;script/lokii&quot;, &quot;script/smsd&quot;, &quot;templates/Rakefile&quot;, &quot;templates/test&quot;, &quot;templates/test/handlers&quot;, &quot;templates/test/handlers/i_love_you_handler_test.rb&quot;, &quot;templates/test/test_helper.rb&quot;, &quot;config/boot.rb&quot;, &quot;config/init.rb&quot;, &quot;config/process.rb&quot;, &quot;config/settings.example.yml&quot;, &quot;config/database.example.yml&quot;, &quot;config/messages.example.yml&quot;]
   s.homepage = %q{http://socialrange.org/}
   s.require_paths = [&quot;lib&quot;]
   s.rubygems_version = %q{1.3.1}</diff>
      <filename>lokii.gemspec</filename>
    </modified>
    <modified>
      <diff>@@ -1,16 +1,9 @@
 #!/usr/bin/env ruby
-require 'rubygems'
 require 'daemons'
 
-LOKII_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
-LOKII_ENV = ENV['LOKII_ENV'] || 'development'
 LOKII_DAEMON = true
 
-if File.exist?(File.join(LOKII_ROOT, 'config', 'init.rb'))
-  $:.unshift(File.join(LOKII_ROOT, 'config'))
-end
-
-require 'init'
+require File.join(File.dirname(__FILE__), '..', 'config', 'boot'))
 
 if ARGV.empty?
   &quot;Usage: lokii [connect|disconnect|start|stop|restart]&quot;</diff>
      <filename>script/daemon</filename>
    </modified>
    <modified>
      <diff>@@ -1,14 +1,5 @@
 #!/usr/bin/env ruby
-require 'rubygems'
-
-LOKII_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
-LOKII_ENV = ENV['LOKII_ENV'] || 'development'
-
-if File.exist?(File.join(LOKII_ROOT, 'config', 'init.rb'))
-  $:.unshift(File.join(LOKII_ROOT, 'config'))
-end
-
-require 'init'
+require File.join(File.dirname(__FILE__), '..', 'config', 'boot')
 
 # Check if it is already running
 if Lokii::Processor.running?</diff>
      <filename>script/lokii</filename>
    </modified>
    <modified>
      <diff>@@ -1,36 +1,14 @@
-require 'rubygems'
-
-require 'test/unit'
-require 'context'
-require 'matchy'
-require 'stump'
-
-LOKII_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..')) unless defined? LOKII_ROOT
 LOKII_ENV = 'test' unless defined? LOKII_ENV
 
-if File.exist?(File.join(LOKII_ROOT, 'lib', 'lokii.rb'))
-  $:.unshift(File.join(LOKII_ROOT, 'lib'))
-end
-
-require 'lokii'
-
-# Load custom expectations
-Dir[File.expand_path(File.join(LOKII_ROOT, 'test', 'expectations', '*.rb'))].uniq.each do |file|
-  require file
-end
-
-alias :running :lambda
+require File.join(File.expand_path(File.dirname(__FILE__)), '..', 'config', 'boot.rb')
+require 'test/unit'
+require 'shoulda'
 
 class Test::Unit::TestCase
-  #self.use_transactional_fixtures = true
-  #self.use_instantiated_fixtures  = false
-end
+  # self.use_transactional_fixtures = true
+  # self.use_instantiated_fixtures  = false
 
-Dir[File.expand_path(File.join(LOKII_ROOT, 'test', '**', '*_test.rb'))].uniq.each do |file|
-  require file
+  def message(text, number=nil)
+    Inbox.new(:text =&gt; text, :number =&gt; number)
+  end
 end
-
-
-def message(text, number=nil)
-  Inbox.new(:text =&gt; text, :number =&gt; number)
-end
\ No newline at end of file</diff>
      <filename>test/test_helper.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>lib/lokii/handlers/i_love_you_handler.rb</filename>
    </removed>
    <removed>
      <filename>lib/lokii/handlers/ping_handler.rb</filename>
    </removed>
    <removed>
      <filename>lib/lokii/mapper.rb</filename>
    </removed>
    <removed>
      <filename>lib/lokii/models/worker.rb</filename>
    </removed>
    <removed>
      <filename>test/unit/i_love_you_handler_test.rb</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>e8c9735abbb9322826c476a8777c895d74963a9c</id>
    </parent>
  </parents>
  <author>
    <name>Jeff Rafter</name>
    <email>jeff@baobabhealth.org</email>
  </author>
  <url>http://github.com/jeffrafter/lokii/commit/ba8cb3821b66ac7995581057443bc92177a633b0</url>
  <id>ba8cb3821b66ac7995581057443bc92177a633b0</id>
  <committed-date>2009-02-05T13:03:53-08:00</committed-date>
  <authored-date>2009-02-05T13:03:53-08:00</authored-date>
  <message>Reorganization to remove some of the dependencies</message>
  <tree>18d8e1aa0c068adc8630ba924279c365e81d68e6</tree>
  <committer>
    <name>Jeff Rafter</name>
    <email>jeff@baobabhealth.org</email>
  </committer>
</commit>
