notu 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/notu.gemspec +1 -2
- metadata +3 -73
- data/.gitignore +0 -5
- data/.rspec +0 -2
- data/Gemfile +0 -3
- data/Rakefile +0 -10
- data/spec/cassettes/Notu_HtmlDocument/_get/follows_redirects.yml +0 -167
- data/spec/cassettes/Notu_HtmlDocument/_get/raise_a_NetworkError_on_404.yml +0 -71
- data/spec/cassettes/Notu_HtmlDocument/_get/raise_a_ParseError_if_not_a_valid_document.yml +0 -365
- data/spec/cassettes/Notu_HtmlDocument/_get/returns_document_parsed.yml +0 -125
- data/spec/cassettes/Notu_HttpDownload/_get/accepts_HTTPS_URL.yml +0 -125
- data/spec/cassettes/Notu_HttpDownload/_get/follow_redirects.yml +0 -167
- data/spec/cassettes/Notu_HttpDownload/_get/raise_a_NetworkError_if_too_many_redirects.yml +0 -45
- data/spec/cassettes/Notu_HttpDownload/_get/raise_a_NetworkError_on_404.yml +0 -71
- data/spec/cassettes/Notu_HttpDownload/_get/retrives_document_from_given_URL.yml +0 -125
- data/spec/cassettes/Notu_LovedTracks/_each/returns_nil.yml +0 -7013
- data/spec/cassettes/Notu_LovedTracks/_each/returns_some_tracks.yml +0 -14021
- data/spec/cassettes/Notu_LovedTracks/_page_urls/is_correct.yml +0 -14019
- data/spec/cassettes/Notu_LovedTracks/_pages_count/is_correct.yml +0 -7011
- data/spec/cassettes/Notu_MostPlayedTracks/_each/returns_nil.yml +0 -22449
- data/spec/cassettes/Notu_MostPlayedTracks/_each/returns_some_tracks.yml +0 -16108
- data/spec/cassettes/Notu_MostPlayedTracks/_page_urls/is_correct.yml +0 -16473
- data/spec/cassettes/Notu_MostPlayedTracks/_pages_count/is_correct.yml +0 -8529
- data/spec/cassettes/Notu_PlayedTracks/_each/returns_nil.yml +0 -7917
- data/spec/cassettes/Notu_PlayedTracks/_each/returns_some_tracks.yml +0 -15829
- data/spec/cassettes/Notu_PlayedTracks/_page_urls/is_correct.yml +0 -15827
- data/spec/cassettes/Notu_PlayedTracks/_pages_count/is_correct.yml +0 -7915
- data/spec/notu/error_spec.rb +0 -40
- data/spec/notu/html_document_spec.rb +0 -31
- data/spec/notu/http_download_spec.rb +0 -39
- data/spec/notu/library_spec.rb +0 -138
- data/spec/notu/loved_tracks_spec.rb +0 -77
- data/spec/notu/most_played_tracks_spec.rb +0 -101
- data/spec/notu/network_error_spec.rb +0 -15
- data/spec/notu/parse_error_spec.rb +0 -15
- data/spec/notu/played_tracks_spec.rb +0 -62
- data/spec/notu/track_spec.rb +0 -141
- data/spec/spec_helper.rb +0 -10
- data/spec/support/vcr.rb +0 -8
@@ -1,62 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Notu::PlayedTracks, :vcr do
|
4
|
-
|
5
|
-
let(:library) { Notu::Library.new(username: 'alexistoulotte') }
|
6
|
-
let(:played_tracks) { Notu::PlayedTracks.new(library) }
|
7
|
-
|
8
|
-
describe '#each' do
|
9
|
-
|
10
|
-
it 'returns some tracks' do
|
11
|
-
tracks = played_tracks.take(42)
|
12
|
-
expect(tracks.size).to eq(42)
|
13
|
-
tracks.each do |track|
|
14
|
-
expect(track).to be_a(Notu::Track)
|
15
|
-
expect(track.artist).to be_present
|
16
|
-
expect(track.plays_count).to be_nil
|
17
|
-
expect(track.title).to be_present
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'returns nil' do
|
22
|
-
allow(played_tracks).to receive(:pages_count).and_return(1)
|
23
|
-
expect(played_tracks.each {}).to be_nil
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
27
|
-
|
28
|
-
describe '#page_urls' do
|
29
|
-
|
30
|
-
it 'is correct' do
|
31
|
-
urls = played_tracks.page_urls
|
32
|
-
expect(urls.size).to eq(played_tracks.pages_count)
|
33
|
-
expect(urls).to include('https://www.last.fm/user/alexistoulotte/library?page=12')
|
34
|
-
expect(urls).to include('https://www.last.fm/user/alexistoulotte/library?page=3')
|
35
|
-
end
|
36
|
-
|
37
|
-
end
|
38
|
-
|
39
|
-
describe '#pages_count' do
|
40
|
-
|
41
|
-
it 'is correct' do
|
42
|
-
expect(played_tracks.pages_count).to be_within(500).of(1500)
|
43
|
-
end
|
44
|
-
|
45
|
-
end
|
46
|
-
|
47
|
-
describe '#params' do
|
48
|
-
|
49
|
-
it 'is an empty hash' do
|
50
|
-
expect(played_tracks.params).to eq({})
|
51
|
-
end
|
52
|
-
|
53
|
-
end
|
54
|
-
|
55
|
-
describe '#path' do
|
56
|
-
|
57
|
-
it 'is "library"' do
|
58
|
-
expect(played_tracks.path).to eq('library')
|
59
|
-
end
|
60
|
-
|
61
|
-
end
|
62
|
-
end
|
data/spec/notu/track_spec.rb
DELETED
@@ -1,141 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Notu::Track do
|
4
|
-
|
5
|
-
let(:track) { Notu::Track.new(artist: 'Serial Killaz', title: 'Good Enough') }
|
6
|
-
|
7
|
-
describe '#<=>' do
|
8
|
-
|
9
|
-
let(:other) { track.dup }
|
10
|
-
|
11
|
-
it 'compares track by artist' do
|
12
|
-
expect {
|
13
|
-
allow(other).to receive(:artist).and_return('Technimatic')
|
14
|
-
}.to change { track <=> other }.from(0).to(-1)
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'compares track by artist and then by title' do
|
18
|
-
expect {
|
19
|
-
allow(other).to receive(:title).and_return('Send Dem')
|
20
|
-
}.to change { track <=> other }.from(0).to(-1)
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'returns nil if given track is not a track' do
|
24
|
-
expect(track <=> nil).to be_nil
|
25
|
-
expect(track <=> 'foo').to be_nil
|
26
|
-
end
|
27
|
-
|
28
|
-
end
|
29
|
-
|
30
|
-
describe '#==' do
|
31
|
-
|
32
|
-
let(:other) { track.dup }
|
33
|
-
|
34
|
-
it 'is false if not a track' do
|
35
|
-
expect(track == 'foo').to be(false)
|
36
|
-
end
|
37
|
-
|
38
|
-
it 'is false if artist differs' do
|
39
|
-
expect {
|
40
|
-
allow(other).to receive(:artist).and_return('Foo')
|
41
|
-
}.to change { track == other }.from(true).to(false)
|
42
|
-
end
|
43
|
-
|
44
|
-
it 'is false if title differs' do
|
45
|
-
expect {
|
46
|
-
allow(other).to receive(:title).and_return('Bar')
|
47
|
-
}.to change { track == other }.from(true).to(false)
|
48
|
-
end
|
49
|
-
|
50
|
-
it 'is true if plays_count differs' do
|
51
|
-
expect {
|
52
|
-
allow(other).to receive(:plays_count).and_return(102)
|
53
|
-
}.not_to change { track == other }
|
54
|
-
end
|
55
|
-
|
56
|
-
end
|
57
|
-
|
58
|
-
describe '#eql?' do
|
59
|
-
|
60
|
-
it 'is true for same object' do
|
61
|
-
expect(track.eql?(track)).to be(true)
|
62
|
-
end
|
63
|
-
|
64
|
-
it 'is true if == returns true' do
|
65
|
-
other = track.dup
|
66
|
-
expect {
|
67
|
-
allow(track).to receive(:==).and_return(false)
|
68
|
-
}.to change { track.eql?(other) }.from(true).to(false)
|
69
|
-
end
|
70
|
-
|
71
|
-
end
|
72
|
-
|
73
|
-
describe '#artist' do
|
74
|
-
|
75
|
-
it 'is value set at initialization' do
|
76
|
-
expect(track.artist).to eq('Serial Killaz')
|
77
|
-
end
|
78
|
-
|
79
|
-
it 'is squished' do
|
80
|
-
expect(Notu::Track.new(artist: 'Serial Killaz ', title: 'Good Enough').artist).to eq('Serial Killaz')
|
81
|
-
end
|
82
|
-
|
83
|
-
it 'raise an error if blank' do
|
84
|
-
expect {
|
85
|
-
Notu::Track.new(artist: ' ', title: 'Good Enough')
|
86
|
-
}.to raise_error(Notu::Error, 'Notu::Track#artist must be specified, " " given')
|
87
|
-
end
|
88
|
-
|
89
|
-
end
|
90
|
-
|
91
|
-
describe '#plays_count' do
|
92
|
-
|
93
|
-
it 'is nil by default' do
|
94
|
-
expect(track.plays_count).to be_nil
|
95
|
-
end
|
96
|
-
|
97
|
-
it 'can be specified' do
|
98
|
-
expect(Notu::Track.new(artist: 'Serial Killaz', plays_count: 42, title: 'Good Enough').plays_count).to eq(42)
|
99
|
-
end
|
100
|
-
|
101
|
-
it 'can be specified (as string)' do
|
102
|
-
expect(Notu::Track.new(artist: 'Serial Killaz', plays_count: '42', title: 'Good Enough').plays_count).to eq(42)
|
103
|
-
end
|
104
|
-
|
105
|
-
it 'is nil if invalid' do
|
106
|
-
expect(Notu::Track.new(artist: 'Serial Killaz', plays_count: 'foo', title: 'Good Enough').plays_count).to be_nil
|
107
|
-
end
|
108
|
-
|
109
|
-
it 'is 0 if negatve' do
|
110
|
-
expect(Notu::Track.new(artist: 'Serial Killaz', plays_count: -1, title: 'Good Enough').plays_count).to eq(0)
|
111
|
-
end
|
112
|
-
|
113
|
-
end
|
114
|
-
|
115
|
-
describe '#title' do
|
116
|
-
|
117
|
-
it 'is value set at initialization' do
|
118
|
-
expect(track.title).to eq('Good Enough')
|
119
|
-
end
|
120
|
-
|
121
|
-
it 'is squished' do
|
122
|
-
expect(Notu::Track.new(artist: 'Serial Killaz', title: ' Good Enough').title).to eq('Good Enough')
|
123
|
-
end
|
124
|
-
|
125
|
-
it 'raise an error if blank' do
|
126
|
-
expect {
|
127
|
-
Notu::Track.new(artist: 'Serial Killaz', title: ' ')
|
128
|
-
}.to raise_error(Notu::Error, 'Notu::Track#title must be specified, " " given')
|
129
|
-
end
|
130
|
-
|
131
|
-
end
|
132
|
-
|
133
|
-
describe '#to_s' do
|
134
|
-
|
135
|
-
it 'is "artist - title"' do
|
136
|
-
expect(track.to_s).to eq('Serial Killaz - Good Enough')
|
137
|
-
end
|
138
|
-
|
139
|
-
end
|
140
|
-
|
141
|
-
end
|
data/spec/spec_helper.rb
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
require File.expand_path("#{__dir__}/../lib/notu")
|
2
|
-
require 'byebug'
|
3
|
-
|
4
|
-
# Requires supporting ruby files with custom matchers and macros, etc,
|
5
|
-
# in spec/support/ and its subdirectories.
|
6
|
-
Dir["#{File.expand_path(File.dirname(__FILE__))}/support/**/*.rb"].each { |f| require f }
|
7
|
-
|
8
|
-
RSpec.configure do |config|
|
9
|
-
config.raise_errors_for_deprecations!
|
10
|
-
end
|