class SpotTracks::Feed
Constants
- HOST
Attributes
username[R]
Public Class Methods
new(username)
click to toggle source
# File lib/spot_tracks/feed.rb, line 9 def initialize(username) @username = username end
Public Instance Methods
title()
click to toggle source
# File lib/spot_tracks/feed.rb, line 13 def title return unless valid? client.title end
to_json()
click to toggle source
# File lib/spot_tracks/feed.rb, line 34 def to_json { title: title, url: url, tracks: tracks.map(&:to_h) }.to_json end
tracks()
click to toggle source
# File lib/spot_tracks/feed.rb, line 23 def tracks return [] unless valid? client.entries.map do |entry| SpotTracks::Track.search entry.title end.compact end
url()
click to toggle source
# File lib/spot_tracks/feed.rb, line 18 def url return unless valid? client.url end
valid?()
click to toggle source
# File lib/spot_tracks/feed.rb, line 30 def valid? !!client end
Private Instance Methods
client()
click to toggle source
# File lib/spot_tracks/feed.rb, line 44 def client @client ||= begin feed = Feedjira::Feed.fetch_and_parse(rss_url) feed.is_a?(Feedjira::Parser::RSS) ? feed : nil end end
rss_url()
click to toggle source
# File lib/spot_tracks/feed.rb, line 51 def rss_url "#{HOST}/1.0/user/#{username}/recenttracks.rss" end