class Elbas::AWS::InstanceCollection

Attributes

instances[R]

Public Class Methods

new(ids) click to toggle source
# File lib/elbas/aws/instance_collection.rb, line 8
def initialize(ids)
  @ids = ids
  @instances = query_instances_by_ids(ids).map do |i|
    Instance.new(i.instance_id, i.public_dns_name, i.state.code)
  end
end

Public Instance Methods

each(&block) click to toggle source
# File lib/elbas/aws/instance_collection.rb, line 19
def each(&block)
  instances.each(&block)
end
running() click to toggle source
# File lib/elbas/aws/instance_collection.rb, line 15
def running
  select(&:running?)
end

Private Instance Methods

aws_namespace() click to toggle source
# File lib/elbas/aws/instance_collection.rb, line 24
def aws_namespace
  ::Aws::EC2
end
query_instances_by_ids(ids) click to toggle source
# File lib/elbas/aws/instance_collection.rb, line 28
def query_instances_by_ids(ids)
  aws_client
    .describe_instances(instance_ids: @ids)
    .reservations.flat_map(&:instances)
end