def using_yaml(*args)
      # Include the instance methods which provide accessors and
      # mutators for reading/writing from/to the YAML objects.
      include InstanceMethods

      # Each argument is either a filename or a :path option
      args.each do |arg|
        case arg
        when Symbol, String
          # Define accessors for this file
          using_yaml_file(arg.to_s)
        when Hash
          # Currently only accepts { :path => ... }
          next unless arg.size == 1 && arg.keys.first == :path
          
          # Take note of the path
          UsingYAML.path = [self.inspect, arg.values.first]
        end
      end
    end
def using_yaml(*args)
      # Include the instance methods which provide accessors and
      # mutators for reading/writing from/to the YAML objects.
      include InstanceMethods

      # Each argument is either a filename or a :path option
      args.each do |arg|
        case arg
        when Symbol, String
          # Define accessors for this file
          using_yaml_file(arg.to_s)
        when Hash
          # Currently only accepts { :path => ... }
          next unless arg.size == 1 && arg.keys.first == :path
          
          # Take note of the path
          UsingYAML.path = [self.inspect, arg.values.first]
        end
      end
    end
Used to configure UsingYAML for a class by defining what files
 should be loaded and from where.

   include UsingYAML
   using_yaml :foo, :bar, :path => "/some/where"

 +args+ can contain either filenames or a hash which specifices a
 path which contains the corresponding files.

 The value of :path must either be a string or Proc (see
 +using_yaml_path+ for more information on overriding paths).