Class: Axlsx::VmlDrawing

Inherits:
Object
  • Object
show all
Defined in:
lib/axlsx/drawing/vml_drawing.rb

Overview

a vml drawing used for comments in excel.

Instance Method Summary collapse

Constructor Details

#initialize(comments) ⇒ VmlDrawing

creates a new Vml Drawing object.

Parameters:

  • comments (Comments)

    the comments object this drawing is associated with

Raises:

  • (ArgumentError)

8
9
10
11
# File 'lib/axlsx/drawing/vml_drawing.rb', line 8

def initialize(comments)
  raise ArgumentError, "you must provide a comments object" unless comments.is_a?(Comments)
  @comments = comments
end

Instance Method Details

#pnString

The part name for this vml drawing

Returns:

  • (String)

15
16
17
# File 'lib/axlsx/drawing/vml_drawing.rb', line 15

def pn
  "#{VML_DRAWING_PN}" % (@comments.worksheet.index + 1)
end

#to_xml_string(str = '') ⇒ String

serialize the vml_drawing to xml.

Parameters:

  • str (String) (defaults to: '')

Returns:

  • (String)

22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/axlsx/drawing/vml_drawing.rb', line 22

def to_xml_string(str = '')
  str << <<BAD_PROGRAMMER
<xml xmlns:v="urn:schemas-microsoft-com:vml"
 xmlns:o="urn:schemas-microsoft-com:office:office"
 xmlns:x="urn:schemas-microsoft-com:office:excel">
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="#{@comments.worksheet.index+1}"/>
 </o:shapelayout>
 <v:shapetype id="_x0000_t202" coordsize="21600,21600" o:spt="202"
  path="m0,0l0,21600,21600,21600,21600,0xe">
  <v:stroke joinstyle="miter"/>
  <v:path gradientshapeok="t" o:connecttype="rect"/>
 </v:shapetype>
BAD_PROGRAMMER
  @comments.each { |comment| comment.vml_shape.to_xml_string str }
  str << "</xml>"

end