notu 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|