Sha256: dd4eac2ad99ae33e27f24d65fc183df49b5371b2311258e29e50ec9321534b94

Contents?: true

Size: 1.09 KB

Versions: 1

Compression:

Stored size: 1.09 KB

Contents

require 'active_support/core_ext/hash'

module Balancer
  class Param
    extend Memoist

    def initialize(options)
      @options = options
    end

    def create_load_balancer
      params = settings["create_load_balancer"].deep_symbolize_keys
      params = merge_option(params, :name)
      params = merge_option(params, :subnets)
      params = merge_option(params, :security_groups)
      params[:tags] = [{ key: "balancer", value: "balancer" }]
      params
    end
    memoize :create_load_balancer

    def create_target_group
      params = settings["create_target_group"].deep_symbolize_keys
      params[:name] ||= @options[:name] if @options[:name] # settings take precedence
      params = merge_option(params, :vpc_id)
      params
    end
    memoize :create_target_group

    def create_listener
      settings["create_listener"].deep_symbolize_keys
    end
    memoize :create_listener

    def merge_option(params, option_key)
      params[option_key] = @options[option_key] if @options[option_key]
      params
    end

    def settings
      @settings ||= Balancer.settings
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
balancer-0.2.0 lib/balancer/param.rb