Class: Rubyword::Element::Link

Inherits:
Base
  • Object
show all
Defined in:
lib/rubyword/element/link.rb

Instance Attribute Summary collapse

Attributes inherited from Base

#rubyword, #section

Instance Method Summary collapse

Methods inherited from Base

#filter_text, #initialize

Constructor Details

This class inherits a constructor from Rubyword::Element::Base

Instance Attribute Details

Returns the value of attribute links.



5
6
7
# File 'lib/rubyword/element/link.rb', line 5

def links
  @links
end

Instance Method Details

#save(text, link, style = nil) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/rubyword/element/link.rb', line 6

def save(text, link, style=nil)
					@links ||= Queue.new
  return if text.nil?
  text = filter_text(text)
					@rubyword.rels_documents << {
						Id: "rId#{@rubyword.init_rid}",
						Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink',
						Target: link,
						TargetMode: 'External'
					}
					@links << { rId: @rubyword.init_rid, text: text, link: link, style: style }
					@rubyword.init_rid = @rubyword.init_rid + 1
end

#write(section = nil, xml = nil) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/rubyword/element/link.rb', line 20

def write(section=nil, xml=nil)
	@xml = xml
      link = self.links.pop
      @xml.send('w:p') {
        Writer::Style::Paragraph.new(@section, @xml, @rubyword).write(link[:style])
        @xml.send('hyperlink', 'r:id' => "rId#{link[:rId]}", 'w:history' => '1') {
          @xml.send('w:r') {
            Writer::Style::Word.new(@section, @xml, @rubyword).write(link[:style])
            @xml.send('w:t', {'xml:space' => 'preserve'}, link[:text])
          }
        }
      }
end