1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/aws/parsers/iam/role_parser.rb
2012-06-20 23:17:47 +01:00

53 lines
No EOL
1.2 KiB
Ruby

module Fog
module Parsers
module AWS
module IAM
class RoleParser < Fog::Parsers::Base
def reset
@role = {}
@stack = []
end
def start_element(name,attrs = [])
case name
when 'Roles'
@stack << name
when 'Role'
@role = {}
when 'member'
if @stack.last == 'Roles'
@role = {}
end
end
super
end
def end_element(name)
case name
when 'Arn', 'AssumeRolePolicyDocument', 'Path', 'RoleId','RoleName'
@role[name] = value if @role
when 'CreateDate'
@role[name] = Time.parse(value) if @role
when 'Role'
finished_role(@role)
@role = nil
when 'Roles'
if @stack.last == 'Roles'
@stack.pop
end
when 'member'
if @stack.last == 'Roles'
finished_role(@role)
@role = nil
end
end
end
end
end
end
end
end