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