class Opsicle::Monitor::Panels::Instances

Public Class Methods

new(height, width, top, left) click to toggle source
Calls superclass method Opsicle::Monitor::Panel::new
# File lib/opsicle/monitor/panels/instances.rb, line 6
def initialize(height, width, top, left)
  super(height, width, top, left, structure(height), :divider_r => " ")

  @spies[:instances] = Monitor::Spy::Instances.new
end

Public Instance Methods

structure(height) click to toggle source
# File lib/opsicle/monitor/panels/instances.rb, line 12
def structure(height)
  # [
  #   [relative_column_width, data_left, data_right]
  # ]
  s = [
    [ # table header slots
      [1, translate[:heading][:ec2_instance_id], nil],
      [1, translate[:heading][:hostname], nil],
      [1, translate[:heading][:status], nil],
      [1, translate[:heading][:zone], nil],
      [1, translate[:heading][:ip], nil]
    ],
  ]

  (0...(height - 1)).each do |i|
    s << [ # table row slots
      [1, -> { @spies[:instances][i][:ec2_instance_id] }, nil],
      [1, -> { @spies[:instances][i][:hostname] }, nil],
      [1, -> { @spies[:instances][i][:status] }, nil],
      [1, -> { @spies[:instances][i][:zone] }, nil],
      [1, -> { @spies[:instances][i][:ip] }, nil]
    ]
  end

  s
end