<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>lib/core_ext/string.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -18,7 +18,7 @@ ROOT = Pathname(__FILE__).dirname.expand_path
 
 require 'lib/warning_shot/version'
 
-CLEAN.include [&quot;**/.*.sw?&quot;, &quot;pkg&quot;, &quot;lib/*.bundle&quot;, &quot;*.gem&quot;, &quot;doc/rdoc&quot;,&quot;doc/yard&quot;, &quot;test/output/*&quot;, &quot;coverage&quot;, &quot;cache&quot;]
+CLEAN.include [&quot;**/.*.sw?&quot;, &quot;pkg&quot;, &quot;lib/*.bundle&quot;, &quot;*.gem&quot;, &quot;doc/&quot;,&quot;doc/&quot;, &quot;test/output/*&quot;, &quot;coverage&quot;, &quot;cache&quot;]
 Dir['tasks/*.rb'].each {|r| require r}
 
 </diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -1,21 +1,13 @@
 Additional TODOS are at:
 http://warningshot.lighthouseapp.com
 
-WarningShot boot &amp; work (interface &amp; CLI)
-DependencResolver Class should run/report back to caller status 
+====
+Rewrite File stuff using pathname, its sexier
 
-WarningShot logger needs serious love, ie, my output sucks.
-
-========
 WarningShot should have its own set of config files so it can test its self (for WS Developers)
 
-Cyclical healing (loop resolution call until unresolved == 0 or unresolved == last_unresolved)
-
 Gems 
  * Minigems option, prepares gems as minigems
-
-Permissions Resolver
- * chmod, chown
  
 Binary Resolver
  * Apt, Yum, Ports
@@ -62,9 +54,6 @@ QA Resolvers
         - {page: &quot;http://example.com/login&quot;, grade: &quot;&gt;90&quot;}
         - {page: &quot;http://example.com/index&quot;, grade: &quot;&gt;=99&quot;, rollback: &quot;true&quot;}
  
-
-warningshot should get platform information to allow for platfrom specific resolutions
-
 Interfaces for Cap, Vertebra, and Vlad
  
 ==== Old SHit.</diff>
      <filename>TODO</filename>
    </modified>
    <modified>
      <diff>@@ -1,10 +1,33 @@
+require 'open4'
+
 class WarningShot::PermissionResolver
   include WarningShot::Resolver
   order  100
   branch :permission
   description 'Validates mode, user, and group permission on files and directories'
+     
+  module UnixPermissionsInterface;end;  
+  module WindowsPermissionsInterface;end;
        
-  cast do |yaml|
+  if WarningShot.platform != :windows
+    include WarningShot::PermissionResolver::UnixPermissionsInterface
+    #http://www.ruby-doc.org/core/classes/File/Stat.html
+    #http://www.ruby-doc.org/stdlib/libdoc/etc/rdoc/index.html
+    #http://www.ruby-doc.org/stdlib/libdoc/pathname/rdoc/index.html
+    #http://www.ruby-doc.org/stdlib/libdoc/fileutils/rdoc/index.html
+    #http://www.ruby-doc.org/core/classes/File.html#M002574
+  else
+    include WarningShot::PermissionResolver::WindowsPermissionsInterface
+  end     
+  
+  PermissionResource = Struct.new(:path,:target_mode,:target_owner,:target_group) do
+    def owner;end;
+    def group;end;
+    def mode;end;
+  end
+  
+  cast Hash do |yaml|
+    PermissionResource.new
   end
   
   register :test do |dep|</diff>
      <filename>lib/resolvers/permission_resolver.rb</filename>
    </modified>
    <modified>
      <diff>@@ -9,9 +9,9 @@ module WarningShot
         @defaults ||= {
           :environment  =&gt; 'development',
           :resolve      =&gt; false,
-          :config_paths =&gt; [File.join('.','config','warningshot'),File.join('~','.warningshot')],
+          :config_paths =&gt; ['.'  / 'config' / 'warningshot', '~' / 'warningshot'],
           :application  =&gt; '.',
-          :log_path     =&gt; File.join('.','log','warningshot.log'),
+          :log_path     =&gt; '.' / 'log' / 'warningshot.log',
           :log_level    =&gt; :info,
           :growl        =&gt; false,
           :verbose      =&gt; false,</diff>
      <filename>lib/warning_shot/config.rb</filename>
    </modified>
    <modified>
      <diff>@@ -105,7 +105,7 @@ module WarningShot
     def load_configs
       @config[:config_paths].each do |config_path|
         #Parse the global/running env configs out of the YAML files.
-        Dir[File.join(config_path,WarningShot::ConfigExt)].each do |config_file|
+        Dir[config_path / WarningShot::ConfigExt].each do |config_file|
           # Use WarningShot::ConfigExt &amp; regexp on extension to make supporting add'l
           # file types easier in the future
           case File.extname(config_file)</diff>
      <filename>lib/warning_shot/dependency_resolver.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@ module WarningShot
   class Growl
     
     def Growl.say(msg)
-      img = File.join(WarningShot.dir_for(:images),'warning_shot.png')
+      img = WarningShot.dir_for(:images) / 'warning_shot.png'
 
       gmsg = %{growlnotify -t &quot;WarningShot&quot; -n &quot;WarningShot&quot; -m &quot;#{msg}&quot;}
       gmsg += %{ --image #{img}} unless img.nil?</diff>
      <filename>lib/warning_shot/growl.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,29 +3,19 @@ module WarningShot
     class &lt;&lt; self
       def create(path)
         generate_configs(path)
-        #generate_scripts(path,'bash')
-        #generate_scripts(path,'ruby')
       end
     
       def generate_configs(path)
-        from  = File.join(WarningShot.dir_for(:templates),WarningShot::ConfigExt)
+        from  = WarningShot.dir_for(:templates) / WarningShot::ConfigExt
         copy_templates from, path
       end
       
-      #def generate_scripts(path,type)
-      #  scripts_path = File.join('scripts',type)
-      #  from  = File.join(WarningShot.dir_for(:templates),scripts_path,&quot;*&quot;)
-      #  to    = File.join(path,scripts_path)
-
-      #  copy_templates from, to
-      #end 
-      
       private
       def copy_templates(from,to)
         FileUtils.mkdir_p to unless File.exists? to
 
         Dir[from].each do |file|
-          file_dest_path = File.join(to,File.basename(file))
+          file_dest_path = to / File.basename(file)
           # Add .sample if config is already present
           file_dest_path += '.sample' if File.exists? file_dest_path
           FileUtils.cp file, file_dest_path</diff>
      <filename>lib/warning_shot/template_generator.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,14 +5,14 @@ module WarningShot
   PATHS       = {
     :templates  =&gt; 'templates',
     :images     =&gt; 'images',
-    :resolvers =&gt; File.join('lib','warning_shot','resolvers')
+    :resolvers  =&gt; 'lib' / 'warning_shot' / 'resolvers'
   }
   
   ConfigExt = &quot;*.{yml,yaml}&quot;.freeze
   
   class &lt;&lt; self
     def root
-      File.join(File.expand_path(File.dirname(__FILE__)),&quot;..&quot;,&quot;..&quot;)
+      File.expand_path(File.dirname(__FILE__)) / &quot;..&quot; / &quot;..&quot;
     end
     
     # Gets the absolute path for a resource.
@@ -28,7 +28,18 @@ module WarningShot
     # @api public
     def dir_for(dir)
       dir = PATHS[dir.to_sym] || dir.to_s
-      File.join(WarningShot.root,dir)
+      WarningShot.root / dir
+    end
+    
+    def platform
+      case ::Config::CONFIG['host_os']
+      when /darwin/i: :mac
+      when /mswin|windows/i: :windows
+      when /linux/i: :linux
+      when /sunos|solaris/i: :solaris
+      else
+        :unknown
+      end
     end
     
     # the application/framework warningshot is running in</diff>
      <filename>lib/warning_shot/warning_shot.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,13 +4,14 @@ require 'yaml'
 require 'optparse'
 require 'logger'
 require 'set'
+require 'rbconfig'
 
 
 # Load core extensions
-Dir.glob(File.join(File.dirname(__FILE__), &quot;core_ext&quot;,&quot;**&quot;,&quot;*.rb&quot;)).each {|f| require f}
+Dir.glob(File.join(File.dirname(__FILE__), &quot;core_ext&quot;, &quot;**&quot;, &quot;*.rb&quot;)).each {|f| require f}
 
 # Load WarningShot
-Dir.glob(File.join(File.dirname(__FILE__), &quot;warning_shot&quot;,&quot;**&quot;,&quot;*.rb&quot;)).each {|f| require f}
+Dir.glob(File.dirname(__FILE__) / &quot;warning_shot&quot; / &quot;**&quot; / &quot;*.rb&quot;).each {|f| require f}
 
 # Load resolvers
-Dir.glob(File.join(File.dirname(__FILE__), &quot;resolvers&quot;,&quot;**&quot;,&quot;*.rb&quot;)).each {|f| require f}
\ No newline at end of file
+Dir.glob(File.dirname(__FILE__) / &quot;resolvers&quot; / &quot;**&quot; / &quot;*.rb&quot;).each {|f| require f}
\ No newline at end of file</diff>
      <filename>lib/warningshot.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-require File.join(%w(. lib resolvers RESOLVER_NAME))
+require &quot;.&quot; / &quot;lib&quot; / &quot;resolvers&quot; RESOLVER_NAME
 
 describe WarningShot::RESOLVER_NAME do
 </diff>
      <filename>resolver_spec_template.txt</filename>
    </modified>
    <modified>
      <diff>@@ -2,10 +2,19 @@
 # the 'global' environment are always checked
 
 # Each environt takes an array hashes
-# path REQUIRED
-# recursive, mode, user, group OPTIONAL (one required)
+# @param path [String] REQUIRED
+#     the path to check permissions
+# @param mode [String] OPTIONAL
+#     MOde of file 0777, 0755, etc
+# @param user [String]
+#     User that should own resource
+# @param group [STring]
+#     Group that should own resource
+# @param recursive [String]
+#     What methods should be recursvie: 'chmod','chown','both','none'
+# @example
 #      - { path: './public/images', mode: '0777', user: 'www-data', group: 'www-data'}
-#      - { path: '.', mode: '0755', user: 'www-data', group: 'www-data' }
+#      - { path: '.', mode: '0755', user: 'www-data', group: 'www-data', recursive: &quot;both&quot;}
 #      - { path: '/tmp/app_cache/', mode: '0777', user: 'nobody', group: 'nobody' }
 ---
 - :branch: permission</diff>
      <filename>templates/permissions.yml</filename>
    </modified>
    <modified>
      <diff>@@ -1,9 +1,8 @@
 require 'lib/warningshot'
 
-$test_data  = File.join(%w(. test data))
-
-$log_root = File.join(%w(. test log))
-$log_file = File.join($log_root, 'warningshot.log')
+$test_data  = &quot;.&quot; / &quot;test&quot; / &quot;data&quot;
+$log_root   = &quot;.&quot; / &quot;test&quot; / &quot;log&quot;
+$log_file   = $log_root / 'warningshot.log'
 
 FileUtils.mkdir_p $log_root
 </diff>
      <filename>test/spec/spec_helper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-require File.join(%w(. lib resolvers core_lib_resolver))
+require &quot;.&quot; / &quot;lib&quot; / &quot;resolvers&quot; / &quot;core_lib_resolver&quot;
 
 describe WarningShot::CoreLibResolver do
   before :all do</diff>
      <filename>test/spec/unit/resolvers/core_lib_resolver_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,10 +1,10 @@
-require File.join(%w(. lib resolvers directory_resolver))
+require &quot;.&quot; / &quot;lib&quot; / &quot;resolvers&quot; / &quot;directory_resolver&quot;
 
 describe WarningShot::DirectoryResolver do
   before :all do
     WarningShot::DirectoryResolver.logger = $logger
     
-    @@base_path = File.expand_path(File.join(%w(. test data resolvers directory)))
+    @@base_path = File.expand_path(&quot;.&quot; / &quot;test&quot; / &quot;data&quot; / &quot;resolvers&quot; / &quot;directory&quot;)
   end
   
   after :each do
@@ -23,8 +23,8 @@ describe WarningShot::DirectoryResolver do
 
     it 'should create the directory if it does not exist' do      
       control_dir = File.expand_path('.')
-      test_dir1 = File.join(@@base_path,'test1')
-      test_dir2 = File.join(@@base_path,'test2')
+      test_dir1 = @@base_path / 'test1'
+      test_dir2 = @@base_path / 'test2'
       resolver = WarningShot::DirectoryResolver.new control_dir,test_dir1, test_dir2
       resolver.test!
       resolver.passed.length.should be(1)</diff>
      <filename>test/spec/unit/resolvers/directory_resolver_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,12 +1,12 @@
-require File.join(%w(. lib resolvers file_resolver))
+require &quot;.&quot; / &quot;lib&quot; / &quot;resolvers&quot; / &quot;file_resolver&quot;
 
 describe WarningShot::FileResolver do
   before :all do
     WarningShot::FileResolver.logger = $logger
 
-    @@base_path = File.expand_path(File.join(%w(. test data resolvers file)))
-    @@source_path  = File.join(@@base_path,'src')
-    @@dest_path = File.join(@@base_path,'dest')
+    @@base_path = File.expand_path(&quot;.&quot; / &quot;test&quot; / &quot;data&quot; / &quot;resolvers&quot; / &quot;file&quot;)
+    @@source_path   = @@base_path / 'src'
+    @@dest_path     = @@base_path / 'dest'
     FileUtils.mkdir_p @@dest_path
   end
   
@@ -34,8 +34,8 @@ describe WarningShot::FileResolver do
     describe 'with heal instructions' do
       describe 'file does not exist' do
         it 'should add failed dependencies to #failed' do
-          that_file = File.join @@source_path, 'that.txt'
-          this_file = File.join @@dest_path, 'this.txt'
+          that_file = @@source_path / 'that.txt'
+          this_file = @@dest_path / 'this.txt'
           
           fd = WarningShot::FileResolver.new({:source  =&gt; &quot;file://#{that_file}&quot;,:target =&gt; this_file})
           fd.test!
@@ -44,8 +44,8 @@ describe WarningShot::FileResolver do
         end 
         
         it 'should heal a file from file://' do
-          that_file = File.join @@source_path, 'that.txt'
-          this_file = File.join @@dest_path, 'this.txt'
+          that_file = @@source_path / 'that.txt'
+          this_file = @@dest_path / 'this.txt'
           
           fd = WarningShot::FileResolver.new({:source  =&gt; &quot;file://#{that_file}&quot;,:target =&gt; this_file})
           fd.test!
@@ -55,7 +55,7 @@ describe WarningShot::FileResolver do
         end
         
         it 'should heal a file from http://' do
-          fd = WarningShot::FileResolver.new({:source  =&gt; &quot;http://www.example.com/&quot;,:target =&gt; File.join(@@dest_path,'internetz.html')})
+          fd = WarningShot::FileResolver.new({:source  =&gt; &quot;http://www.example.com/&quot;,:target =&gt; (@@dest_path / 'internetz.html')})
           fd.test!
           fd.failed.length.should be(1)
           fd.resolve!
@@ -67,7 +67,7 @@ describe WarningShot::FileResolver do
         end
                 
         it 'should not increment #resolved if the resolution fails' do
-          fd = WarningShot::FileResolver.new({:source  =&gt; &quot;http://www.example.com/DOESNT.EXIST&quot;,:target =&gt; File.join(@@dest_path,'doesnt_exist.html')})
+          fd = WarningShot::FileResolver.new({:source  =&gt; &quot;http://www.example.com/DOESNT.EXIST&quot;,:target =&gt; (@@dest_path / 'doesnt_exist.html')})
           fd.test!
           fd.failed.length.should be(1)
           fd.resolve!
@@ -78,7 +78,7 @@ describe WarningShot::FileResolver do
     
     describe 'without heal instructions' do
       it 'should be able to return unresolved dependencies' do
-        this_file = File.join @@dest_path, 'this.txt'
+        this_file = @@dest_path / 'this.txt'
         
         fd = WarningShot::FileResolver.new({:target =&gt; this_file})
         fd.test!
@@ -93,7 +93,7 @@ describe WarningShot::FileResolver do
       
       describe 'file does not exist' do 
         it 'should add dependency to #failed' do
-          this_file = File.join @@dest_path, 'this.txt'
+          this_file = @@dest_path / 'this.txt'
 
           fd = WarningShot::FileResolver.new({:target =&gt; this_file})
           fd.test!
@@ -109,8 +109,8 @@ describe WarningShot::FileResolver do
     describe 'with heal instructions' do      
       describe 'file does not exist' do 
         it 'should add dependency to #failed' do
-          that_file = File.join @@source_path, 'that.txt'
-          this_file = File.join @@dest_path, 'this.txt'
+          that_file = @@source_path / 'that.txt'
+          this_file = @@dest_path / 'this.txt'
 
           fd = WarningShot::FileResolver.new({:target =&gt; this_file,:source =&gt; that_file})
           fd.test!
@@ -122,7 +122,7 @@ describe WarningShot::FileResolver do
     describe 'without heal instructions' do      
       describe 'file does not exist' do 
         it 'should add dependency to #failed' do
-          this_file = File.join @@dest_path, 'this.txt'
+          this_file = @@dest_path / 'this.txt'
 
           fd = WarningShot::FileResolver.new({:target =&gt; this_file})
           fd.test!</diff>
      <filename>test/spec/unit/resolvers/file_resolver_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 #Note, this fails if the gem yard is already installed, which sucks.  Waiting on rubyforge to
 # approve ws-dummy gem
 
-require File.join(%w(. lib resolvers gem_resolver))
+require &quot;.&quot; / &quot;lib&quot; / &quot;resolvers&quot; / &quot;gem_resolver&quot;
 require 'fileutils'
 describe WarningShot::GemResolver do
   before :all do</diff>
      <filename>test/spec/unit/resolvers/gem_resolver_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,11 +1,11 @@
-require File.join(%w(. lib resolvers integrity_resolver))
+require &quot;.&quot; / &quot;lib&quot; / &quot;resolvers&quot; / &quot;integrity_resolver&quot;
 
 describe WarningShot::IntegrityResolver do
   before :all do
     WarningShot::IntegrityResolver.logger = $logger
 
-    @@base_path = File.expand_path(File.join(%w(. test data resolvers file)))
-    @@source_path  = File.join(@@base_path,'src')
+    @@base_path   = File.expand_path(&quot;.&quot; / &quot;test&quot; / &quot;data&quot; / &quot;resolvers&quot; / &quot;file&quot;)
+    @@source_path = @@base_path / 'src'
   end
   
   it 'should have tests registered' do
@@ -18,7 +18,7 @@ describe WarningShot::IntegrityResolver do
   
   it 'should be able to verify a sha1 digest' do
 
-    that_file = File.join @@source_path, 'that.txt'
+    that_file = @@source_path / 'that.txt'
     #These values are flipped from FileResolverRspec so that we dont
     # have to resolve the file dependency to check the integrity
     resolver = WarningShot::IntegrityResolver.new({
@@ -32,7 +32,7 @@ describe WarningShot::IntegrityResolver do
   end
   
   it 'should be able to determine if a sha1 digest is wrong' do
-    that_file = File.join @@source_path, 'that.txt'
+    that_file = @@source_path / 'that.txt'
     #These values are flipped from FileResolverRspec so that we dont
     # have to resolve the file dependency to check the integrity
     resolver = WarningShot::IntegrityResolver.new({
@@ -46,7 +46,7 @@ describe WarningShot::IntegrityResolver do
   end
   
   it 'should be able to determine if an md5 digest is wrong' do
-    that_file = File.join @@source_path, 'that.txt'
+    that_file = @@source_path / 'that.txt'
     #These values are flipped from FileResolverRspec so that we dont
     # have to resolve the file dependency to check the integrity
     resolver = WarningShot::IntegrityResolver.new({
@@ -60,7 +60,7 @@ describe WarningShot::IntegrityResolver do
   end
   
   it 'should be able to verify a md5 digest' do
-    that_file = File.join @@source_path, 'that.txt'
+    that_file = @@source_path / 'that.txt'
     #These values are flipped from FileResolverRspec so that we dont
     # have to resolve the file dependency to check the integrity
     resolver = WarningShot::IntegrityResolver.new({
@@ -74,7 +74,7 @@ describe WarningShot::IntegrityResolver do
   end
   
   it 'should use sha1 if md5 and sha1 are given' do
-    that_file = File.join @@source_path, 'that.txt'
+    that_file = @@source_path / 'that.txt'
     #These values are flipped from FileResolverRspec so that we dont
     # have to resolve the file dependency to check the integrity
     resolver = WarningShot::IntegrityResolver.new({
@@ -89,7 +89,7 @@ describe WarningShot::IntegrityResolver do
   end
   
   it 'should be silent if a digest isnt given' do
-    that_file = File.join @@source_path, 'that.txt'
+    that_file = @@source_path / 'that.txt'
     #These values are flipped from FileResolverRspec so that we dont
     # have to resolve the file dependency to check the integrity
     resolver = WarningShot::IntegrityResolver.new({</diff>
      <filename>test/spec/unit/resolvers/integrity_resolver_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-require File.join(%w(. lib resolvers manual_resolver))
+require &quot;.&quot; / &quot;lib&quot; / &quot;resolvers&quot; / &quot;manual_resolver&quot;
 
 describe WarningShot::ManualResolver do
   before :all do</diff>
      <filename>test/spec/unit/resolvers/manual_resolver_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,11 +1,10 @@
-require File.join(%w(. lib resolvers permission_resolver))
+require &quot;.&quot; / &quot;lib&quot; / &quot;resolvers&quot; / &quot;permission_resolver&quot;
 
 describe WarningShot::PermissionResolver do
   before :all do
     WarningShot::PermissionResolver.logger = $logger
   end
 
-
   it 'should have tests registered' do
     WarningShot::PermissionResolver.tests.empty?.should be(false)
   end
@@ -13,32 +12,30 @@ describe WarningShot::PermissionResolver do
   it 'should have resolutions registered' do
     WarningShot::PermissionResolver.resolutions.empty?.should be(false)
   end
-     
-  describe 'with healing enabled' do
-    describe 'with heal instructions' do
-      it 'should' do
-        pending
-      end
-    end # End healing enabled, instructions provided
-    
-    describe 'without heal instructions' do
-      it 'should' do
-        pending
-      end
-    end # End healing enabled, instructions not provided
-  end # End healing enabled
   
-  describe 'with healing disabled' do
-    describe 'with heal instructions' do
-      it 'should' do
-        pending
-      end
-    end #End healing disabled, instructions provided
+  it 'should be able to determine if the user permission is correct' do
+    pending
+  end
+  
+  it 'should be able to determine if the group permission is correct' do
+    pending
+  end
+  
+  it 'should be able to determine if the mode is correct' do
+    pending
+  end
+  
+  describe 'with healing enabled and with healing instructions' do
+    it 'should be able to correct the user' do
+      pending
+    end
     
-    describe 'without heal instructions' do
-      it 'should' do
-        pending
-      end
-    end # End healing disabled, instructions not provided
-  end # End healing disabled
+    it 'should be able to correct the group' do
+      pending
+    end
+    
+    it 'should be able to correct the mode' do
+      pending
+    end
+  end
 end
\ No newline at end of file</diff>
      <filename>test/spec/unit/resolvers/permission_resolver_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,11 +1,11 @@
-require File.join(%w(. lib resolvers symlink_resolver))
+require &quot;.&quot; / &quot;lib&quot; / &quot;resolvers&quot; / &quot;symlink_resolver&quot;
 
 describe WarningShot::SymlinkResolver do
   before :all do
     WarningShot::SymlinkResolver.logger = $logger 
     
-    @@data_path = File.expand_path(File.join(%w(. test data)))
-    @@base_path = File.expand_path(File.join(%w(. test data resolvers symlink)))
+    @@data_path = File.expand_path(&quot;.&quot; / &quot;test&quot; / &quot;data&quot;)
+    @@base_path = File.expand_path(&quot;.&quot; / &quot;test&quot; / &quot;data&quot; / &quot;resolvers&quot; / &quot;symlink&quot;)
   end
   
   before :each do
@@ -28,8 +28,8 @@ describe WarningShot::SymlinkResolver do
     it 'should create a symlink' do
 
       symlink_dep = {
-        :source =&gt; File.join(@@data_path,'mock_resolver.rb'),
-        :target =&gt; File.join(@@base_path,'linked_mock_resolver.rb')
+        :source =&gt; @@data_path / 'mock_resolver.rb',
+        :target =&gt; @@base_path / 'linked_mock_resolver.rb'
       }
       resolver = WarningShot::SymlinkResolver.new symlink_dep
       </diff>
      <filename>test/spec/unit/resolvers/symlink_resolver_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-require File.join(%w(. lib resolvers url_resolver))
+require '.' / 'lib' / 'resolvers' / 'url_resolver'
 
 describe WarningShot::UrlResolver do
   before :all do    </diff>
      <filename>test/spec/unit/resolvers/url_resolver_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-require File.join($test_data, 'mock_resolver')
+require $test_data / 'mock_resolver'
 
 describe WarningShot::Resolver do
   it 'should provide a base set of resolvers' do</diff>
      <filename>test/spec/unit/warning_shot/resolver_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 describe WarningShot::TemplateGenerator do
 
   before :all do
-    @test_path = File.join($test_data,'yaml_configs')
+    @test_path = $test_data / 'yaml_configs'
   end
 
   after :all do
@@ -14,7 +14,7 @@ describe WarningShot::TemplateGenerator do
   end
   
   it &quot;should have generate YAML config files&quot; do
-    yaml_files = Dir[File.join(@test_path, WarningShot::ConfigExt)]
+    yaml_files = Dir[@test_path / WarningShot::ConfigExt]
     yaml_files.empty?.should be(false)
   end
   </diff>
      <filename>test/spec/unit/warning_shot/template_generator_spec.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>doc/Hash.html</filename>
    </removed>
    <removed>
      <filename>doc/Kernel.html</filename>
    </removed>
    <removed>
      <filename>doc/Object.html</filename>
    </removed>
    <removed>
      <filename>doc/WarningShot.html</filename>
    </removed>
    <removed>
      <filename>doc/WarningShot/Config.html</filename>
    </removed>
    <removed>
      <filename>doc/WarningShot/CoreLibResolver.html</filename>
    </removed>
    <removed>
      <filename>doc/WarningShot/DependencyResolver.html</filename>
    </removed>
    <removed>
      <filename>doc/WarningShot/DirectoryResolver.html</filename>
    </removed>
    <removed>
      <filename>doc/WarningShot/FileResolver.html</filename>
    </removed>
    <removed>
      <filename>doc/WarningShot/FileResolver/UnsupportedProtocolException.html</filename>
    </removed>
    <removed>
      <filename>doc/WarningShot/GemResolver.html</filename>
    </removed>
    <removed>
      <filename>doc/WarningShot/IntegrityResolver.html</filename>
    </removed>
    <removed>
      <filename>doc/WarningShot/LoggerFormatter.html</filename>
    </removed>
    <removed>
      <filename>doc/WarningShot/ManualResolver.html</filename>
    </removed>
    <removed>
      <filename>doc/WarningShot/Resolver.html</filename>
    </removed>
    <removed>
      <filename>doc/WarningShot/Resolver/ClassMethods.html</filename>
    </removed>
    <removed>
      <filename>doc/WarningShot/Resolver/InstanceMethods.html</filename>
    </removed>
    <removed>
      <filename>doc/WarningShot/SymlinkResolver.html</filename>
    </removed>
    <removed>
      <filename>doc/WarningShot/TemplateGenerator.html</filename>
    </removed>
    <removed>
      <filename>doc/WarningShot/UrlResolver.html</filename>
    </removed>
    <removed>
      <filename>doc/WarningShot/Utilities.html</filename>
    </removed>
    <removed>
      <filename>doc/all-methods.html</filename>
    </removed>
    <removed>
      <filename>doc/all-namespaces.html</filename>
    </removed>
    <removed>
      <filename>doc/app.js</filename>
    </removed>
    <removed>
      <filename>doc/index.html</filename>
    </removed>
    <removed>
      <filename>doc/jquery.js</filename>
    </removed>
    <removed>
      <filename>doc/readme.html</filename>
    </removed>
    <removed>
      <filename>doc/style.css</filename>
    </removed>
    <removed>
      <filename>doc/syntax_highlight.css</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>0b8356dd368fe3ee73fb4b95e9de3c189d8cb74a</id>
    </parent>
  </parents>
  <author>
    <name>Cory ODaniel</name>
    <email>github@coryodaniel.com</email>
  </author>
  <url>http://github.com/coryodaniel/warningshot/commit/0755a8310e5713005727d10bbc3d92464947b222</url>
  <id>0755a8310e5713005727d10bbc3d92464947b222</id>
  <committed-date>2008-10-17T18:08:01-07:00</committed-date>
  <authored-date>2008-10-17T18:08:01-07:00</authored-date>
  <message>Removed some more docs
Refactored File.join *strings to =&gt; string / string / string</message>
  <tree>c53136c3a4ae0a05c10c22660bab95d2d3a520e7</tree>
  <committer>
    <name>Cory ODaniel</name>
    <email>github@coryodaniel.com</email>
  </committer>
</commit>
