Module: Id3Taginator::Frames::CommentFrames

Includes:
Frameable
Included in:
Id3v2Tag
Defined in:
lib/id3taginator/frames/comment_frames.rb

Instance Method Summary collapse

Methods included from Frameable

#find_frame, #find_frames, #set_frame_fields, #set_frame_fields_by_selector, #unsupported_frame

Instance Method Details

#comment=(comment) ⇒ Object Also known as: add_comment

adds a comment (COMM/COM) Multiple ones can be added, as long as they have different language/descriptor

Parameters:



22
23
24
25
26
# File 'lib/id3taginator/frames/comment_frames.rb', line 22

def comment=(comment)
  set_frame_fields_by_selector(Comment::CommentFrame, i[@language @descriptor @text],
                               ->(f) { f.language == comment.language && f.descriptor == comment.descriptor },
                               comment.language, comment.descriptor, comment.text)
end

#commentsArray<Frames::Comment::Entities::Comment>

extracts the comments (COMM/COM)

Returns:



11
12
13
14
15
16
# File 'lib/id3taginator/frames/comment_frames.rb', line 11

def comments
  frame = find_frames(Comment::CommentFrame.frame_id(@major_version, @options))
  return [] if frame.nil? || frame.empty?

  frame.map { |f| Comment::Entities::Comment.new(f.language, f.descriptor, f.text) }
end

#remove_comment(language, descriptor) ⇒ Object

removes a comment for the specific language and descriptor

Parameters:

  • language (String)

    the language

  • descriptor (String)

    the descriptor



34
35
36
37
38
39
# File 'lib/id3taginator/frames/comment_frames.rb', line 34

def remove_comment(language, descriptor)
  @frames.delete_if do |f|
    f.frame_id == Comment::CommentFrame.frame_id(@major_version, @options) && f.language == language &&
      f.descriptor == descriptor
  end
end