Module: Signal

Defined in:
lib/signal.rb,
lib/signal/call.rb,
lib/signal/version.rb,
lib/signal/listener.rb,
lib/signal/active_record.rb

Defined Under Namespace

Modules: ActiveRecord, Call Classes: Listener

Constant Summary collapse

VERSION =
'0.3.0'

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.callObject



2
3
4
# File 'lib/signal/call.rb', line 2

def self.call
  Call
end

Instance Method Details

#add_listener(listener) ⇒ Object



22
23
24
25
# File 'lib/signal.rb', line 22

def add_listener(listener)
  listeners << listener
  self
end

#after(event, &block) ⇒ Object



17
18
19
20
# File 'lib/signal.rb', line 17

def after(event, &block)
  listeners << Listener.new(self, __method__, event, &block)
  self
end

#before(event, &block) ⇒ Object



12
13
14
15
# File 'lib/signal.rb', line 12

def before(event, &block)
  listeners << Listener.new(self, __method__, event, &block)
  self
end

#emit(event, *args) ⇒ Object



27
28
29
30
31
32
# File 'lib/signal.rb', line 27

def emit(event, *args)
  emit_signal(:before, event, *args)
  emit_signal(:on, event, *args)
  emit_signal(:after, event, *args)
  nil
end

#listenersObject



34
35
36
# File 'lib/signal.rb', line 34

def listeners
  @listeners ||= []
end

#on(event, &block) ⇒ Object



7
8
9
10
# File 'lib/signal.rb', line 7

def on(event, &block)
  listeners << Listener.new(self, __method__, event, &block)
  self
end