Class: Hypem::Playlist
- Inherits:
-
Object
- Object
- Hypem::Playlist
- Defined in:
- lib/hypem/playlist.rb
Constant Summary collapse
- POPULAR_ARGS =
[%s(3day),:lastweek,:noremix,:artists,:twitter]
- GENERIC_METHODS =
[:blog, :search, :artist, :feed, :loved, :obsessed]
Instance Attribute Summary collapse
-
#extended ⇒ Object
readonly
Returns the value of attribute extended.
-
#path ⇒ Object
Returns the value of attribute path.
-
#tracks ⇒ Object
Returns the value of attribute tracks.
Class Method Summary collapse
- .friends_favorites(user, page = nil) ⇒ Object
- .friends_history(user, page = nil) ⇒ Object
- .latest(filter = :all, page = nil) ⇒ Object
- .new_from_tracks(tracks) ⇒ Object
- .popular(arg = POPULAR_ARGS.first, page = nil) ⇒ Object
- .tags(list, page) ⇒ Object
Instance Method Summary collapse
- #get ⇒ Object
-
#initialize(type, arg, page = nil) ⇒ Playlist
constructor
A new instance of Playlist.
- #next_page ⇒ Object
- #page(num) ⇒ Object
- #prev_page ⇒ Object
Constructor Details
#initialize(type, arg, page = nil) ⇒ Playlist
Returns a new instance of Playlist.
7 8 9 10 11 12 13 |
# File 'lib/hypem/playlist.rb', line 7 def initialize(type,arg,page=nil) page = 1 if page.nil? @type = type @arg = arg @page = page @path = "/playlist/#{@type}/#{@arg}" end |
Instance Attribute Details
#extended ⇒ Object (readonly)
Returns the value of attribute extended.
5 6 7 |
# File 'lib/hypem/playlist.rb', line 5 def extended @extended end |
#path ⇒ Object
Returns the value of attribute path.
4 5 6 |
# File 'lib/hypem/playlist.rb', line 4 def path @path end |
#tracks ⇒ Object
Returns the value of attribute tracks.
4 5 6 |
# File 'lib/hypem/playlist.rb', line 4 def tracks @tracks end |
Class Method Details
.friends_favorites(user, page = nil) ⇒ Object
54 55 56 |
# File 'lib/hypem/playlist.rb', line 54 def self.friends_favorites(user,page=nil) Playlist.new(:people,user,page) end |
.friends_history(user, page = nil) ⇒ Object
50 51 52 |
# File 'lib/hypem/playlist.rb', line 50 def self.friends_history(user,page=nil) Playlist.new(:people_history,user,page) end |
.latest(filter = :all, page = nil) ⇒ Object
39 40 41 42 |
# File 'lib/hypem/playlist.rb', line 39 def self.latest(filter=:all,page=nil) raise ArgumentError unless [:all, :noremix, :remix, :fresh].include? filter Playlist.new(:latest,filter,page).get end |
.new_from_tracks(tracks) ⇒ Object
34 35 36 37 |
# File 'lib/hypem/playlist.rb', line 34 def self.new_from_tracks(tracks) track_params = tracks.map(&:id).join(',') Playlist.new('set',track_params).tap { |p| p.tracks = tracks } end |
.popular(arg = POPULAR_ARGS.first, page = nil) ⇒ Object
44 45 46 47 48 |
# File 'lib/hypem/playlist.rb', line 44 def self.popular(arg=POPULAR_ARGS.first,page=nil) arg = arg.to_sym if arg.is_a? String raise ArgumentError unless POPULAR_ARGS.include?(arg) Playlist.new(:popular,arg,page).tap(&:get) end |
Instance Method Details
#get ⇒ Object
15 16 17 18 19 20 |
# File 'lib/hypem/playlist.rb', line 15 def get response = Request.get_data(path) @tracks ||= [] response.each{|v| tracks << Track.new(v)} self end |
#next_page ⇒ Object
22 23 24 |
# File 'lib/hypem/playlist.rb', line 22 def next_page Playlist.new(@type,@arg,@page+1).get end |