class Celluloid::SystemEvent

High-priority internal system events

Public Class Methods

handle(type) click to toggle source
# File lib/celluloid/system_events.rb, line 16
def handle(type)
  @@system_events[type]
end
handler(&block) click to toggle source
# File lib/celluloid/system_events.rb, line 20
def handler(&block)
  fail ArgumentError, "SystemEvent handlers must be defined with a block." unless block
  method = begin
    handler = name
              .split("::").last
              .gsub(/([A-Z]+)([A-Z][a-z])/, "\1_\2")
              .gsub(/([a-z\d])([A-Z])/, "\1_\2")
              .tr("-", "_")
              .downcase
    :"handle_#{handler}"
  end
  Actor.send(:define_method, method, &block)
  @@system_events[self] = method
end