Sha256: f20252e318aab6a8d2610b81ed34d518d8af51346be64385d98d7084581a4072
Contents?: true
Size: 911 Bytes
Versions: 1
Compression:
Stored size: 911 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 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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
goldendocx-0.3.0 | lib/goldendocx/parts/media.rb |