class WsdlMapper::SvcDescParsing::Parser
Attributes
default_namespace[R]
description[R]
log_msgs[R]
namespaces[R]
parsers[R]
target_namespace[R]
Public Class Methods
new()
click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/parser.rb, line 22 def initialize @base = self @description = WsdlMapper::SvcDesc::Wsdl11::Description.new @parsers = { MESSAGE => MessageParser.new(self), PORT_TYPE => PortTypeParser.new(self), SERVICE => ServiceParser.new(self), BINDING => BindingParser.new(self), TYPES => TypesParser.new(self) # TODO: import } @namespaces = Namespaces.new @target_namespace = nil @default_namespace = nil @log_msgs = [] @linker = Linker.new @description end
Public Instance Methods
log_msg(node, msg = '', source = self)
click to toggle source
@param [Nokogiri::XML::Node] node @param [String, Symbol] msg
# File lib/wsdl_mapper/svc_desc_parsing/parser.rb, line 56 def log_msg(node, msg = '', source = self) log_msg = LogMsg.new(node, source, msg) log_msgs << log_msg # TODO: remove debugging output puts node.inspect puts msg puts caller puts "\n\n" end
parse(doc)
click to toggle source
@param [Nokogiri::XML::Document] doc @return [WsdlMapper::Dom::Schema]
# File lib/wsdl_mapper/svc_desc_parsing/parser.rb, line 44 def parse(doc) # Phase 1: Parsing parse_doc doc # Phase 2: Linking _, @schema = @linker.link [@description, @schema] end
parse_documentation(node, obj)
click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/parser.rb, line 66 def parse_documentation(node, obj) obj.documentation = node.text end
Protected Instance Methods
get_root(doc)
click to toggle source
@param [Nokogiri::XML::Document] doc @return [Nokogiri::XML::Node]
# File lib/wsdl_mapper/svc_desc_parsing/parser.rb, line 88 def get_root(doc) doc.root # TODO: handle invalid roots, namespaces end
parse_doc(doc)
click to toggle source
@param [Nokogiri::XML::Document] doc
# File lib/wsdl_mapper/svc_desc_parsing/parser.rb, line 72 def parse_doc(doc) parse_namespaces doc root = get_root doc @description.target_namespace = parse_target_namespace root @description.name = fetch_attribute_value 'name', root each_element root do |node| if get_name(node) == DOCUMENTATION parse_documentation node, @description else parse_node node end end end