Support event hook arguments in Dispatcher

This commit is contained in:
Thibault Jouan 2015-04-09 23:15:10 +00:00
parent 520a0c87c9
commit 7b9854b499
2 changed files with 10 additions and 2 deletions

View File

@ -15,8 +15,8 @@ module Uh
@hooks[translate_key key] << block
end
def emit *key
@hooks[translate_key key].each { |e| e.call }
def emit *key, args: []
@hooks[translate_key key].each { |e| e.call *args }
end

View File

@ -57,6 +57,14 @@ module Uh
expect { dispatcher.emit :hook_key }.not_to raise_error
end
end
context 'when args keyword argument is given' do
it 'calls hooks with given args' do
dispatcher.on(:hook_key) { |arg1, arg2| throw arg2 }
expect { dispatcher.emit :hook_key, args: %i[arg1 arg2] }
.to throw_symbol :arg2
end
end
end
end
end