Sha256: 7814c212234d9501c6b6f9c143ed1fb0b7b02899f4e3f916b63130a2f3a15479
Contents?: true
Size: 918 Bytes
Versions: 2
Compression:
Stored size: 918 Bytes
Contents
# frozen_string_literal: true # A parts holds media module Goldendocx module Parts class Media BASE64_PNG_PATTERN = %r{ ^data:image/png;base64, (?<data>(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?)$ }x.freeze def initialize(name, data) @name = name @data = data end def target "media/#{@name}" end def type 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image' end def input_stream return StringIO.new(BASE64_PNG_PATTERN.match(@data)['data'].unpack1('m'), 'rb') if base64_png_data? @data end def write_to(zos) zos.put_next_entry "word/#{target}" zos.write input_stream.read end private def base64_png_data? @data.is_a?(String) && @data.match?(BASE64_PNG_PATTERN) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
goldendocx-0.2.3 | lib/goldendocx/parts/media.rb |
goldendocx-0.2.2 | lib/goldendocx/parts/media.rb |