# Copyright (c) 2010-2011, Diaspora Inc. This file is # licensed under the Affero General Public License version 3 or later. See # the COPYRIGHT file. module Diaspora module Parser def self.from_xml(xml) doc = Nokogiri::XML(xml) { |cfg| cfg.noblanks } return unless body = doc.xpath("/XML/post").children.first class_name = body.name.gsub('-', '/') begin class_name.camelize.constantize.from_xml body.to_s rescue NameError => e # A pods is trying to federate an object we don't recognize. # i.e. their codebase is different from ours. Quietly discard # so that no Resque job failure is created nil end end end end