Junior - Метапрограмування Flashcards
Що означає open class?
Що таке monkey patching?
Чи можливо створити клас динамічно? Якщо так, то як саме?
Які є способи динамічного керування методами, змінними та класами (define_method(), class_eval(), module_eval())?
Як відбувається пошук методу в ієрархії? Як можна опрацювати відсутність методу (method_missing())?
Що таке аліас методу? Для чого потрібні аліаси?
Як отримати значення інстансної змінної? Як задати значення? Як перевірити існування інстансної змінної (instance_variable_get(), instance_variable_set(), instance_variable_defined?)?
Які методи інтроспекції є в Ruby (class(), ancestors(), methods(), private_methods(), instance_variables(), singleton_methods(), local_variables())?
Що таке хуки й навіщо їх використовують (inherited(), included(), method_added(), singleton_method_added(), method_missing())?