Class: DocxManipulator::Relationships
- Inherits:
-
Object
- Object
- DocxManipulator::Relationships
- Defined in:
- lib/docx_manipulator/relationships.rb
Instance Method Summary collapse
- #add_binary_image(id, name, data) ⇒ Object
- #add_image(id, path) ⇒ Object
-
#initialize(source) ⇒ Relationships
constructor
A new instance of Relationships.
- #process(output) ⇒ Object
- #writes_to_files ⇒ Object
Constructor Details
#initialize(source) ⇒ Relationships
Returns a new instance of Relationships.
6 7 8 9 10 |
# File 'lib/docx_manipulator/relationships.rb', line 6 def initialize(source) @relationships = read_relationships(source) @images = [] @binary_images = {} end |
Instance Method Details
#add_binary_image(id, name, data) ⇒ Object
26 27 28 29 30 |
# File 'lib/docx_manipulator/relationships.rb', line 26 def add_binary_image(id, name, data) name = I18n.transliterate(name) @binary_images[name] = data add_node(id, name) end |
#add_image(id, path) ⇒ Object
21 22 23 24 |
# File 'lib/docx_manipulator/relationships.rb', line 21 def add_image(id, path) @images << path add_node(id, I18n.transliterate(File.basename(path))) end |
#process(output) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/docx_manipulator/relationships.rb', line 45 def process(output) output.put_next_entry 'word/_rels/document.xml.rels' output.write @relationships.to_s @images.each do |path| output.put_next_entry "word/media/#{I18n.transliterate(File.basename(path))}" File.open(path) do |file| IO.copy_stream file, output end end @binary_images.each do |name, data| output.put_next_entry "word/media/#{I18n.transliterate(name)}" output.write data end end |
#writes_to_files ⇒ Object
41 42 43 |
# File 'lib/docx_manipulator/relationships.rb', line 41 def writes_to_files ['word/_rels/document.xml.rels'] end |