notu 0.1.6 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +4 -4
- data/README.mdown +12 -8
- data/VERSION +1 -1
- data/lib/notu.rb +1 -0
- data/lib/notu/listing.rb +30 -0
- data/lib/notu/loved_tracks.rb +7 -20
- data/lib/notu/most_played_tracks.rb +24 -15
- data/spec/cassettes/Notu_HtmlDocument/_get/follows_redirects.yml +23 -32
- data/spec/cassettes/Notu_HtmlDocument/_get/raise_a_NetworkError_on_404.yml +9 -16
- data/spec/cassettes/Notu_HtmlDocument/_get/raise_a_ParseError_if_not_a_valid_document.yml +22 -20
- data/spec/cassettes/Notu_HtmlDocument/_get/returns_document_parsed.yml +21 -30
- data/spec/cassettes/Notu_HttpDownload/_get/accepts_HTTPS_URL.yml +21 -30
- data/spec/cassettes/Notu_HttpDownload/_get/follow_redirects.yml +23 -32
- data/spec/cassettes/Notu_HttpDownload/_get/raise_a_NetworkError_if_too_many_redirects.yml +3 -3
- data/spec/cassettes/Notu_HttpDownload/_get/raise_a_NetworkError_on_404.yml +9 -16
- data/spec/cassettes/Notu_HttpDownload/_get/retrives_document_from_given_URL.yml +21 -30
- data/spec/cassettes/Notu_LovedTracks/_each/returns_nil.yml +3906 -2531
- data/spec/cassettes/Notu_LovedTracks/_each/returns_some_tracks.yml +7805 -5039
- data/spec/cassettes/Notu_LovedTracks/_page_urls/is_correct.yml +7800 -5013
- data/spec/cassettes/Notu_LovedTracks/_pages_count/is_correct.yml +3900 -2507
- data/spec/cassettes/Notu_MostPlayedTracks/_each/returns_nil.yml +2597 -6489
- data/spec/cassettes/Notu_MostPlayedTracks/_each/returns_some_tracks.yml +9435 -13402
- data/spec/cassettes/Notu_MostPlayedTracks/_page_urls/is_correct.yml +9613 -0
- data/spec/cassettes/Notu_MostPlayedTracks/_pages_count/is_correct.yml +5085 -0
- data/spec/notu/library_spec.rb +2 -2
- data/spec/notu/loved_tracks_spec.rb +20 -4
- data/spec/notu/most_played_tracks_spec.rb +44 -7
- metadata +7 -2
data/spec/notu/library_spec.rb
CHANGED
@@ -37,11 +37,11 @@ describe Notu::Library do
|
|
37
37
|
it 'returns a LovedTracks object' do
|
38
38
|
most_played_tracks = library.most_played_tracks
|
39
39
|
expect(most_played_tracks).to be_a(Notu::MostPlayedTracks)
|
40
|
-
expect(most_played_tracks.period).to eq('
|
40
|
+
expect(most_played_tracks.period).to eq('7 days')
|
41
41
|
end
|
42
42
|
|
43
43
|
it 'accepts options' do
|
44
|
-
expect(library.most_played_tracks(period: '
|
44
|
+
expect(library.most_played_tracks(period: '30 days').period).to eq('30 days')
|
45
45
|
end
|
46
46
|
|
47
47
|
end
|
@@ -42,10 +42,10 @@ describe Notu::LovedTracks, :vcr do
|
|
42
42
|
describe '#page_urls' do
|
43
43
|
|
44
44
|
it 'is correct' do
|
45
|
-
urls = loved_tracks.
|
46
|
-
expect(urls.size).to eq(loved_tracks.
|
47
|
-
expect(urls).to include('http://www.last.fm/user/alexistoulotte/
|
48
|
-
expect(urls).to include('http://www.last.fm/user/alexistoulotte/
|
45
|
+
urls = loved_tracks.page_urls
|
46
|
+
expect(urls.size).to eq(loved_tracks.pages_count)
|
47
|
+
expect(urls).to include('http://www.last.fm/user/alexistoulotte/loved?page=12')
|
48
|
+
expect(urls).to include('http://www.last.fm/user/alexistoulotte/loved?page=3')
|
49
49
|
end
|
50
50
|
|
51
51
|
end
|
@@ -58,4 +58,20 @@ describe Notu::LovedTracks, :vcr do
|
|
58
58
|
|
59
59
|
end
|
60
60
|
|
61
|
+
describe '#params' do
|
62
|
+
|
63
|
+
it 'is an empty hash' do
|
64
|
+
expect(loved_tracks.params).to eq({})
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
|
69
|
+
describe '#path' do
|
70
|
+
|
71
|
+
it 'is "loved"' do
|
72
|
+
expect(loved_tracks.path).to eq('loved')
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
|
61
77
|
end
|
@@ -22,7 +22,7 @@ describe Notu::MostPlayedTracks, :vcr do
|
|
22
22
|
describe '#each' do
|
23
23
|
|
24
24
|
it 'returns some tracks' do
|
25
|
-
allow(most_played_tracks).to receive(:period).and_return('
|
25
|
+
allow(most_played_tracks).to receive(:period).and_return('90 days')
|
26
26
|
tracks = most_played_tracks.take(28)
|
27
27
|
expect(tracks.size).to eq(28)
|
28
28
|
tracks.each do |track|
|
@@ -39,24 +39,61 @@ describe Notu::MostPlayedTracks, :vcr do
|
|
39
39
|
|
40
40
|
end
|
41
41
|
|
42
|
+
describe '#page_urls' do
|
43
|
+
|
44
|
+
it 'is correct' do
|
45
|
+
allow(most_played_tracks).to receive(:period).and_return('365 days')
|
46
|
+
urls = most_played_tracks.page_urls
|
47
|
+
expect(urls.size).to eq(most_played_tracks.pages_count)
|
48
|
+
expect(urls).to include('http://www.last.fm/user/alexistoulotte/library/tracks?date_preset=LAST_365_DAYS&page=5')
|
49
|
+
expect(urls).to include('http://www.last.fm/user/alexistoulotte/library/tracks?date_preset=LAST_365_DAYS&page=2')
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
describe '#pages_count' do
|
55
|
+
|
56
|
+
it 'is correct' do
|
57
|
+
allow(most_played_tracks).to receive(:period).and_return('Overall')
|
58
|
+
expect(most_played_tracks.pages_count).to be_within(150).of(250)
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
describe '#params' do
|
64
|
+
|
65
|
+
it 'includes period' do
|
66
|
+
expect(most_played_tracks.params).to eq({ 'date_preset' => 'LAST_7_DAYS' })
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
describe '#path' do
|
72
|
+
|
73
|
+
it 'is "library/tracks"' do
|
74
|
+
expect(most_played_tracks.path).to eq('library/tracks')
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
78
|
+
|
42
79
|
describe '#period' do
|
43
80
|
|
44
|
-
it 'is "
|
45
|
-
expect(most_played_tracks.period).to eq('
|
81
|
+
it 'is "7 days" by default' do
|
82
|
+
expect(most_played_tracks.period).to eq('7 days')
|
46
83
|
end
|
47
84
|
|
48
85
|
it 'can be specified via option' do
|
49
|
-
expect(Notu::MostPlayedTracks.new(library, period: '
|
86
|
+
expect(Notu::MostPlayedTracks.new(library, period: '90 days').period).to eq('90 days')
|
50
87
|
end
|
51
88
|
|
52
89
|
it 'can be specified via option (as string)' do
|
53
|
-
expect(Notu::MostPlayedTracks.new(library, 'period' => '
|
90
|
+
expect(Notu::MostPlayedTracks.new(library, 'period' => '90 days').period).to eq('90 days')
|
54
91
|
end
|
55
92
|
|
56
93
|
it 'raise an error if invalid' do
|
57
94
|
expect {
|
58
|
-
Notu::MostPlayedTracks.new(library, period: '
|
59
|
-
}.to raise_error(ArgumentError, 'Notu::MostPlayedTracks#period is invalid: "
|
95
|
+
Notu::MostPlayedTracks.new(library, period: '180 days')
|
96
|
+
}.to raise_error(ArgumentError, 'Notu::MostPlayedTracks#period is invalid: "180 days"')
|
60
97
|
end
|
61
98
|
|
62
99
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: notu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexis Toulotte
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-08-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -168,6 +168,7 @@ files:
|
|
168
168
|
- lib/notu/html_document.rb
|
169
169
|
- lib/notu/http_download.rb
|
170
170
|
- lib/notu/library.rb
|
171
|
+
- lib/notu/listing.rb
|
171
172
|
- lib/notu/loved_tracks.rb
|
172
173
|
- lib/notu/most_played_tracks.rb
|
173
174
|
- lib/notu/network_error.rb
|
@@ -189,6 +190,8 @@ files:
|
|
189
190
|
- spec/cassettes/Notu_LovedTracks/_pages_count/is_correct.yml
|
190
191
|
- spec/cassettes/Notu_MostPlayedTracks/_each/returns_nil.yml
|
191
192
|
- spec/cassettes/Notu_MostPlayedTracks/_each/returns_some_tracks.yml
|
193
|
+
- spec/cassettes/Notu_MostPlayedTracks/_page_urls/is_correct.yml
|
194
|
+
- spec/cassettes/Notu_MostPlayedTracks/_pages_count/is_correct.yml
|
192
195
|
- spec/notu/error_spec.rb
|
193
196
|
- spec/notu/html_document_spec.rb
|
194
197
|
- spec/notu/http_download_spec.rb
|
@@ -240,6 +243,8 @@ test_files:
|
|
240
243
|
- spec/cassettes/Notu_LovedTracks/_pages_count/is_correct.yml
|
241
244
|
- spec/cassettes/Notu_MostPlayedTracks/_each/returns_nil.yml
|
242
245
|
- spec/cassettes/Notu_MostPlayedTracks/_each/returns_some_tracks.yml
|
246
|
+
- spec/cassettes/Notu_MostPlayedTracks/_page_urls/is_correct.yml
|
247
|
+
- spec/cassettes/Notu_MostPlayedTracks/_pages_count/is_correct.yml
|
243
248
|
- spec/notu/error_spec.rb
|
244
249
|
- spec/notu/html_document_spec.rb
|
245
250
|
- spec/notu/http_download_spec.rb
|