Sha256: aa0c6c61afd12020f39a3644475262b6e37862a8f20254f93dee7e1d72e4294b
Contents?: true
Size: 813 Bytes
Versions: 2
Compression:
Stored size: 813 Bytes
Contents
module Notu class LovedTracks include Enumerable attr_reader :user_api def initialize(user_api) raise ArgumentError.new("#{self.class}#user_api must be specified") unless user_api @user_api = user_api end def each return unless block_given? pages_count = nil page = 1 loop do json = JsonDocument.get(user_api.url(limit: 50, method: 'user.getLovedTracks', page:)) pages_count = json['lovedtracks']['@attr']['totalPages'].to_i json['lovedtracks']['track'].each do |track_json| artist = track_json['artist']['name'] || next title = track_json['name'] || next yield(Track.new(artist:, title:)) end page += 1 break if page > pages_count end nil end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
notu-5.0.1 | lib/notu/loved_tracks.rb |
notu-5.0.0 | lib/notu/loved_tracks.rb |