Sha256: 14fae71081f8b0a70da5d25df8b9378a6262d89bb0b4f4c022f9c27aa256b57d

Contents?: true

Size: 1.29 KB

Versions: 3

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true

module AppleMusic
  class Playlist < Resource
    # https://developer.apple.com/documentation/applemusicapi/playlist/attributes
    class Attributes
      attr_reader :artwork, :curator_name, :description, :last_modified_date,
                  :name, :play_params, :playlist_type, :url, :is_chart

      def initialize(props = {})
        @artwork = Artwork.new(props['artwork']) if props['artwork']
        @curator_name = props['curatorName']
        @description = EditorialNotes.new(props['description']) if props['description']
        @last_modified_date = Date.parse(props['lastModifiedDate']) if props['lastModifiedDate']
        @name = props['name'] # required
        @play_params = PlayParameters.new(props['playParams']) if props['playParams']
        @playlist_type = props['playlistType'] # required
        @url = props['url'] # required
        @is_chart = props['isChart']
      end

      def chart?
        is_chart
      end

      def user_shared?
        playlist_type == 'user-shared'
      end

      def editorial?
        playlist_type == 'editorial'
      end

      def external?
        playlist_type == 'external'
      end

      def personal_mix?
        playlist_type == 'personal-mix'
      end
    end

    self.attributes_model = self::Attributes
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
apple_music-0.3.1 lib/apple_music/playlist/attributes.rb
apple_music-0.3.0 lib/apple_music/playlist/attributes.rb
apple_music-0.2.0 lib/apple_music/playlist/attributes.rb