Sha256: 98007c6e3b394ca4d1eadfd28abc289466135121c16091d9fef0eb1c2e683a73

Contents?: true

Size: 740 Bytes

Versions: 6

Compression:

Stored size: 740 Bytes

Contents

require 'ostruct'
require 'applb/dsl/load_balancer'

module Applb
  class DSL
    class EC2
      include Applb::TemplateHelper

      attr_reader :result

      def initialize(context, vpc_id, lbs, &block)
        @context = context.merge(vpc_id: vpc_id)

        @result = OpenStruct.new({
          vpc_id: vpc_id,
          load_balancers: lbs,
        })

        @names = lbs.map(&:name)
        instance_eval(&block)
      end

      private

      def elb_v2(name, &block)
        if @names.include?(name)
          raise "#{@result.vpc_id}: #{name} is already defined"
        end

        @result.load_balancers << LoadBalancer.new(@context, name, @result.vpc_id, &block).result
        @names << name
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
applb-0.1.5.beta1 lib/applb/dsl/ec2.rb
applb-0.1.4 lib/applb/dsl/ec2.rb
applb-0.1.3 lib/applb/dsl/ec2.rb
applb-0.1.2 lib/applb/dsl/ec2.rb
applb-0.1.1 lib/applb/dsl/ec2.rb
applb-0.1.0 lib/applb/dsl/ec2.rb