This is an unofficial Ruby gem for the Soundcloud API. It is OO and provides you with some nice objects with convenient methods. All "☁" links point to the official SoundCloud documenation for that object. Get hacking.
##Installation
gem install red_haze
or add gem 'red_haze'
to your bundle file
##Configuration
RedHaze must be configured before use. The following arguments can be provided to RedHaze.configure(<ARGS>)
Arguments | Usage |
---|---|
client_id: <CLIENT_ID> |
General, unauthenticated calls. Minimum requirement |
access_token: <ACCESS_TOKEN> |
Authenticated calls. Gives access to Me |
client_id: <CLIENT_ID>, client_secret: <CLIENT_SECRET>, redirect_uri: <REDIRECT_URI> |
Required when requested/refreshing access tokens (see below) |
Alternatively, you can create a config.yml
file (see the config.yml.template) to load a hash of these settings and use RedHaze.configure_from_file('<FILE_NAME>')
To sign up for a developer account and receive a client_id
go here
###OAuth
After configuring RedHaze with the required attributes, hit the RedHaze.authorize_url
. At your redirect_uri
, pass the code
parameter to RedHaze.client.get_token_from_code(<CODE>)
and you'll be ready to make authenticated requests.
##☁User
Initialized via RedHaze.user(<USER_ID>)
.
Method | Description |
---|---|
.followings |
Users this user is following |
.followers |
Users following this user |
.comments |
user's Comments |
.tracks |
user's Tracks |
.favorites |
user's favorite Tracks |
.groups |
user's Groups |
.playlists |
user's Playlists |
##☁Me
Requires valid access token. Subclass of User
. Access via RedHaze.me
.
Method | Description |
---|---|
.activities |
Collection of dashboard activities |
.follow!(arg) |
Follows a given User or user_id |
.unfollow!(arg) |
Unfollows a given User or user_id |
.follows?(arg) |
Checks if user follows a given User or user_id |
.favorite!(arg) |
Favorites a given Track or track_id |
.unfavorite!(arg) |
Unfavorites a given Track or track_id |
.favorite?!(arg) |
Checks if user has favorited a given Track or track_id |
##☁Track
Access via RedHaze.track(<TRACK_ID>)
.
Method | Description |
---|---|
.favoriters |
Users who have favorited track |
.comments |
Comments on track |
.shared_to |
Users who have access to the track |
##☁Collection
Wrapper object returned from Me#activities
. Returns a group of activities
contained within the items
attribute. Use .next
to retrieve the next paginated Collection
.
##☁Activity
Contained in collection
. Links to an origin
object.
##☁Group
Access via RedHaze.group(<GROUP_ID>)
.
Method | Description |
---|---|
.members |
Users who have joined group |
.moderators |
Users who are moderators |
.contributors |
Users who have contributed |
.users |
All of the above |
##☁Playlist
Access via RedHaze.Playlist(<PLAYLIST_ID>)
.
##☁Comment
Access via RedHaze.Comment(<COMMENT_ID>)
.
#Contributing
Contributions via Issue/Bug reporting, Feature Requests, and Pull requests are encouraged. Please write tests (integrated if possible) for new features.