Module: Fraggle::Emitter

Included in:
Request
Defined in:
lib/fraggle/emitter.rb

Instance Method Summary collapse

Instance Method Details

#callbacksObject



5
6
7
# File 'lib/fraggle/emitter.rb', line 5

def callbacks
  @callbacks ||= Hash.new(lambda {})
end

#done(&blk) ⇒ Object



14
# File 'lib/fraggle/emitter.rb', line 14

def done(&blk)  ; must_callback!(:done,  blk) ; end

#emit(name, *args) ⇒ Object



9
10
11
# File 'lib/fraggle/emitter.rb', line 9

def emit(name, *args)
  callbacks[name].call(*args)
end

#error(&blk) ⇒ Object



15
# File 'lib/fraggle/emitter.rb', line 15

def error(&blk) ; must_callback!(:error, blk) ; end

#must_callback!(name, blk) ⇒ Object



17
18
19
20
21
22
# File 'lib/fraggle/emitter.rb', line 17

def must_callback!(name, blk)
  if ! blk
    raise ArgumentError, "no block given to `#{name}`"
  end
  callbacks[name] = blk
end

#valid(&blk) ⇒ Object



13
# File 'lib/fraggle/emitter.rb', line 13

def valid(&blk) ; must_callback!(:valid, blk) ; end