soundcloud-ruby-api-wrapper 0.1.8 → 0.1.9
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/VERSION.yml +1 -1
- data/lib/soundcloud/models/event.rb +8 -1
- data/lib/soundcloud/models/playlist.rb +4 -10
- data/lib/soundcloud/models/track.rb +6 -8
- data/spec/soundcloud_event_spec.rb +14 -3
- data/spec/soundcloud_spec.rb +1 -1
- data/spec/soundcloud_user_spec.rb +1 -1
- metadata +2 -2
data/VERSION.yml
CHANGED
@@ -8,6 +8,9 @@ module Soundcloud
|
|
8
8
|
# * resource_id
|
9
9
|
# * comment/track/user (embedded resource, depending on type)
|
10
10
|
#
|
11
|
+
# Custom Wrapper Attribute:
|
12
|
+
# * event_type (access to type attribute, since 'type' is a ruby keyword)
|
13
|
+
#
|
11
14
|
# Look up the resource attributes and filtering usage here:
|
12
15
|
#
|
13
16
|
# http://wiki.github.com/soundcloud/api/documentation#event
|
@@ -25,9 +28,13 @@ module Soundcloud
|
|
25
28
|
# sc_client.Event.find(:all)
|
26
29
|
#
|
27
30
|
class Event < Base
|
28
|
-
#belongs_to :user, :track, :comment # this is not right
|
29
31
|
cattr_accessor :element_name
|
30
32
|
self.element_name = 'event'
|
33
|
+
|
34
|
+
|
35
|
+
def event_type
|
36
|
+
return attributes['type']
|
37
|
+
end
|
31
38
|
end
|
32
39
|
end
|
33
40
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Soundcloud
|
2
2
|
module Models
|
3
|
-
# Note: At the moment, you can't create or delete playlists via Soundcloud API
|
3
|
+
# Note: At the moment, you can't create or delete playlists or change their permissions via Soundcloud API
|
4
4
|
#
|
5
5
|
# SC API Attributes (as of 26/05/09):
|
6
6
|
# * created_at
|
@@ -20,7 +20,6 @@ module Soundcloud
|
|
20
20
|
#
|
21
21
|
# Custom Wrapper Attributes/Methods:
|
22
22
|
# * user
|
23
|
-
# * permissions
|
24
23
|
#
|
25
24
|
# Look up the resource attributes and filtering usage here:
|
26
25
|
#
|
@@ -29,16 +28,11 @@ module Soundcloud
|
|
29
28
|
# Examples:
|
30
29
|
#
|
31
30
|
# # Find a Playlist and add a track to it
|
32
|
-
# playlist = sc_client.Playlist('my-playlist')
|
33
|
-
# track = sc_client.Track('my-track')
|
31
|
+
# playlist = sc_client.Playlist.find('my-playlist')
|
32
|
+
# track = sc_client.Track.find('my-track')
|
34
33
|
# playlist.tracks << track
|
35
34
|
# playlist.save
|
36
35
|
#
|
37
|
-
# # Allow a user to access this track
|
38
|
-
# some_user = sc_client.User.find('some-user')
|
39
|
-
# playlist.permissions << some_user
|
40
|
-
# playlist.permissions.save
|
41
|
-
#
|
42
36
|
# # Delete first song in playlist
|
43
37
|
# playlist.tracks.delete playlist.tracks.first
|
44
38
|
# playlist.save
|
@@ -46,7 +40,7 @@ module Soundcloud
|
|
46
40
|
|
47
41
|
class Playlist < Base
|
48
42
|
belongs_to :user
|
49
|
-
has_many :permissions
|
43
|
+
# has_many :permissions
|
50
44
|
cattr_accessor :element_name
|
51
45
|
self.element_name = 'playlist'
|
52
46
|
def initialize(*args)
|
@@ -42,6 +42,8 @@ module Soundcloud
|
|
42
42
|
#
|
43
43
|
# Examples:
|
44
44
|
#
|
45
|
+
# some_user = sc_client.User.find('some_user')
|
46
|
+
#
|
45
47
|
# # gets 50 (Soundcloud API limit) tracks from some_user
|
46
48
|
# some_user_tracks = some_user.tracks
|
47
49
|
#
|
@@ -58,6 +60,10 @@ module Soundcloud
|
|
58
60
|
# p "#{comment.user.username} #{timestamp}: #{comment.body}"
|
59
61
|
# end
|
60
62
|
#
|
63
|
+
# # downloads the original track file (track.downloadable must be true)
|
64
|
+
# # (the open call requires the 'open-uri' gem)
|
65
|
+
# downloaded_file = open first_song.download_url
|
66
|
+
#
|
61
67
|
#
|
62
68
|
# # gets 50 (Soundcloud API limit) tracks with a BPM <= 100
|
63
69
|
# slow_tracks = sc_client.Track.find(:all, :params => { "bpm[to]" => "100"} )
|
@@ -69,19 +75,11 @@ module Soundcloud
|
|
69
75
|
# new_track.sharing = 'private'
|
70
76
|
# new_track.asset_data = File.new('some_sound_file.wav')
|
71
77
|
# new_track.save
|
72
|
-
#
|
73
|
-
# # downloads the original soundfile.
|
74
|
-
# #some_sound_file.wav and downloaded_file should be the same (the open call requires the 'open-uri' gem)
|
75
|
-
# downloaded_file = open new_track.download_url
|
76
78
|
#
|
77
79
|
# # gives some_user permission to access the new_track
|
78
|
-
# some_user = sc_client.User.find('some_user')
|
79
80
|
# new_track.permissions << some_user
|
80
81
|
# new_track.permissions.save
|
81
82
|
#
|
82
|
-
#
|
83
|
-
#
|
84
|
-
#
|
85
83
|
|
86
84
|
class Track < Base
|
87
85
|
belongs_to :user
|
@@ -12,8 +12,19 @@ describe 'Soundcloud::Models::Event' do
|
|
12
12
|
events = @sc.Event.find(:all)
|
13
13
|
end
|
14
14
|
|
15
|
-
it 'should get
|
16
|
-
fan_events = @sc.Event.find(:all,:params => {:
|
17
|
-
fan_events.
|
15
|
+
it 'should get fan events and they should provide the user resource' do
|
16
|
+
fan_events = @sc.Event.find(:all,:params => {:filter => 'fan'})
|
17
|
+
fan_events.each do |event|
|
18
|
+
event.event_type.should be == "Fan"
|
19
|
+
event.user.username.should_not be nil
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should get track events and they should provide the track resource' do
|
24
|
+
events = @sc.Event.find(:all,:params => {:filter => 'track'})
|
25
|
+
events.each do |event|
|
26
|
+
event.event_type.should be == "Track"
|
27
|
+
event.track.title.should_not be nil
|
28
|
+
end
|
18
29
|
end
|
19
30
|
end
|
data/spec/soundcloud_spec.rb
CHANGED
@@ -11,7 +11,7 @@ require 'spec_helper'
|
|
11
11
|
# api-test-2 follows api-test-1 and api-test-3
|
12
12
|
# api-test-3 follows api-test-2 but NOT api-test-1
|
13
13
|
#
|
14
|
-
# api-test-2 has 3 Tracks [Track1 (downloadable),Track2,Track3]
|
14
|
+
# api-test-2 has 3 Tracks [Track1 (public,downloadable),Track2,Track3(private,downloadable)]
|
15
15
|
# api-test-2 has favorites: Track1 but NOT Track2
|
16
16
|
# api-test-2 has 'static-test-playlist' with Track1, 2 and 3
|
17
17
|
#
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: soundcloud-ruby-api-wrapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Johannes Wagener
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-05-
|
12
|
+
date: 2009-05-28 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|