class Fog::Parsers::AWS::IAM::BaseInstanceProfile

Public Instance Methods

end_element(name) click to toggle source
# File lib/fog/aws/parsers/iam/base_instance_profile.rb, line 33
def end_element(name)
  if @instance_profile
    case name
    when 'Arn', 'Path'
      if @role
        @role[name] = value
      else
        @instance_profile[name] = value
      end
    when 'AssumeRolePolicyDocument', 'RoleId','RoleName'
      @role[name] = value if @role
    when 'CreateDate'
      if @role
        @role[name] = Time.parse(value)
      else
        @instance_profile[name] = Time.parse(value)
      end
    when 'member'
      case @stack.last
      when 'InstanceProfiles'
        finished_instance_profile(@instance_profile)
        @instance_profile = nil
      when 'Roles'
        if @instance_profile
          @instance_profile['Roles'] << @role
          @role = nil
        end
      end
    when 'InstanceProfiles', 'Roles'
      @stack.pop
    when 'InstanceProfile'
      finished_instance_profile(@instance_profile)
      @instance_profile = nil
    when 'InstanceProfileName', 'InstanceProfileId'
      @instance_profile[name] = value
    end
  end
end
reset() click to toggle source
Calls superclass method
# File lib/fog/aws/parsers/iam/base_instance_profile.rb, line 6
def reset
  super
  @stack = []
end
start_element(name,attrs = []) click to toggle source
Calls superclass method
# File lib/fog/aws/parsers/iam/base_instance_profile.rb, line 11
def start_element(name,attrs = [])
  super
  case name

  when 'InstanceProfile'
    @instance_profile = {'Roles' =>[]}
  when 'InstanceProfiles'
    @stack << 'InstanceProfiles'
  when 'Roles'
    @stack << 'Role'
  when 'member'
    case @stack.last
    when 'InstanceProfiles'
      @instance_profile = {'Roles' =>[]}
    when 'Roles'
      if @instance_profile
        @role = {}
      end
    end
  end
end