Class: Charyf::Interface::Program
- Inherits:
-
Base
show all
- Defined in:
- lib/charyf/engine/interface/program.rb
Defined Under Namespace
Classes: InvalidConversationError
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Base
dispatcher
included
Constructor Details
#initialize(conversation_id, handler) ⇒ Program
Returns a new instance of Program.
47
48
49
50
51
|
# File 'lib/charyf/engine/interface/program.rb', line 47
def initialize(conversation_id, handler)
@handler = handler
@conversation_id = conversation_id.to_s
end
|
Instance Attribute Details
#conversation_id ⇒ Object
Returns the value of attribute conversation_id.
14
15
16
|
# File 'lib/charyf/engine/interface/program.rb', line 14
def conversation_id
@conversation_id
end
|
Returns the value of attribute handler.
14
15
16
|
# File 'lib/charyf/engine/interface/program.rb', line 14
def handler
@handler
end
|
Class Method Details
._interfaces ⇒ Object
43
44
45
|
# File 'lib/charyf/engine/interface/program.rb', line 43
def self._interfaces
@_interfaces ||= Hash.new
end
|
.create(conversation_id, handler) ⇒ Object
35
36
37
38
39
40
41
|
# File 'lib/charyf/engine/interface/program.rb', line 35
def self.create(conversation_id, handler)
interface = self.new(conversation_id, handler)
_interfaces[conversation_id] = interface
interface
end
|
.reply(conversation_id, message_id, response) ⇒ Object
28
29
30
31
32
33
|
# File 'lib/charyf/engine/interface/program.rb', line 28
def self.reply(conversation_id, message_id, response)
interface = _interfaces[conversation_id]
raise InvalidConversationError.new("No program interface found for conversation #{conversation_id}") unless interface
interface.reply(response)
end
|
16
17
18
|
# File 'lib/charyf/engine/interface/program.rb', line 16
def self.start
end
|
20
21
22
|
# File 'lib/charyf/engine/interface/program.rb', line 20
def self.stop
end
|
.terminate ⇒ Object
24
25
26
|
# File 'lib/charyf/engine/interface/program.rb', line 24
def self.terminate
end
|
Instance Method Details
#process(request) ⇒ Object
53
54
55
|
# File 'lib/charyf/engine/interface/program.rb', line 53
def process(request)
self.class.dispatcher.dispatch(request)
end
|
#reply(response) ⇒ Object
57
58
59
|
# File 'lib/charyf/engine/interface/program.rb', line 57
def reply(response)
handler.call(response)
end
|
61
62
63
|
# File 'lib/charyf/engine/interface/program.rb', line 61
def request
Charyf::Engine::Request.new(self.class, conversation_id, SecureRandom.hex)
end
|