11module BotFramework
22 class Bot
33 class << self
4- attr_accessor :recognizer
4+ extend Gem ::Deprecate
5+ attr_accessor :recognizers
56
67 def on ( event , &block )
78 hooks [ event ] = block
@@ -11,31 +12,46 @@ def on_intent(intent, &block)
1112 intent_callbacks [ intent ] = block
1213 end
1314
15+ def recognizer = ( recognizer )
16+ warn "DEPRECATED: Use add_recognizer method instead"
17+ add_recognizer ( recognizer )
18+ end
19+ deprecate :recognizer= , :add_recognizer , 2016 , 5
20+
21+ def add_recognizer ( recognizer )
22+ recognizers << recognizer
23+ end
24+
25+ def recognizers
26+ @recognizers ||= [ ]
27+ end
28+
1429 def trigger ( event , *args )
1530 # hooks.fetch(event).call(*args)
1631 if hooks [ event ] . nil?
1732 p "No call back registered for #{ event } "
1833 return false
1934 end
20- instance_exec *args , &hooks . fetch ( event )
35+ instance_exec ( *args , &hooks . fetch ( event ) )
2136 end
2237
2338 def trigger_intent_call_back ( intent , *args )
2439 if intent_callbacks [ intent ] . nil?
2540 p "No call back registered for #{ intent } "
2641 trigger_intent_call_back ( :default , *args ) if intent_callbacks [ :default ]
2742 return false
28- end
29- instance_exec *args , &intent_callbacks . fetch ( intent )
43+ end
44+ instance_exec ( *args , &intent_callbacks . fetch ( intent ) )
3045 end
3146
3247 def receive ( payload )
3348 trigger ( payload . type . to_sym )
3449 # Run on default
3550 trigger ( :activity , payload )
36- return unless recognizer
37- recognizer . recognize ( message : payload . as_json ) do |_error , intents |
38- trigger_intent_call_back ( intents [ :intent ] , payload , intents ) if intents [ :intent ]
51+ recognizers . each do |recognizer |
52+ recognizer . recognize ( message : payload . as_json ) do |_error , intents |
53+ trigger_intent_call_back ( intents [ :intent ] , payload , intents ) if intents [ :intent ]
54+ end
3955 end
4056 end
4157
0 commit comments