Sha256: ac9b3812757f8b993ac0e5dd229a7228d0d0ea858a343502b2f60688d89c36ad
Contents?: true
Size: 1.49 KB
Versions: 5
Compression:
Stored size: 1.49 KB
Contents
module Fog module Parsers module AWS module IAM class PolicyParser < Fog::Parsers::Base def reset @policy = fresh_policy @stack = [] end def start_element(name,attrs = []) case name when 'Policies' @stack << name when 'Policy' @role =fresh_policy when 'member' if @stack.last == 'Policies' @role = fresh_policy end end super end def fresh_policy {'AttachmentCount' => 0, 'Description' => ''} end def end_element(name) case name when 'Arn', 'DefaultVersionId', 'Description', 'Path', 'PolicyName', 'PolicyId' @policy[name] = value when 'CreateDate', 'UpdateDate' @policy[name] = Time.parse(value) when 'IsAttachable' @policy[name] = (value == 'true') when 'AttachmentCount' @policy[name] = value.to_i when 'Policy' finished_policy(@policy) @policy = nil when 'Policies' if @stack.last == 'Policies' @stack.pop end when 'member' if @stack.last == 'Policies' finished_policy(@policy) @policy = nil end end end end end end end end
Version data entries
5 entries across 5 versions & 1 rubygems