class Capistrano::Aws::EC2::InstancesTable
Generates instances table.
Public Class Methods
new(instances)
click to toggle source
# File lib/capistrano/aws/ec2/instances_table.rb, line 9 def initialize(instances) @instances = instances.sort_by do |_id, instance| Capistrano::Aws::EC2.parse_tag(instance, fetch(:aws_ec2_name_tag)) end end
Public Instance Methods
header_row()
click to toggle source
# File lib/capistrano/aws/ec2/instances_table.rb, line 35 def header_row [ 'Num'.colorize(mode: :bold), 'ID'.colorize(mode: :bold), 'Name'.colorize(mode: :bold), 'Type'.colorize(mode: :bold), 'Contact Point'.colorize(mode: :bold), 'Availability Zone'.colorize(mode: :bold), 'Roles'.colorize(mode: :bold), 'Stages'.colorize(mode: :bold) ] end
instance_row(number, instance)
click to toggle source
# File lib/capistrano/aws/ec2/instances_table.rb, line 48 def instance_row(number, instance) [ format('%02d:', number), instance.id.colorize(:red), Capistrano::Aws::EC2.parse_tag(instance, fetch(:aws_ec2_name_tag)).colorize(:green), instance.instance_type.colorize(:cyan), Capistrano::Aws::EC2.contact_point(instance).colorize(:blue), instance.placement.availability_zone.colorize(:magenta), Capistrano::Aws::EC2.parse_tag(instance, fetch(:aws_ec2_roles_tag)).colorize(:yellow), Capistrano::Aws::EC2.parse_tag(instance, fetch(:aws_ec2_stage_tag)).colorize(:yellow) ] end
render()
click to toggle source
# File lib/capistrano/aws/ec2/instances_table.rb, line 15 def render table = Terminal::Table.new( style: { border_x: '', border_i: '', border_y: '' } ) table.add_row header_row number = 1 @instances.each do |_id, instance| table.add_row instance_row(number, instance) number += 1 end puts table end