<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,4 +1,247 @@
-Dir['task/**/*.rake'].each do |lib|
-  load(lib)
+#!/usr/bin/env ruby
+
+require 'fileutils'
+
+#
+# CORE TEST COVERAGE
+# ----------------------------------------------------------------------------
+
+desc &quot;show core unit test coverage&quot;
+
+task 'coverage' do
+  core_scripts = []
+  cd 'lib/core/facets' do
+    core_scripts = Dir['**/*'].reject{ |s| File.directory?(s) }
+  end
+
+  core_tests = []
+  cd 'test/core' do
+    core_tests = Dir['**/*']
+  end
+
+  core_tests = core_tests.collect do |t|
+    dir, fname = *File.split(t)
+    File.join(dir, fname.sub(/^test_/,''))
+  end
+
+  diff = core_scripts - core_tests
+
+  # remove core collectives
+  diff = diff - %w{
+    array.rb binding.rb cattr.rb class.rb comparable.rb dir.rb
+    enumerable.rb exception.rb hash.rb file.rb filetest.rb float.rb
+    integer.rb kernel.rb matchdata.rb module.rb nilclass.rb
+    numeric.rb proc.rb range.rb regexp.rb string.rb symbol.rb
+    time.rb unboundmethod.rb
+  }
+
+  puts diff.sort.join(&quot;\n&quot;)
+  puts
+  puts &quot;#{diff.size} files uncovered.&quot;
+
+end
+
+
+#
+# GENERATE RDOCS
+# ----------------------------------------------------------------------------
+
+desc &quot;generate rdocs&quot;
+
+task &quot;rdoc&quot; do
+  TEMPLATE  = ENV['RDOC_TEMPLATE'] || 'html'
+  APIOUT    = &quot;doc/rdoc&quot;
+
+  FileUtils.rm_r(APIOUT)
+
+  system &quot;rdoc -a -S -t'Facets Core API' -T #{TEMPLATE} -m README --op '#{APIOUT}/core' README lib/facets/core&quot;
+  #system &quot;rdoc -a -S -t'Facets Lore API' -T #{TEMPLATE} -m README --op '#{APIOUT}/lore' README lib/facets/lore&quot;
+  system &quot;rdoc -a -S -t'Facets More API' -T #{TEMPLATE} -m README --op '#{APIOUT}/more' README lib/facets/more&quot;
+end
+
+#
+# RUN TESTS
+# ----------------------------------------------------------------------------
+
+task 'test' do
+  prepare_tests_all
+end
+
+desc &quot;run all unit tests&quot;
+task 'test:all' do
+  prepare_tests_all
+end
+
+desc &quot;run core unit tests&quot;
+task 'test:core' do
+  prepare_tests_core
+end
+
+#desc &quot;run lore unit tests&quot;
+#task 'test:lore' do
+#  prepare_tests_lore
+#end
+
+desc &quot;run more unit tests&quot;
+task 'test:more' do
+  prepare_tests_more
+end
+
+desc &quot;run all unit tests with ActiveSupport loaded&quot;
+task 'test:all:activesupport' =&gt; [:include_activesupport, 'test:all']
+
+desc &quot;run core unit tests with ActiveSupport loaded&quot;
+task 'test:core:activesupport' =&gt; [:include_activesupport, 'test:core']
+
+#desc &quot;run lore unit tests with ActiveSupport loaded&quot;
+#task 'test:lore:activesupport' =&gt; [:include_activesupport, 'test:lore']
+
+desc &quot;run more unit tests with ActiveSupport loaded&quot;
+task 'test:more:activesupport' =&gt; [:include_activesupport, 'test:more']
+
+task 'include_activesupport' do
+  require 'activesupport'
+end
+
+def add_loadpath(*paths)
+  live = ENV['live']
+
+  unless live
+    # $LOAD_PATH.unshift(File.expand_path('lib/core'))
+    # $LOAD_PATH.unshift(File.expand_path('lib/lore'))
+    # $LOAD_PATH.unshift(File.expand_path('lib/more'))
+    paths.each do |path|
+      $LOAD_PATH.unshift(File.expand_path(path))
+    end
+  end
+
+  puts &quot;RUBY VERSION: #{RUBY_VERSION}&quot;
+  puts &quot;LOAD PATH:\n&quot; + $LOAD_PATH.join(&quot;\n&quot;)
+end
+
+def get_tests(which=&quot;{c,l,m}ore&quot;)
+  if find = ARGV[1..-1].select{|e| e !~ /(^[-]|[=])/ }[0]
+    unless FileTest.file?(find)
+      #find = File.join(find, '**', 'test_*.rb')
+      find = ['test/test_*.rb']
+      find &lt;&lt; File.join(find, which, '**', 'test_*.rb')
+    end
+  else
+    #find = 'test/**/test_*.rb'
+    find = ['test/test_*.rb']
+    find &lt;&lt; &quot;test/#{which}/**/test_*.rb&quot;
+  end
+
+  Dir.glob(find)
+end
+
+def run_tests(files)
+  files.each do |file|
+    next if File.directory?(file)
+    begin
+      puts &quot;Loading: #{file}&quot; if $DEBUG
+      load(file)
+    rescue LoadError
+      puts &quot;Error loading: #{file}&quot;
+    end
+  end
+end
+
+def prepare_tests_all
+  add_loadpath('lib/core','lib/lore','lib/more')
+  files = get_tests
+  run_tests(files)
+end
+
+def prepare_tests_core
+  add_loadpath('lib/core')
+  files = get_tests('core')
+  run_tests(files)
+end
+
+def prepare_tests_lore
+  add_loadpath('lib/lore')
+  files = get_tests('lore')
+  run_tests(files)
+end
+
+def prepare_tests_more
+  add_loadpath('lib/more')
+  files = get_tests('more')
+  run_tests(files)
 end
 
+#def run_tests
+#  live = ENV['live']
+#
+#  unless live
+#    $LOAD_PATH.unshift(File.expand_path('lib/core'))
+#    $LOAD_PATH.unshift(File.expand_path('lib/lore'))
+#    $LOAD_PATH.unshift(File.expand_path('lib/more'))
+#  end
+#
+#  puts &quot;RUBY VERSION: #{RUBY_VERSION}&quot;
+#  puts &quot;LOAD PATH:\n&quot; + $LOAD_PATH.join(&quot;\n&quot;)
+#
+#  if find = ARGV[1..-1].select{|e| e !~ /(^[-]|[=])/ }[0]
+#    unless FileTest.file?(find)
+#      find = File.join(find, '**', 'test_*.rb')
+#    end
+#  else
+#    find = 'test/**/test_*.rb'
+#  end
+#
+#  files = Dir.glob(find)
+#
+#  files.each do |file|
+#    next if File.directory?(file)
+#    begin
+#      puts &quot;Loading: #{file}&quot; if $DEBUG
+#      load(file)
+#    rescue LoadError
+#      puts &quot;Error loading: #{file}&quot;
+#    end
+#  end
+#end
+
+#
+# SETUP/INSTALL
+# ----------------------------------------------------------------------------
+
+def load_setup
+  begin
+    require 'setup'
+    $setup_installed = true
+  rescue LoadError
+    $setup_installed = false
+    puts &quot;NOTP&quot;
+  end
+end
+
+private :load_setup
+
+desc &quot;install to ruby site location&quot;
+task :install do
+  load_setup
+
+  if $setup_installed
+    sh &quot;setup.rb all&quot;
+  else
+    puts &quot;Requires stand-alone Setup.rb.&quot;
+    puts &quot;See http://setup.rubyforge.org&quot;
+    puts &quot;or 'gem install setup'.&quot;
+  end
+end
+
+desc &quot;uninstall from ruby site location&quot;
+task :uninstall do
+  load_setup
+
+  if $setup_installed
+    sh &quot;setup.rb uninstall&quot;
+  else
+    puts &quot;Requires stand-alone Setup.rb.&quot;
+    puts &quot;See http://setup.rubyforge.org&quot;
+    puts &quot;or 'gem install setup'.&quot;
+  end
+end</diff>
      <filename>Rakefile</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>005b73cf50168888f9831ab3a7d8af0ddcb05a82</id>
    </parent>
  </parents>
  <author>
    <name>trans</name>
    <email>transfire@gmail.com</email>
  </author>
  <url>http://github.com/trans/facets/commit/5e4ed76d52d59e77a866f21158fb1ea468e75464</url>
  <id>5e4ed76d52d59e77a866f21158fb1ea468e75464</id>
  <committed-date>2009-08-11T07:37:02-07:00</committed-date>
  <authored-date>2009-08-11T07:37:02-07:00</authored-date>
  <message>merged all Rakefile tasks into main file</message>
  <tree>fb57d044a59f05afba124f6a500af9a267d228a1</tree>
  <committer>
    <name>trans</name>
    <email>transfire@gmail.com</email>
  </committer>
</commit>
