Class: Axlsx::Comments
- Inherits:
-
SimpleTypedList
- Object
- SimpleTypedList
- Axlsx::Comments
- Defined in:
- lib/axlsx/workbook/worksheet/comments.rb
Overview
Comments is a collection of Comment objects for a worksheet
Instance Attribute Summary collapse
-
#vml_drawing ⇒ VmlDrawing
readonly
the vml_drawing that holds the shapes for comments.
-
#worksheet ⇒ Worksheet
readonly
The worksheet that these comments belong to.
Instance Method Summary collapse
-
#add_comment(options = {}) {|last| ... } ⇒ Object
Adds a new comment to the worksheet that owns these comments.
-
#authors ⇒ Array
A sorted list of the unique authors in the contained comments.
-
#index ⇒ Integer
The index of this collection in the workbook.
-
#initialize(worksheet) ⇒ Comments
constructor
Creates a new Comments object.
-
#pn ⇒ String
The part name for this object.
-
#relationships ⇒ Array
The relationships required by this object.
-
#to_xml_string(str = "") ⇒ String
serialize the object.
Constructor Details
#initialize(worksheet) ⇒ Comments
Creates a new Comments object
26 27 28 29 30 31 32 |
# File 'lib/axlsx/workbook/worksheet/comments.rb', line 26 def initialize(worksheet) raise ArgumentError, "you must provide a worksheet" unless worksheet.is_a?(Worksheet) super(Comment) @worksheet = worksheet @vml_drawing = VmlDrawing.new(self) end |
Instance Attribute Details
#vml_drawing ⇒ VmlDrawing (readonly)
the vml_drawing that holds the shapes for comments
6 7 8 |
# File 'lib/axlsx/workbook/worksheet/comments.rb', line 6 def vml_drawing @vml_drawing end |
#worksheet ⇒ Worksheet (readonly)
The worksheet that these comments belong to
10 11 12 |
# File 'lib/axlsx/workbook/worksheet/comments.rb', line 10 def worksheet @worksheet end |
Instance Method Details
#add_comment(options = {}) {|last| ... } ⇒ Object
the author, text and ref options are required
Adds a new comment to the worksheet that owns these comments.
39 40 41 42 43 44 45 46 47 |
# File 'lib/axlsx/workbook/worksheet/comments.rb', line 39 def add_comment( = {}) raise ArgumentError, "Comment require an author" unless [:author] raise ArgumentError, "Comment requires text" unless [:text] raise ArgumentError, "Comment requires ref" unless [:ref] self << Comment.new(self, ) yield last if block_given? last end |
#authors ⇒ Array
A sorted list of the unique authors in the contained comments
51 52 53 |
# File 'lib/axlsx/workbook/worksheet/comments.rb', line 51 def map { |comment| comment..to_s }.uniq.sort end |
#index ⇒ Integer
The index of this collection in the workbook. Effectively the index of the worksheet.
14 15 16 |
# File 'lib/axlsx/workbook/worksheet/comments.rb', line 14 def index @worksheet.index end |
#pn ⇒ String
The part name for this object
20 21 22 |
# File 'lib/axlsx/workbook/worksheet/comments.rb', line 20 def pn "#{COMMENT_PN % (index + 1)}" end |
#relationships ⇒ Array
The relationships required by this object
57 58 59 60 |
# File 'lib/axlsx/workbook/worksheet/comments.rb', line 57 def relationships [Relationship.new(self, VML_DRAWING_R, "../#{vml_drawing.pn}"), Relationship.new(self, COMMENT_R, "../#{pn}")] end |
#to_xml_string(str = "") ⇒ String
serialize the object
65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/axlsx/workbook/worksheet/comments.rb', line 65 def to_xml_string(str = "") str << '<?xml version="1.0" encoding="UTF-8"?>' str << ('<comments xmlns="' << XML_NS << '"><authors>') .each do || str << ('<author>' << .to_s << '</author>') end str << '</authors><commentList>' each do |comment| comment.to_xml_string str end str << '</commentList></comments>' end |