require "active_hash"

module ActiveYaml
  Base.class_eval do

    def save
      super
      self.class.save_all
    end

    def delete
      self.class.delete(self.id)
    end

    def destroy
      delete
      self.class.save_all
    end

    def self.save_all
      data = @records.collect {|obj| obj.attributes}
      File.write( self.full_path , data.to_yaml)
      self.reload
    end

    def self.delete(id) # only works with id's
      @record_index.delete(id.to_s)
      @records.delete_if{|record| record[:id] == id.to_i}
      true
    end

  end
end