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