class AWSConfig::ProfileResolver

Attributes

profiles[R]
wanted_profiles[R]

Public Class Methods

new() click to toggle source
# File lib/aws_config/profile_resolver.rb, line 7
def initialize
  @profiles = {}
  @wanted_profiles = {}
end

Public Instance Methods

add(profs) click to toggle source
# File lib/aws_config/profile_resolver.rb, line 12
def add(profs)
  profs.each do |name, profile|
    if profiles.key? name
      profiles[name].merge! profile
    else
      profiles[name] = profile
    end
    resolve_source_profile(name, profile) if profile.has_key? "source_profile"
    provides_source_profile(name, profile)
  end
end

Private Instance Methods

provides_source_profile(name, profile) click to toggle source
# File lib/aws_config/profile_resolver.rb, line 35
def provides_source_profile(name, profile)
  return unless wanted_profiles.key? name
  wanted_profiles[name].each do |wanted_by|
    profiles[wanted_by]["source_profile"] = profile
  end
  wanted_profiles.delete name
end
resolve_source_profile(name, profile) click to toggle source
# File lib/aws_config/profile_resolver.rb, line 26
def resolve_source_profile(name, profile)
  source_profile = profile.source_profile
  if profiles.key? source_profile
    profile["source_profile"] = profiles[source_profile]
  else
    (wanted_profiles[source_profile] ||= []) << name
  end
end