# File lib/puppet/resource/catalog.rb, line 396
396:     def self.from_pson(data)
397:         result = new(data['name'])
398: 
399:         if tags = data['tags'] 
400:             result.tag(*tags)
401:         end
402: 
403:         if version = data['version'] 
404:             result.version = version
405:         end
406: 
407:         if resources = data['resources']
408:             resources = PSON.parse(resources) if resources.is_a?(String)
409:             resources.each do |res|
410:                 resource_from_pson(result, res)
411:             end
412:         end
413: 
414:         if edges = data['edges']
415:             edges = PSON.parse(edges) if edges.is_a?(String)
416:             edges.each do |edge|
417:                 edge_from_pson(result, edge)
418:             end
419:         end
420: 
421:         if classes = data['classes']
422:             result.add_class(*classes)
423:         end
424: 
425:         result
426:     end