Sha256: 85f51790efe72c57bcc5ee9c1a95c031492efb1f49c085515850a3eff91768db
Contents?: true
Size: 1.26 KB
Versions: 5
Compression:
Stored size: 1.26 KB
Contents
module Awsum class Ec2 class RegionParser < Awsum::Parser #:nodoc: def initialize(ec2) @ec2 = ec2 @regions = [] @text = nil @stack = [] end def tag_start(tag, attributes) case tag when 'regionInfo' @stack << 'regionInfo' when 'item' case @stack[-1] when 'regionInfo' @current = {} end end @text = '' end def text(text) @text << text unless @text.nil? end def tag_end(tag) case tag when 'DescribeRegionsResponse', 'requestId' #no-op when 'regionInfo' @stack.pop when 'item' case @stack[-1] when 'regionInfo' @regions << Region.new( @ec2, @current['regionName'], @current['regionEndpoint'] ) end else unless @text.nil? || @current.nil? text = @text.strip @current[tag] = (text == '' ? nil : text) end end end def result @regions end end end end
Version data entries
5 entries across 5 versions & 1 rubygems