Думаю, большинство из пользователей Ruby работали с Rails, и использовали их обработчики событий.
Польза от них очевидна:
И я покажу, как это делать:
Для работы данного функционала нужен gem active_support (входит в состав rails, но может использоваться и отдельно).
Чуть не забыл, цепочка обработчиков событий в данном случае будет вызвана при вызове метода экземпляра
validate :validate_humanity_conflicts validates_presence_of :radius # это не обработчик события, но декларация
Польза от них очевидна:
- Декларативность описания поведения, когда мы видим особенности классов по декларациям в его начале;
- Возможность создавать наборы из обработчиков событий, не заморачиваясь на управление ими.
И я покажу, как это делать:
class AnyClass include ActiveSupport::Callbacks # already included by ActiveRecord::Base define_callbacks :after_something def after_something run_callbacks(:after_something) end end
class ChildClass < AnyClass after_something :eliminate_frags def eliminate_frags # do it true # to stop callback chain return false end end
Для работы данного функционала нужен gem active_support (входит в состав rails, но может использоваться и отдельно).
Чуть не забыл, цепочка обработчиков событий в данном случае будет вызвана при вызове метода экземпляра
after_something
