class EzWadl::Parser
Public Class Methods
parse(wadl) { |top_resources| ... }
click to toggle source
# File lib/ezwadl/parser.rb, line 7 def parse(wadl) doc = Nokogiri::XML open(wadl) top_resources = uris(doc).map {|xml| Resource.new(xml) } top_resources.each {|r| add_methods(r) add_resources(r) } yield(top_resources) if block_given? top_resources end
Private Class Methods
add_methods(resource)
click to toggle source
# File lib/ezwadl/parser.rb, line 36 def add_methods(resource) methods(resource.xml).each {|method| resource.httpmethods << method } end
add_resources(resource)
click to toggle source
# File lib/ezwadl/parser.rb, line 42 def add_resources(resource) resources(resource.xml).each {|xml| child = Resource.new(xml) add_methods(child) add_resources(child) resource << child } end
methods(element)
click to toggle source
# File lib/ezwadl/parser.rb, line 28 def methods(element) element.children.select {|c| c.name == 'method'} .map {|m| m.attributes['name'].value} end
resources(element)
click to toggle source
# File lib/ezwadl/parser.rb, line 32 def resources(element) element.children.select {|c| c.name == 'resource'} end
uris(doc)
click to toggle source
# File lib/ezwadl/parser.rb, line 24 def uris(doc) doc.xpath("//ns01:resources", 'ns01' => 'http://wadl.dev.java.net/2009/02') end