# File lib/facter/util/plist/parser.rb, line 73 73: def parse 74: plist_tags = PTag::mappings.keys.join('|') 75: start_tag = /<(#{plist_tags})([^>]*)>/ 76: end_tag = /<\/(#{plist_tags})[^>]*>/ 77: 78: require 'strscan' 79: 80: contents = ( 81: if (File.exists? @filename_or_xml) 82: File.open(@filename_or_xml) {|f| f.read} 83: else 84: @filename_or_xml 85: end 86: ) 87: 88: @scanner = StringScanner.new( contents ) 89: until @scanner.eos? 90: if @scanner.scan(COMMENT_START) 91: @scanner.scan(COMMENT_END) 92: elsif @scanner.scan(XMLDECL_PATTERN) 93: elsif @scanner.scan(DOCTYPE_PATTERN) 94: elsif @scanner.scan(start_tag) 95: @listener.tag_start(@scanner[1], nil) 96: if (@scanner[2] =~ /\/$/) 97: @listener.tag_end(@scanner[1]) 98: end 99: elsif @scanner.scan(TEXT) 100: @listener.text(@scanner[1]) 101: elsif @scanner.scan(end_tag) 102: @listener.tag_end(@scanner[1]) 103: else 104: raise "Unimplemented element" 105: end 106: end 107: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.