class Notu::RecentTracks
Attributes
user_api[R]
Public Class Methods
new(user_api)
click to toggle source
# File lib/notu/recent_tracks.rb, line 9 def initialize(user_api) raise ArgumentError.new("#{self.class}#user_api must be specified") unless user_api @user_api = user_api end
Public Instance Methods
each() { |track(artist:, title:)| ... }
click to toggle source
# File lib/notu/recent_tracks.rb, line 14 def each return unless block_given? pages_count = nil page = 1 loop do json = JsonDocument.get(user_api.url(limit: 50, method: 'user.getRecentTracks', page:)) pages_count = json['recenttracks']['@attr']['totalPages'].to_i json['recenttracks']['track'].each do |track_json| artist = track_json['artist']['#text'] || next title = track_json['name'] || next yield(Track.new(artist:, title:)) end page += 1 break if page > pages_count end nil end