lastfm 1.2.0 → 1.3.0

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.
data/Gemfile CHANGED
@@ -5,7 +5,7 @@ gem 'xml-simple'
5
5
  gem 'activesupport', '>= 3.0.3'
6
6
 
7
7
  group :development do
8
- gem 'rspec', '~> 2.3.0'
8
+ gem 'rspec', '~> 2.8.0'
9
9
  gem 'jeweler', '~> 1.6.4'
10
10
  gem 'rdoc'
11
11
  end
@@ -20,14 +20,14 @@ GEM
20
20
  rake (0.9.2.2)
21
21
  rdoc (3.12)
22
22
  json (~> 1.4)
23
- rspec (2.3.0)
24
- rspec-core (~> 2.3.0)
25
- rspec-expectations (~> 2.3.0)
26
- rspec-mocks (~> 2.3.0)
27
- rspec-core (2.3.1)
28
- rspec-expectations (2.3.0)
23
+ rspec (2.8.0)
24
+ rspec-core (~> 2.8.0)
25
+ rspec-expectations (~> 2.8.0)
26
+ rspec-mocks (~> 2.8.0)
27
+ rspec-core (2.8.0)
28
+ rspec-expectations (2.8.0)
29
29
  diff-lcs (~> 1.1.2)
30
- rspec-mocks (2.3.0)
30
+ rspec-mocks (2.8.0)
31
31
  xml-simple (1.1.1)
32
32
 
33
33
  PLATFORMS
@@ -38,5 +38,5 @@ DEPENDENCIES
38
38
  httparty
39
39
  jeweler (~> 1.6.4)
40
40
  rdoc
41
- rspec (~> 2.3.0)
41
+ rspec (~> 2.8.0)
42
42
  xml-simple
@@ -55,12 +55,14 @@ It supports methods which require {authentication}[http://www.last.fm/api/authen
55
55
 
56
56
  === User
57
57
 
58
- * {user.getInfo}[http://www.lastfm.jp/api/show?service=344]
59
58
  * {user.getFriends}[http://www.lastfm.jp/api/show?service=263]
60
- * {user.getRecentTracks}[http://www.lastfm.jp/api/show?service=278]
59
+ * {user.getInfo}[http://www.lastfm.jp/api/show?service=344]
60
+ * {user.getLovedTracks}[http://www.lastfm.jp/api/show/user.getLovedTracks]
61
61
  * {user.getNeighbours}[http://www.lastfm.jp/api/show?service=264]
62
62
  * {user.getTopArtists}[http://www.lastfm.jp/api/show/user.getTopArtists]
63
63
  * {user.getTopAlbuns}[http://www.lastfm.jp/api/show/user.getTopAlbums]
64
+ * {user.getTopTracks}[http://www.lastfm.jp/api/show/user.getTopTracks]
65
+ * {user.getRecentTracks}[http://www.lastfm.jp/api/show?service=278]
64
66
 
65
67
  === Geo
66
68
 
@@ -88,16 +90,17 @@ It supports methods which require {authentication}[http://www.last.fm/api/authen
88
90
 
89
91
  == Comitters
90
92
 
91
- * {mattfawcett}[https://github.com/mattfawcett]
92
- * {peplin}[https://github.com/peplin]
93
- * {liff}[https://github.com/liff]
93
+ * {Matthew Fawcett}[https://github.com/mattfawcett]
94
+ * {Christopher Peplin}[https://github.com/peplin]
95
+ * {Olli Helenius}[https://github.com/liff]
94
96
  * {pipedreambomb}[https://github.com/pipedreambomb]
95
- * {dbolson}[https://github.com/dbolson]
97
+ * {Danny Olson}[https://github.com/dbolson]
96
98
  * {webs}[https://github.com/webs]
97
- * {magnolia-fan}[https://github.com/magnolia-fan]
98
- * {garyadamshannon}[https://github.com/garyadamshannon]
99
- * {Garthex}[https://github.com/Garthex]
100
- * {lfzawacki}[https://github.com/lfzawacki]
99
+ * {Gregory Eremin}[https://github.com/magnolia-fan]
100
+ * {Gary Shannon}[https://github.com/garyadamshannon]
101
+ * {Kyle Fleming}[https://github.com/Garthex]
102
+ * {Lucas}[https://github.com/lfzawacki]
103
+ * {Johan Oskarsson}[https://github.com/johanoskarsson]
101
104
 
102
105
  == Note on Patches/Pull Requests
103
106
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.2.0
1
+ 1.3.0
@@ -13,6 +13,14 @@ class Lastfm
13
13
  response.xml['topartists']['artist']
14
14
  end
15
15
 
16
+ regular_method :get_top_tracks, [:user], [[:period, nil], [:limit, nil], [:page, nil]] do |response|
17
+ response.xml['toptracks']['track']
18
+ end
19
+
20
+ regular_method :get_loved_tracks, [:user], [[:period, nil], [:limit, nil], [:page, nil]] do |response|
21
+ response.xml['lovedtracks']['track']
22
+ end
23
+
16
24
  regular_method :get_friends, [:user], [[:recenttracks, nil], [:limit, nil], [:page, nil]] do |response|
17
25
  response.xml['friends']['user']
18
26
  end
@@ -0,0 +1,28 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <lfm status="ok">
3
+ <lovedtracks user="skr" page="1" perPage="50" totalPages="4" total="180">
4
+ <track>
5
+ <name>I Spy</name>
6
+ <mbid></mbid>
7
+ <url>http://www.last.fm/music/Mikhael+Paskalev/_/I+Spy</url>
8
+ <date uts="1329859504">21 Feb 2012, 21:25</date>
9
+ <artist>
10
+ <name>Mikhael Paskalev</name>
11
+ <mbid></mbid>
12
+ <url>http://www.last.fm/music/Mikhael+Paskalev</url>
13
+ </artist>
14
+ <streamable fulltrack="0">0</streamable>
15
+ </track>
16
+ <track>
17
+ <name>Working Titles</name>
18
+ <mbid></mbid>
19
+ <url>http://www.last.fm/music/Damien+Jurado/_/Working+Titles</url>
20
+ <date uts="1329857253">21 Feb 2012, 20:47</date>
21
+ <artist>
22
+ <name>Damien Jurado</name>
23
+ <mbid>f4805b9d-68f8-438e-8f13-ec7bcb4c8581</mbid>
24
+ <url>http://www.last.fm/music/Damien+Jurado</url>
25
+ </artist>
26
+ <streamable fulltrack="0">0</streamable>
27
+ </track>
28
+ </lovedtracks></lfm>
@@ -0,0 +1,30 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <lfm status="ok">
3
+ <toptracks user="skr" type="7day" page="1" perPage="50" totalPages="6" total="271">
4
+
5
+ <track rank="1">
6
+ <name>No Light, No Light (TV On The Radio Remix)</name>
7
+ <duration></duration>
8
+ <playcount>5</playcount>
9
+ <mbid></mbid>
10
+ <url>http://www.last.fm/music/Florence%2B%252B%2Bthe%2BMachine/_/No+Light%2C+No+Light+%28TV+On+The+Radio+Remix%29</url>
11
+ <streamable fulltrack="0">0</streamable>
12
+ <artist>
13
+ <name>Florence + the Machine</name>
14
+ <mbid>5fee3020-513b-48c2-b1f7-4681b01db0c6</mbid>
15
+ <url>http://www.last.fm/music/Florence%2B%252B%2Bthe%2BMachine</url>
16
+ </artist>
17
+ </track> <track rank="2">
18
+ <name>Backwords (Porcelain Raft cover)</name>
19
+ <duration>230</duration>
20
+ <playcount>5</playcount>
21
+ <mbid></mbid>
22
+ <url>http://www.last.fm/music/Oupa%2B%2526%2BTony%2BCrow/_/Backwords+%28Porcelain+Raft+cover%29</url>
23
+ <streamable fulltrack="0">0</streamable>
24
+ <artist>
25
+ <name>Oupa &amp; Tony Crow</name>
26
+ <mbid></mbid>
27
+ <url>http://www.last.fm/music/Oupa%2B%2526%2BTony%2BCrow</url>
28
+ </artist>
29
+ </track>
30
+ </toptracks></lfm>
@@ -513,6 +513,52 @@ XML
513
513
  albums[1]['artist']['name'].should == 'Pain of Salvation'
514
514
  end
515
515
  end
516
+
517
+ describe '#get_top_tracks' do
518
+ it 'should get user\'s top tracks' do
519
+ @lastfm.should_receive(:request).with('user.getTopTracks', {
520
+ :user => 'test',
521
+ :period => '7day',
522
+ :limit => nil,
523
+ :page => nil
524
+ }).and_return(make_response('user_get_top_tracks'))
525
+
526
+ tracks = @lastfm.user.get_top_tracks('test', '7day', nil, nil)
527
+
528
+ tracks.size.should == 2
529
+
530
+ tracks[0]['rank'].should == '1'
531
+ tracks[0]['name'].should == 'No Light, No Light (TV On The Radio Remix)'
532
+ tracks[0]['artist']['name'].should == 'Florence + the Machine'
533
+
534
+ tracks[1]['rank'].should == '2'
535
+ tracks[1]['name'].should == 'Backwords (Porcelain Raft cover)'
536
+ tracks[1]['artist']['name'].should == 'Oupa & Tony Crow'
537
+ end
538
+ end
539
+
540
+ describe '#get_loved_tracks' do
541
+ it 'should get user\'s loved tracks' do
542
+ @lastfm.should_receive(:request).with('user.getLovedTracks', {
543
+ :user => 'test',
544
+ :period => nil,
545
+ :limit => nil,
546
+ :page => nil
547
+ }).and_return(make_response('user_get_loved_tracks'))
548
+
549
+ tracks = @lastfm.user.get_loved_tracks('test', nil, nil, nil)
550
+
551
+ tracks.size.should == 2
552
+
553
+ tracks[0]['rank'].should == nil
554
+ tracks[0]['name'].should == 'I Spy'
555
+ tracks[0]['artist']['name'].should == 'Mikhael Paskalev'
556
+
557
+ tracks[1]['rank'].should == nil
558
+ tracks[1]['name'].should == 'Working Titles'
559
+ tracks[1]['artist']['name'].should == 'Damien Jurado'
560
+ end
561
+ end
516
562
 
517
563
  describe '#get_friends' do
518
564
  it 'should get user\'s friends' do
metadata CHANGED
@@ -1,117 +1,90 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: lastfm
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 1
7
- - 2
8
- - 0
9
- segments_generated: true
10
- version: 1.2.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.3.0
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - youpy
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-01-27 00:00:00 +09:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- version_requirements: &id001 !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- segments:
27
- - 0
28
- segments_generated: true
29
- version: "0"
30
- requirement: *id001
12
+ date: 2012-02-26 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
31
15
  name: httparty
32
- prerelease: false
16
+ requirement: &70299718961480 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
33
22
  type: :runtime
34
- - !ruby/object:Gem::Dependency
35
- version_requirements: &id002 !ruby/object:Gem::Requirement
36
- requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- segments:
40
- - 0
41
- segments_generated: true
42
- version: "0"
43
- requirement: *id002
44
- name: xml-simple
45
23
  prerelease: false
24
+ version_requirements: *70299718961480
25
+ - !ruby/object:Gem::Dependency
26
+ name: xml-simple
27
+ requirement: &70299718960660 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
46
33
  type: :runtime
47
- - !ruby/object:Gem::Dependency
48
- version_requirements: &id003 !ruby/object:Gem::Requirement
49
- requirements:
50
- - - ">="
51
- - !ruby/object:Gem::Version
52
- segments:
53
- - 3
54
- - 0
55
- - 3
56
- segments_generated: true
57
- version: 3.0.3
58
- requirement: *id003
59
- name: activesupport
60
34
  prerelease: false
35
+ version_requirements: *70299718960660
36
+ - !ruby/object:Gem::Dependency
37
+ name: activesupport
38
+ requirement: &70299718959900 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: 3.0.3
61
44
  type: :runtime
62
- - !ruby/object:Gem::Dependency
63
- version_requirements: &id004 !ruby/object:Gem::Requirement
64
- requirements:
65
- - - ~>
66
- - !ruby/object:Gem::Version
67
- segments:
68
- - 2
69
- - 3
70
- - 0
71
- segments_generated: true
72
- version: 2.3.0
73
- requirement: *id004
74
- name: rspec
75
45
  prerelease: false
46
+ version_requirements: *70299718959900
47
+ - !ruby/object:Gem::Dependency
48
+ name: rspec
49
+ requirement: &70299718975280 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 2.8.0
76
55
  type: :development
77
- - !ruby/object:Gem::Dependency
78
- version_requirements: &id005 !ruby/object:Gem::Requirement
79
- requirements:
56
+ prerelease: false
57
+ version_requirements: *70299718975280
58
+ - !ruby/object:Gem::Dependency
59
+ name: jeweler
60
+ requirement: &70299718974480 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
80
63
  - - ~>
81
- - !ruby/object:Gem::Version
82
- segments:
83
- - 1
84
- - 6
85
- - 4
86
- segments_generated: true
64
+ - !ruby/object:Gem::Version
87
65
  version: 1.6.4
88
- requirement: *id005
89
- name: jeweler
90
- prerelease: false
91
66
  type: :development
92
- - !ruby/object:Gem::Dependency
93
- version_requirements: &id006 !ruby/object:Gem::Requirement
94
- requirements:
95
- - - ">="
96
- - !ruby/object:Gem::Version
97
- segments:
98
- - 0
99
- segments_generated: true
100
- version: "0"
101
- requirement: *id006
102
- name: rdoc
103
67
  prerelease: false
68
+ version_requirements: *70299718974480
69
+ - !ruby/object:Gem::Dependency
70
+ name: rdoc
71
+ requirement: &70299718973600 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
104
77
  type: :development
78
+ prerelease: false
79
+ version_requirements: *70299718973600
105
80
  description: A ruby interface for Last.fm web services version 2.0
106
81
  email: youpy@buycheapviagraonlinenow.com
107
82
  executables: []
108
-
109
83
  extensions: []
110
-
111
- extra_rdoc_files:
84
+ extra_rdoc_files:
112
85
  - LICENSE
113
86
  - README.rdoc
114
- files:
87
+ files:
115
88
  - .document
116
89
  - .rspec
117
90
  - Gemfile
@@ -150,46 +123,42 @@ files:
150
123
  - spec/fixtures/track_search.xml
151
124
  - spec/fixtures/user_get_friends.xml
152
125
  - spec/fixtures/user_get_info.xml
126
+ - spec/fixtures/user_get_loved_tracks.xml
153
127
  - spec/fixtures/user_get_neighbours.xml
154
128
  - spec/fixtures/user_get_recent_tracks.xml
155
129
  - spec/fixtures/user_get_top_albums.xml
156
130
  - spec/fixtures/user_get_top_artists.xml
131
+ - spec/fixtures/user_get_top_tracks.xml
157
132
  - spec/lastfm_spec.rb
158
133
  - spec/method_category_spec.rb
159
134
  - spec/response_spec.rb
160
135
  - spec/spec_helper.rb
161
136
  - spec/util_spec.rb
162
- has_rdoc: true
163
137
  homepage: http://github.com/youpy/ruby-lastfm
164
138
  licenses: []
165
-
166
139
  post_install_message:
167
140
  rdoc_options: []
168
-
169
- require_paths:
141
+ require_paths:
170
142
  - lib
171
- required_ruby_version: !ruby/object:Gem::Requirement
172
- requirements:
173
- - - ">="
174
- - !ruby/object:Gem::Version
175
- segments:
176
- - 0
177
- segments_generated: true
178
- version: "0"
179
- required_rubygems_version: !ruby/object:Gem::Requirement
180
- requirements:
181
- - - ">="
182
- - !ruby/object:Gem::Version
183
- segments:
143
+ required_ruby_version: !ruby/object:Gem::Requirement
144
+ none: false
145
+ requirements:
146
+ - - ! '>='
147
+ - !ruby/object:Gem::Version
148
+ version: '0'
149
+ segments:
184
150
  - 0
185
- segments_generated: true
186
- version: "0"
151
+ hash: 791443162221732736
152
+ required_rubygems_version: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
187
158
  requirements: []
188
-
189
159
  rubyforge_project:
190
- rubygems_version: 1.3.6
160
+ rubygems_version: 1.8.10
191
161
  signing_key:
192
162
  specification_version: 3
193
163
  summary: A Ruby interface for Last.fm Web Services
194
164
  test_files: []
195
-