Class: Protobuf::Lifecycle

Inherits:
Object
  • Object
show all
Defined in:
lib/protobuf/lifecycle.rb

Class Method Summary collapse

Class Method Details

.normalized_event_name(event_name) ⇒ Object



28
29
30
# File 'lib/protobuf/lifecycle.rb', line 28

def normalized_event_name(event_name)
  event_name.to_s.downcase
end

.register(event_name) ⇒ Object Also known as: on



4
5
6
7
8
9
10
11
# File 'lib/protobuf/lifecycle.rb', line 4

def register(event_name)
  fail "Lifecycle register must have a block" unless block_given?
  event_name = normalized_event_name(event_name)

  ::ActiveSupport::Notifications.subscribe(event_name) do |_name, _start, _finish, _id, args|
    yield(*args)
  end
end

.trigger(event_name, *args) ⇒ Object



14
15
16
17
18
# File 'lib/protobuf/lifecycle.rb', line 14

def trigger(event_name, *args)
  event_name = normalized_event_name(event_name)

  ::ActiveSupport::Notifications.instrument(event_name, args)
end