Class: Goldendocx::Parts::Media
- Inherits:
-
Object
- Object
- Goldendocx::Parts::Media
- Defined in:
- lib/goldendocx/parts/media.rb
Constant Summary collapse
- 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
Instance Method Summary collapse
-
#initialize(name, data) ⇒ Media
constructor
A new instance of Media.
- #input_stream ⇒ Object
- #target ⇒ Object
- #type ⇒ Object
- #write_to(zos) ⇒ Object
Constructor Details
#initialize(name, data) ⇒ Media
Returns a new instance of Media.
12 13 14 15 |
# File 'lib/goldendocx/parts/media.rb', line 12 def initialize(name, data) @name = name @data = data end |
Instance Method Details
#input_stream ⇒ Object
25 26 27 28 29 |
# File 'lib/goldendocx/parts/media.rb', line 25 def input_stream return StringIO.new(BASE64_PNG_PATTERN.match(@data)['data'].unpack1('m'), 'rb') if base64_png_data? @data end |
#target ⇒ Object
17 18 19 |
# File 'lib/goldendocx/parts/media.rb', line 17 def target "media/#{@name}" end |
#type ⇒ Object
21 22 23 |
# File 'lib/goldendocx/parts/media.rb', line 21 def type 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image' end |
#write_to(zos) ⇒ Object
31 32 33 34 |
# File 'lib/goldendocx/parts/media.rb', line 31 def write_to(zos) zos.put_next_entry "word/#{target}" zos.write input_stream.read end |