Sha256: 60baed4c3357858cc24fa1541012cb8108073bf6ccf93511e6c89fcc8678efc7

Contents?: true

Size: 959 Bytes

Versions: 12

Compression:

Stored size: 959 Bytes

Contents

require "base64"
require "swa/resource"
require "swa/ec2/tagged_resource"

module Swa
  module EC2

    class Instance < Resource

      include TaggedResource

      def id
        i.instance_id
      end

      def summary
        [
          field(i, :instance_id),
          field(i, :image_id),
          field(i, :instance_type),
          pad(i.state.name, 10),
          field(i, :private_ip_address),
          field(i, :public_ip_address),
          quoted(name),
          decorated_key_name
        ].join("  ")
      end

      def name
        tags["Name"]
      end

      def console_output
        encoded_output = i.console_output.output
        Base64.decode64(encoded_output) if encoded_output
      end

      delegate :launch_time
      delegate :stop, :start, :reboot, :terminate

      private

      alias_method :i, :aws_resource

      def decorated_key_name
        "🔑 #{i.key_name}" if i.key_name
      end

    end

  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
swa-0.8.3 lib/swa/ec2/instance.rb
swa-0.8.2 lib/swa/ec2/instance.rb
swa-0.8.1 lib/swa/ec2/instance.rb
swa-0.8.0 lib/swa/ec2/instance.rb
swa-0.7.7 lib/swa/ec2/instance.rb
swa-0.7.6 lib/swa/ec2/instance.rb
swa-0.7.5 lib/swa/ec2/instance.rb
swa-0.7.4 lib/swa/ec2/instance.rb
swa-0.7.3 lib/swa/ec2/instance.rb
swa-0.7.2 lib/swa/ec2/instance.rb
swa-0.7.1 lib/swa/ec2/instance.rb
swa-0.7.0 lib/swa/ec2/instance.rb