<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -6,9 +6,10 @@
 require 'vying'
 require 'vying/cli/cli'
 
-if CLI::SUBCOMMANDS.include?( ARGV.first )
+if CLI::subcommand?( ARGV.first )
 
   command = ARGV.shift
+  CLI.require_subcommand( command )
   CLI.send( command )
 
 elsif ARGV.first == &quot;--version&quot; || ARGV.first == &quot;-v&quot;</diff>
      <filename>bin/vying</filename>
    </modified>
    <modified>
      <diff>@@ -5,8 +5,6 @@ require 'optparse'
 require 'benchmark'
 require 'vying'
 
-CLI::SUBCOMMANDS &lt;&lt; &quot;bench&quot;
-
 module CLI
   
   def CLI.bench</diff>
      <filename>lib/vying/cli/bench.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,8 +4,6 @@
 require 'optparse'
 require 'vying'
 
-CLI::SUBCOMMANDS &lt;&lt; &quot;bot_rank&quot;
-
 module CLI
 
   module BotRank</diff>
      <filename>lib/vying/cli/bot_rank.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,8 +4,6 @@
 require 'optparse'
 require 'vying'
 
-CLI::SUBCOMMANDS &lt;&lt; &quot;branch&quot;
-
 module CLI
 
   def CLI.branch</diff>
      <filename>lib/vying/cli/branch.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,13 +3,15 @@
 
 module CLI
 
-  SUBCOMMANDS = []
+  SUBCOMMANDS = %w{ bench bot_rank branch play }.freeze
 
-end
+  def self.subcommand?( s )
+    SUBCOMMANDS.include?( s )
+  end
+
+  def self.require_subcommand( s )
+    require &quot;vying/cli/#{s}&quot;
+  end
 
-require 'vying/cli/bench'
-require 'vying/cli/bot_rank'
-require 'vying/cli/branch'
-require 'vying/cli/info'
-require 'vying/cli/play'
+end
 </diff>
      <filename>lib/vying/cli/cli.rb</filename>
    </modified>
    <modified>
      <diff>@@ -13,8 +13,6 @@ rescue LoadError
   Vying::CursesAvailable = false
 end
 
-CLI::SUBCOMMANDS &lt;&lt; &quot;play&quot;
-
 module CLI
 
   module Play</diff>
      <filename>lib/vying/cli/play.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>lib/vying/cli/info.rb</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>187fcbf309c395f200985d4b6a09e39dcb85448b</id>
    </parent>
  </parents>
  <author>
    <name>Eric K Idema</name>
    <email>eki@vying.org</email>
  </author>
  <url>http://github.com/eki/vying/commit/3abcac67cfa808a31ed38378a90dc72d5c82699b</url>
  <id>3abcac67cfa808a31ed38378a90dc72d5c82699b</id>
  <committed-date>2008-09-11T09:21:53-07:00</committed-date>
  <authored-date>2008-09-11T09:21:53-07:00</authored-date>
  <message>Changed the way CLI subcommands are required, now only the requested subcommand
is loaded.

Removed the info command as it no longer makes any sense.</message>
  <tree>913eb14f6b05ad3acc735827ffc3ad9172596986</tree>
  <committer>
    <name>Eric K Idema</name>
    <email>eki@vying.org</email>
  </committer>
</commit>
