Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Ruby: hooks, inherited, included, method_added

Что такое хуки и зачем их используют (inherited, included, method_added, singleton_method_added, method_missing)?

Этот вопрос проверяет знание механизмов, которые позволяют реагировать на изменения в структуре классов и объектов.

Короткий ответ

Хуки — это специальные методы, которые автоматически вызываются при определённых событиях в программе, таких как наследование или добавление методов. Они помогают контролировать и расширять поведение классов.

Длинный ответ

Ruby предоставляет хуки для реагирования на изменения:

  • inherited: Вызывается, когда класс наследуется от другого.

    class Parent
      	def self.inherited(subclass)
        		puts "#{subclass} наследует от #{self}"
      	end
    end
    
    class Child < Parent; end
    # => "Child наследует от Parent"
  • included: Вызывается, когда модуль подключается через include.

    module A
      	def self.included(base)
        		puts "#{base} подключил #{self}"
      	end
    end
    
    class B
      	include A
    end
    # => "B подключил A"
  • method_added: Вызывается при добавлении нового метода в класс.

    class MyClass
      	def self.method_added(method_name)
        		puts "Добавлен метод #{method_name}"
      	end
    
      	def my_method; end
    end
  • singleton_method_added: Вызывается при добавлении singleton-методов.

  • method_missing: Обрабатывает вызовы несуществующих методов.

    class MyClass
      	def method_missing(name, *args)
        		puts "Метод #{name} не найден"
      	end
    end
    
    obj = MyClass.new
    obj.unknown_method # => "Метод unknown_method не найден"

Хуки — мощный инструмент для создания гибкого и расширяемого кода, особенно в библиотеках и фреймворках.

Уровень

  • Рейтинг:

    3

  • Сложность:

    6

Навыки

  • Ruby

    Ruby

Ключевые слова

#hooks

#inherited

#included

#method_added

Подпишись на Ruby Developer в телеграм