Рецепты: Свои наборы обработчиков событий
Думаю, большинство из пользователей 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
______________________



комментарии (3)