krists/id3tag

View on GitHub
lib/id3tag/frames/v2/genre_frame.rb

Summary

Maintainability
A
0 mins
Test Coverage
module ID3Tag
  module Frames
    module  V2
      class GenreFrame < TextFrame
        class MissingGenreParser < StandardError; end

        def genres
          @genres ||= get_genres
        end

        alias text_frame_content content
        private :text_frame_content

        def content
          genres.join(", ")
        end

        alias inspectable_content content

        private

        def get_genres
          genre_parser.new(text_frame_content).genres
        end

        def genre_parser
          case @major_version_number
          when 0...4
            GenreParserPre24
          when 4
            GenreParser24
          else
            raise(MissingGenreParser, "Missing genre parser for tag version v.2.#{@major_version_number}")
          end
        end
      end
    end
  end
end