Class: AwsEc2List::DescribeInstances

Inherits:
Object
  • Object
show all
Defined in:
lib/aws_ec2_list/describe_instances.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ec2: Aws::EC2::Client, stdout: $stdout, region: 'us-east-1', columns: "project, stack_name, public_dns_name, launch_time, app_version, state") ⇒ DescribeInstances

Returns a new instance of DescribeInstances.



6
7
8
9
10
11
12
13
14
# File 'lib/aws_ec2_list/describe_instances.rb', line 6

def initialize(ec2: Aws::EC2::Client,
               stdout: $stdout,
               region: 'us-east-1',
               columns: "project, stack_name, public_dns_name, launch_time, app_version, state")

  @ec2 = ec2.new(region: region)
  @stdout = stdout
  @columns = columns
end

Instance Attribute Details

#columnsObject (readonly)

Returns the value of attribute columns.



4
5
6
# File 'lib/aws_ec2_list/describe_instances.rb', line 4

def columns
  @columns
end

#ec2Object (readonly)

Returns the value of attribute ec2.



4
5
6
# File 'lib/aws_ec2_list/describe_instances.rb', line 4

def ec2
  @ec2
end

#stdoutObject (readonly)

Returns the value of attribute stdout.



4
5
6
# File 'lib/aws_ec2_list/describe_instances.rb', line 4

def stdout
  @stdout
end

Instance Method Details

#callObject



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/aws_ec2_list/describe_instances.rb', line 16

def call
  data_header = columns.split(", ")

  data = instances.map do |d|
    data_header.map do |header|
      d.send(header)
    end
  end

  data = data.insert(0, data_header)
  stdout.puts Tabularize.it(data, :align => :left).map { |row| row.join ' | ' }
end