def status(path='')

      raise ArgumentError, 'path not a String' if ! (path or path.class == String)

      if path and path.empty? then path = self.svn_repo_working_copy end

      status_info = Hash.new

      if File.file?(path)
        # is single file path
        file = path
        status_info = do_status(File.dirname(path), file)
      elsif File.directory?(path)
        status_info = do_status(path) 
      else
        raise RepoAccessError, "Arg is not a file or directory"
      end
     status_info

    end
def status(path='')

      raise ArgumentError, 'path not a String' if ! (path or path.class == String)

      if path and path.empty? then path = self.svn_repo_working_copy end

      status_info = Hash.new

      if File.file?(path)
        # is single file path
        file = path
        status_info = do_status(File.dirname(path), file)
      elsif File.directory?(path)
        status_info = do_status(path) 
      else
        raise RepoAccessError, "Arg is not a file or directory"
      end
     status_info

    end
get status on dir/file path.

 if nothing passed, does repo root

--
 TODO/XXX add optional param to return results as a data structure
 (current behavior)
 or as a puts 'M' File (like the CLI version, have the latter as the
 default, this avoids the awkward s.status(file)[0][:status] notation
 one could just say: s.status file and get the list displayed on stdout
++