Class: Terret::Agent

Inherits:
Object
  • Object
show all
Defined in:
lib/terret/loop.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(id:, session_id:, ctx:) ⇒ Agent

Returns a new instance of Agent.



13
14
15
16
17
18
19
# File 'lib/terret/loop.rb', line 13

def initialize(id:, session_id:, ctx:)
  @id = id
  @session_id = session_id
  @ctx = ctx           # a forked, agent-scoped context
  @inbox = []          # injected context waits here until a waking message
  @status = :idle
end

Instance Attribute Details

#ctxObject (readonly)

Returns the value of attribute ctx.



10
11
12
# File 'lib/terret/loop.rb', line 10

def ctx
  @ctx
end

#idObject (readonly)

Returns the value of attribute id.



10
11
12
# File 'lib/terret/loop.rb', line 10

def id
  @id
end

#session_idObject (readonly)

Returns the value of attribute session_id.



10
11
12
# File 'lib/terret/loop.rb', line 10

def session_id
  @session_id
end

#statusObject

Returns the value of attribute status.



11
12
13
# File 'lib/terret/loop.rb', line 11

def status
  @status
end

Instance Method Details

#drain_inboxObject



25
# File 'lib/terret/loop.rb', line 25

def drain_inbox = @inbox.slice!(0..)

#inject(text) ⇒ Object



21
22
23
# File 'lib/terret/loop.rb', line 21

def inject(text)
  @inbox << text
end