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