Class: ScoutScout::Client
- Inherits:
-
Hashie::Mash
- Object
- Hashie::Mash
- ScoutScout::Client
- Defined in:
- lib/scout_scout/client.rb
Class Method Summary collapse
-
.find(client_id_or_hostname) ⇒ ScoutScout::Client
Search for a client by id or hostname.
Instance Method Summary collapse
-
#active_alerts ⇒ Array
Active alerts for this client.
-
#alerts ⇒ Array
Recent alerts for this client.
-
#initialize(hash) ⇒ Client
constructor
A new instance of Client.
-
#plugin(id) ⇒ ScoutScout::Plugin
Details about a specific plugin.
-
#plugins ⇒ Array
Details about all plugins for this client.
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
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.account}/clients/#{client_id_or_hostname}.xml") ScoutScout::Client.new(response['client']) else response = ScoutScout.get("/#{ScoutScout.account}/clients.xml?host=#{client_id_or_hostname}") ScoutScout::Client.new(response['clients'].first) end end |
Instance Method Details
#active_alerts ⇒ Array
Active alerts for this client
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 |
#alerts ⇒ Array
Recent alerts for this client
33 34 35 36 |
# File 'lib/scout_scout/client.rb', line 33 def alerts response = ScoutScout.get("/#{ScoutScout.account}/clients/#{self.id}/activities.xml") response['alerts'].map { |alert| ScoutScout::Alert.new(alert) } end |
#plugin(id) ⇒ ScoutScout::Plugin
Details about a specific plugin
49 50 51 52 |
# File 'lib/scout_scout/client.rb', line 49 def plugin(id) response = ScoutScout.get("/#{ScoutScout.account}/clients/#{self.id}/plugins/#{id}.xml") ScoutScout::Plugin.new(response['plugin']) end |
#plugins ⇒ Array
Details about all plugins for this client
41 42 43 44 |
# File 'lib/scout_scout/client.rb', line 41 def plugins response = ScoutScout.get("/#{ScoutScout.account}/clients/#{self.id}/plugins.xml") response['plugins'].map { |plugin| ScoutScout::Plugin.new(plugin) } end |