Sha256: 2a158931054717782a112c2627d965c62cbdca1404c738ba5ae570b44003326f

Contents?: true

Size: 1.37 KB

Versions: 58

Compression:

Stored size: 1.37 KB

Contents

module Standup
  module EC2
    class Base
      def initialize info = false
        case info
          when Hash
            set_info info
          when true
            load_info
          when false
            # nothing
        end
      end

      def self.info_reader *names
        names.each do |name|
          class_eval "def #{name}; read_info_field :#{name}; end", __FILE__, __LINE__
        end
      end

      def exists?
        read_info_field :exists
      end

      def load_info; end

      protected

      def read_info_field name
        load_info unless instance_variable_defined?(:"@#{name}")
        instance_variable_set(:"@#{name}", nil) unless instance_variable_defined?(:"@#{name}")
        @exists = true
        instance_variable_get(:"@#{name}")
      rescue AWS::InvalidGroupNotFound
      rescue AWS::InvalidInstanceIDNotFound
      rescue AWS::InvalidVolumeIDNotFound
        @exists = false
        nil
      end

      def set_info info
        info.each do |key, value|
          instance_variable_set :"@#{key}", value
        end
      end

      def list
        self.class.list
      end

      def api
        self.class.api
      end

      def self.api
        @@api ||= AWS::EC2::Base.new :access_key_id => Settings.aws.access_key_id,
                                     :secret_access_key => Settings.aws.secret_access_key
      end
    end
  end
end

Version data entries

58 entries across 58 versions & 1 rubygems

Version Path
standup-0.6.5 lib/standup/ec2/base.rb
standup-0.6.4 lib/standup/ec2/base.rb
standup-0.6.3 lib/standup/ec2/base.rb
standup-0.6.2 lib/standup/ec2/base.rb
standup-0.6.1 lib/standup/ec2/base.rb
standup-0.6.0 lib/standup/ec2/base.rb
standup-0.5.14 lib/standup/ec2/base.rb
standup-0.5.13 lib/standup/ec2/base.rb
standup-0.5.11 lib/standup/ec2/base.rb
standup-0.5.10 lib/standup/ec2/base.rb
standup-0.5.9 lib/standup/ec2/base.rb
standup-0.5.8 lib/standup/ec2/base.rb
standup-0.5.7 lib/standup/ec2/base.rb
standup-0.5.6 lib/standup/ec2/base.rb
standup-0.5.5 lib/standup/ec2/base.rb
standup-0.5.4 lib/standup/ec2/base.rb
standup-0.5.3 lib/standup/ec2/base.rb
standup-0.5.1 lib/standup/ec2/base.rb
standup-0.5.0 lib/standup/ec2/base.rb
standup-0.4.0 lib/standup/ec2/base.rb