13. CLASS << SELF
Но возникает вопрос. Как эти
singleton methods (которые мы знаем
как “class methods”) наших
метаклассов наследуются?
Они же должны быть в другой
цепочке наследования (идут к Class и
выше)…
А вот как:
17. PUBLIC, PROTECTED, PRIVATE
Protected и private методы
выполняют немного иную
функцию, чем в массе прочих
объектных языков (C++,
например).
Например, и protected, и private
методы всегда наследуются. Но…
21. PRIVATE
Private не может вызываться
в ином контексте, чем в
контексте (теле) объекта, для
которого он объявлен.
Явное указание receiver-а
запрещено.
26. MODULES
Модули отличаются от классов тем, что
1) не могут порождать экземпляры;
2) не имеют системы наследования;
3) в основном используются для
расширения классов.
32. INCLUDE VS EXTEND
В самом простом смысле
можем говорить, что include
добавляет методы
экземпляра класса, а extend
- методы класса.
33. INCLUDED
Существует хук, выполняющийся при
подключении модуля. #included.
Кроме всего прочего, он позволяет
одновременно добавлять методы
непосредственно к классу и его
экземплярам.