Class: Napster::Models::Track
- Inherits:
-
Object
- Object
- Napster::Models::Track
- Defined in:
- lib/napster/models/track.rb
Overview
Track model
Constant Summary collapse
- ATTRIBUTES =
[:type, :id, :index, :disc, :href, :playback_seconds, :explicit, :name, :isrc, :shortcut, :amg, :blurbs, :artist_name, :album_name, :formats, :album_id, :contributors].freeze
Instance Attribute Summary collapse
-
#client ⇒ Object
Returns the value of attribute client.
Class Method Summary collapse
Instance Method Summary collapse
- #find(arg) ⇒ Object
- #find_all_by_name(name) ⇒ Object
- #find_by_id(id) ⇒ Object
- #find_by_name(name) ⇒ Object
-
#initialize(arg) ⇒ Track
constructor
A new instance of Track.
Constructor Details
#initialize(arg) ⇒ Track
Returns a new instance of Track.
31 32 33 34 35 36 37 38 |
# 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 |
Instance Attribute Details
#client ⇒ Object
Returns the value of attribute client.
29 30 31 |
# File 'lib/napster/models/track.rb', line 29 def client @client end |
Class Method Details
Instance Method Details
#find(arg) ⇒ Object
48 49 50 51 |
# 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) ⇒ Object
58 59 60 61 62 63 64 65 66 67 |
# File 'lib/napster/models/track.rb', line 58 def find_all_by_name(name) = { params: { q: name, type: 'track' } } response = @client.get('/search', ) Napster::Models::Track.collection(data: response['data']) end |
#find_by_id(id) ⇒ Object
53 54 55 56 |
# 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) ⇒ Object
69 70 71 |
# File 'lib/napster/models/track.rb', line 69 def find_by_name(name) find_all_by_name(name).first end |