Class: Userbin::Events
- Inherits:
-
Object
- Object
- Userbin::Events
- Defined in:
- lib/userbin/events.rb
Class Method Summary collapse
Class Method Details
.on(*names, &block) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/userbin/events.rb', line 6 def self.on(*names, &block) pattern = Regexp.union(names.empty? ? TYPE_LIST.to_a : names) callbacks.each do |callback| if pattern == callback.pattern callbacks.delete(callback) callbacks << Userbin::Callback.new(pattern, block) return end end callbacks << Userbin::Callback.new(pattern, block) end |
.trigger(raw_event) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/userbin/events.rb', line 18 def self.trigger(raw_event) event = Userbin::Event.new(raw_event) callbacks.each do |callback| if event.type =~ callback.pattern object = case event['type'] when /^user\./ Userbin::User.new(event.object) else event.object end model = event.instance_exec object, &callback.block end end end |