Module: Id3Taginator::Frames::LyricsFrames

Includes:
Frameable
Included in:
Id3v2Tag
Defined in:
lib/id3taginator/frames/lyrics_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

#remove_unsync_lyrics(language, descriptor) ⇒ Object

removes an unsync lyrics 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/lyrics_frames.rb', line 34

def remove_unsync_lyrics(language, descriptor)
  @frames.delete_if do |f|
    f.frame_id == Lyrics::UnsyncLyricsFrame.frame_id(@major_version, @options) && f.language == language &&
      f.descriptor == descriptor
  end
end

#unsync_lyricsArray<Frames::Lyrics::Entities::UnsyncLyrics>

extracts the unsync lyrics (USLT/ULT)

Returns:



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

def unsync_lyrics
  frame = find_frames(Lyrics::UnsyncLyricsFrame.frame_id(@major_version, @options))
  return [] if frame.nil? || frame.empty?

  frame.map { |f| Lyrics::Entities::UnsyncLyrics.new(f.language, f.descriptor, f.lyrics) }
end

#unsync_lyrics=(lyrics) ⇒ Object Also known as: add_unsync_lyrics

adds an unsync lyrics. (USLT/ULT) Lyrics with the same language and descriptor will be updated.

Parameters:



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

def unsync_lyrics=(lyrics)
  set_frame_fields_by_selector(Lyrics::UnsyncLyricsFrame, %i[@language @descriptor @lyrics],
                               ->(f) { f.language == lyrics.language && f.descriptor == lyrics.descriptor },
                               lyrics.language, lyrics.descriptor, lyrics.lyrics)
end