Sha256: 564ff9bc50ec6675b035307bd1ba23bc4229256e867fc2ae6d9bb7d3628afb6a
Contents?: true
Size: 1.37 KB
Versions: 4
Compression:
Stored size: 1.37 KB
Contents
# frozen_string_literal: true require 'uri' module OoxmlParser # Class for storing image data class FileReference < OOXMLDocumentObject # @return [String] id of resource attr_accessor :resource_id # @return [String] path to file attr_accessor :path # @return [String] content of file attr_accessor :content # Parse FileReference object # @param node [Nokogiri::XML:Element] node to parse # @return [FileReference] result of parsing def parse(node) node.attributes.each do |key, value| case key when 'embed', 'id', 'link' @resource_id = value.value end end return self unless @resource_id return self if @resource_id.empty? @path = OOXMLDocumentObject.get_link_from_rels(@resource_id) if !@path || @path.empty? warn "Cant find path to media file by id: #{@resource_id}" return self end return self if @path == 'NULL' return self if @path.match?(URI::DEFAULT_PARSER.make_regexp) full_path_to_file = OOXMLDocumentObject.path_to_folder + OOXMLDocumentObject.root_subfolder + @path.gsub('..', '') if File.exist?(full_path_to_file) @content = IO.binread(full_path_to_file) else warn "Couldn't find #{full_path_to_file} file on filesystem. Possible problem in original document" end self end end end
Version data entries
4 entries across 4 versions & 1 rubygems