class SpotifyToMp3::QueryResolver

Public Class Methods

new(spotify) click to toggle source
# File lib/spotify_to_mp3/query_resolver.rb, line 5
def initialize(spotify)
  @spotify = spotify
end

Public Instance Methods

resolve(query) click to toggle source
# File lib/spotify_to_mp3/query_resolver.rb, line 9
def resolve(query)
  tracks = []

  if @spotify.track_uri?(query)
    spotify_track = @spotify.get_track(query)
    tracks << convert_spotify_track(spotify_track)
  elsif @spotify.album_uri?(query)
    spotify_album = @spotify.get_album(query)
    spotify_album.tracks.each { |track| tracks << convert_spotify_track(track) }
  else
    tracks << resolve_plain_track(query)
  end

  tracks
end

Private Instance Methods

convert_spotify_track(track) click to toggle source
# File lib/spotify_to_mp3/query_resolver.rb, line 27
def convert_spotify_track(track)
  description = "#{track.artist} - #{track.name}"
  grooveshark_query = "artist:\"#{track.artist}\" title:\"#{track.name}\""

  Track.new(description, grooveshark_query)
end
resolve_plain_track(description) click to toggle source
# File lib/spotify_to_mp3/query_resolver.rb, line 34
def resolve_plain_track(description)
  Track.new(description)
end