Sha256: 21ed9ac8f9b8d1a7e5c3b90eb6ee5cf4aa16575d1914f5912e30366f9526ee8e
Contents?: true
Size: 1.09 KB
Versions: 2
Compression:
Stored size: 1.09 KB
Contents
require 'psd/resources/base' class PSD class Resource module Section class XMPMetadata < Base resource_id 1060 name :xmp_metadata attr_reader :xml, :data alias_method :to_hash, :data def parse @xml = @file.read(@resource.size) @data = {} @xmp = XMP.new(xml) @xmp.namespaces.each do |a| parse_tree(a.to_sym) end rescue Java::OrgW3cDom::DOMException PSD.logger.error "Unable to parse XMP Metadata" ensure @resource.data = self end private def parse_tree(attr_name) @data[attr_name] = {} @xmp.send(attr_name).attributes.each do |a| begin @data[attr_name][a.to_sym] = @xmp.send(attr_name).send(a)[0] rescue @data[attr_name][a.to_sym] = parse_text_node(@xmp.send(attr_name), "//#{attr_name}:#{a}") end end end def parse_text_node(node, path) node.send(:xml).xpath(path).first.text end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
psd-3.1.4 | lib/psd/resources/xmp_metadata.rb |
psd-3.1.3 | lib/psd/resources/xmp_metadata.rb |