Class: Axlsx::Comments
- Inherits:
-
SimpleTypedList
- Object
- Array
- 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
28 29 30 31 32 33 34 |
# File 'lib/axlsx/workbook/worksheet/comments.rb', line 28 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
8 9 10 |
# File 'lib/axlsx/workbook/worksheet/comments.rb', line 8 def vml_drawing @vml_drawing end |
#worksheet ⇒ Worksheet (readonly)
The worksheet that these comments belong to
12 13 14 |
# File 'lib/axlsx/workbook/worksheet/comments.rb', line 12 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.
41 42 43 44 45 46 47 48 49 |
# File 'lib/axlsx/workbook/worksheet/comments.rb', line 41 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
53 54 55 |
# File 'lib/axlsx/workbook/worksheet/comments.rb', line 53 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.
16 17 18 |
# File 'lib/axlsx/workbook/worksheet/comments.rb', line 16 def index @worksheet.index end |
#pn ⇒ String
The part name for this object
22 23 24 |
# File 'lib/axlsx/workbook/worksheet/comments.rb', line 22 def pn format(COMMENT_PN, index + 1) end |
#relationships ⇒ Array
The relationships required by this object
59 60 61 62 |
# File 'lib/axlsx/workbook/worksheet/comments.rb', line 59 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
67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/axlsx/workbook/worksheet/comments.rb', line 67 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 |