Class: AgentClient::Agent

Inherits:
Object
  • Object
show all
Extended by:
Request
Includes:
Request
Defined in:
lib/agent_client/agent.rb

Overview

Represents an Indigo agent

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Request

post

Constructor Details

#initialize(url) ⇒ Agent

Returns a new instance of Agent.



47
48
49
50
# File 'lib/agent_client/agent.rb', line 47

def initialize(url)
  @url = url
  @processes = {}
end

Instance Attribute Details

#urlObject (readonly)

Returns the value of attribute url.



22
23
24
# File 'lib/agent_client/agent.rb', line 22

def url
  @url
end

Class Method Details

.load(url) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/agent_client/agent.rb', line 24

def self.load(url)
  result = get(url)
  instance = new(url)

  process_list = result['processes']
  raise('Agent has not sent the processes') if process_list.nil?

  if process_list.respond_to?('each')
    process_list.each do |pname, pcontent|
      instance.add_new_process(pname, pcontent)
    end
  end
  instance
end

Instance Method Details

#add_new_process(name, content) ⇒ Object



52
53
54
55
56
57
58
# File 'lib/agent_client/agent.rb', line 52

def add_new_process(name, content)
  process = Process.new(url,
                        name,
                        content['processInfo'],
                        content['storeInfo'])
  @processes[name] = process
end

#get(process_name) ⇒ Object



43
44
45
# File 'lib/agent_client/agent.rb', line 43

def get(process_name)
  @processes[process_name]
end

#list_processesObject



39
40
41
# File 'lib/agent_client/agent.rb', line 39

def list_processes
  @processes.values
end