Class: ConsoleAgent::Repl

Inherits:
Object
  • Object
show all
Defined in:
lib/console_agent/repl.rb

Instance Method Summary collapse

Constructor Details

#initialize(binding_context) ⇒ Repl

Returns a new instance of Repl.



6
7
8
9
10
# File 'lib/console_agent/repl.rb', line 6

def initialize(binding_context)
  @binding_context = binding_context
  @channel = Channel::Console.new
  @engine = ConversationEngine.new(binding_context: binding_context, channel: @channel)
end

Instance Method Details

#explain(query) ⇒ Object



16
17
18
# File 'lib/console_agent/repl.rb', line 16

def explain(query)
  @engine.explain(query)
end

#init_guideObject



20
21
22
# File 'lib/console_agent/repl.rb', line 20

def init_guide
  @engine.init_guide
end

#instance_variable_get(name) ⇒ Object

Expose engine internals for specs that inspect state



33
34
35
36
37
38
39
40
41
42
# File 'lib/console_agent/repl.rb', line 33

def instance_variable_get(name)
  case name
  when :@history
    @engine.history
  when :@executor
    @engine.instance_variable_get(:@executor)
  else
    super
  end
end

#instance_variable_set(name, value) ⇒ Object

Allow specs to set internal state



45
46
47
48
49
50
51
52
# File 'lib/console_agent/repl.rb', line 45

def instance_variable_set(name, value)
  case name
  when :@history
    @engine.instance_variable_set(:@history, value)
  else
    super
  end
end

#interactiveObject



24
25
26
# File 'lib/console_agent/repl.rb', line 24

def interactive
  @channel.interactive_loop(@engine)
end

#one_shot(query) ⇒ Object



12
13
14
# File 'lib/console_agent/repl.rb', line 12

def one_shot(query)
  @engine.one_shot(query)
end

#resume(session) ⇒ Object



28
29
30
# File 'lib/console_agent/repl.rb', line 28

def resume(session)
  @channel.resume_interactive(@engine, session)
end