class Napster::Models::Track

Track model

Constants

ATTRIBUTES

Attributes

client[RW]

Public Class Methods

collection(arg) click to toggle source
# File lib/napster/models/track.rb, line 40
def self.collection(arg)
  return if !arg || !arg[:data]

  arg[:data].map do |track|
    Track.new(data: track, client: @client)
  end
end
new(arg) click to toggle source
# File lib/napster/models/track.rb, line 31
def initialize(arg)
  @client = arg[:client] if arg[:client]
  return unless arg[:data]

  ATTRIBUTES.each do |attribute|
    send("#{attribute}=", arg[:data][attribute.to_s.camel_case_lower])
  end
end

Public Instance Methods

find(arg) click to toggle source
# File lib/napster/models/track.rb, line 48
def find(arg)
  return find_by_id(arg) if Napster::Moniker.check(arg, :track)
  find_by_name(arg)
end
find_all_by_name(name) click to toggle source
# File lib/napster/models/track.rb, line 58
def find_all_by_name(name)
  options = {
    params: {
      q: name,
      type: 'track'
    }
  }
  response = @client.get('/search', options)
  Napster::Models::Track.collection(data: response['data'])
end
find_by_id(id) click to toggle source
# File lib/napster/models/track.rb, line 53
def find_by_id(id)
  response = @client.get("/tracks/#{id}")
  Napster::Models::Track.new(data: response['tracks'].first)
end
find_by_name(name) click to toggle source
# File lib/napster/models/track.rb, line 69
def find_by_name(name)
  find_all_by_name(name).first
end