Хорошо! Хорошо!:  0
Плохо! Плохо!:  0
Показано с 1 по 1 из 1

Тема: Object

  1. #1

    По умолчанию Object

    Код:
    #===============================================================================
    # Object
    # Сверхкласс всех классов. Определяет основное поведение объектов.
    #===============================================================================
    class Object
      #-----------------------------------------------------------------------------
      # Определяет является ли объект экземпляром одного из перечисленных классов
      # Возвращает :bool
      # classes :сlass - перечисление или массив классов для проверки
      #-----------------------------------------------------------------------------
      def any_class?(*classes)
        classes = classes[0] if classes[0].is_a?(Array)
        for c in classes
          return true if is_a?(c)
        end
        return false
      end
      #-----------------------------------------------------------------------------
      # Определяет является ли объект экземпляром одного из перечисленных классов
      # или их подклассов
      # Возвращает :bool
      # classes :сlass - перечисление или массив классов для проверки
      #-----------------------------------------------------------------------------
      def any_kind?(*classes)
        classes = classes[0] if classes[0].is_a?(Array)
        for c in classes
          return true if kind_of?(c)
        end
        return false
      end
      #-----------------------------------------------------------------------------
      # Определяет существует ли объект и не был ли он освобожден
      # Возвращает :bool
      #-----------------------------------------------------------------------------
      def exists?
        return false if self.nil?
        return (methods.include?("disposed?") ? !disposed? : true)
      end
      #-----------------------------------------------------------------------------
      # Определяет возможность освобождения объекта методом dispose
      # Возвращает :bool
      #-----------------------------------------------------------------------------
      def disposable?
        return false unless self.exists?
        return methods.include?("dispose")
      end
      #-----------------------------------------------------------------------------
      # Освобождает зарезервированную объектом память, если это возможно
      # В случае если объект - массив или хэш, будет освобождено
      # все его содержимое
      #-----------------------------------------------------------------------------
      def free
        if is_a?(Array)
          each_with_index{ |item, index|
            item.free
            self[index] = nil
          }
          clear
        elsif is_a?(Hash)
          each{ |key, item|
            item.free
            key.free
            self[key] = nil
          }
          clear
        elsif is_a?(Sprite)
          self.bitmap.free
          dispose
        else
          dispose if disposable?
        end
      end
      #-----------------------------------------------------------------------------
    end
    Последний раз редактировалось Equilibrium Keeper; 16.07.2011 в 11:42.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •