Class: ScoutScout::Client

Inherits:
Hashie::Mash
  • Object
show all
Defined in:
lib/scout_scout/client.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(hash) ⇒ Client

Returns a new instance of Client.



2
3
4
5
6
7
8
# File 'lib/scout_scout/client.rb', line 2

def initialize(hash)
  if hash['active_alerts']
    @alert_hash = hash['active_alerts']
    hash.delete('active_alerts')
  end
  super(hash)
end

Class Method Details

.find(client_id_or_hostname) ⇒ ScoutScout::Client

Search for a client by id or hostname

Returns:



13
14
15
16
17
18
19
20
21
# File 'lib/scout_scout/client.rb', line 13

def self.find(client_id_or_hostname)
  if client_id_or_hostname.is_a?(Fixnum)
    response = ScoutScout.get("/#{ScoutScout.}/clients/#{client_id_or_hostname}.xml")
    ScoutScout::Client.new(response['client'])
  else
    response = ScoutScout.get("/#{ScoutScout.}/clients.xml?host=#{client_id_or_hostname}")
    ScoutScout::Client.new(response['clients'].first)
  end
end

Instance Method Details

#active_alertsArray

Active alerts for this client

Returns:

  • (Array)

    An array of ScoutScout::Alert objects



26
27
28
# File 'lib/scout_scout/client.rb', line 26

def active_alerts
  @active_alerts ||= @alert_hash.map { |a| ScoutScout::Alert.new(a) }
end

#alertsArray

Recent alerts for this client

Returns:

  • (Array)

    An array of ScoutScout::Alert objects



33
34
35
36
# File 'lib/scout_scout/client.rb', line 33

def alerts
  response = ScoutScout.get("/#{ScoutScout.}/clients/#{self.id}/activities.xml")
  response['alerts'].map { |alert| ScoutScout::Alert.new(alert) }
end

#plugin(id) ⇒ ScoutScout::Plugin

Details about a specific plugin

Returns:



49
50
51
52
# File 'lib/scout_scout/client.rb', line 49

def plugin(id)
  response = ScoutScout.get("/#{ScoutScout.}/clients/#{self.id}/plugins/#{id}.xml")
  ScoutScout::Plugin.new(response['plugin'])
end

#pluginsArray

Details about all plugins for this client

Returns:

  • (Array)

    An array of ScoutScout::Plugin objects



41
42
43
44
# File 'lib/scout_scout/client.rb', line 41

def plugins
  response = ScoutScout.get("/#{ScoutScout.}/clients/#{self.id}/plugins.xml")
  response['plugins'].map { |plugin| ScoutScout::Plugin.new(plugin) }
end