Module: Notu::Listing
- Includes:
- Enumerable
- Included in:
- LovedTracks, MostPlayedTracks, PlayedTracks
- Defined in:
- lib/notu/listing.rb
Instance Attribute Summary collapse
-
#library ⇒ Object
readonly
Returns the value of attribute library.
Instance Method Summary collapse
Instance Attribute Details
#library ⇒ Object (readonly)
Returns the value of attribute library.
7 8 9 |
# File 'lib/notu/listing.rb', line 7 def library @library end |
Instance Method Details
#initialize(library) ⇒ Object
9 10 11 12 |
# File 'lib/notu/listing.rb', line 9 def initialize(library) raise ArgumentError.new("#{self.class}#library must be a library, #{library.inspect} given") unless library.is_a?(Library) @library = library end |
#page_urls ⇒ Object
14 15 16 17 18 |
# File 'lib/notu/listing.rb', line 14 def page_urls (1..pages_count).map do |index| library.url(path: path, query: params.merge('page' => index)) end end |
#pages_count ⇒ Object
20 21 22 23 |
# File 'lib/notu/listing.rb', line 20 def pages_count document = HtmlDocument.get(library.url(path: path, query: params)) [1, (document/'ul.pagination-list li.pagination-page').text.split(/\s+/).map(&:to_i)].flatten.compact.max end |
#params ⇒ Object
25 26 27 28 |
# File 'lib/notu/listing.rb', line 25 def params # to be overriden {} end |