soundcloud 0.1.7 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Soundcloud API Wrapper
2
- ## Description
3
- This is a thin wrapper around the Soundcloud API based of httparty.
2
+ ## Declientription
3
+ The Soundcloud gem is a thin wrapper for the Soundcloud API based of the httparty gem.
4
4
  It is providing simple methods to handle authorization and to execute HTTP calls.
5
5
 
6
6
  ## Requirements
@@ -14,7 +14,7 @@ It is providing simple methods to handle authorization and to execute HTTP calls
14
14
  gem install soundcloud
15
15
 
16
16
  ## Examples
17
- #### print links of the 10 hottest tracks
17
+ #### Print links of the 10 hottest tracks
18
18
  # register a client with YOUR_CLIENT_ID as client_id_
19
19
  client = Soundcloud.new(:client_id => YOUR_CLIENT_ID)
20
20
  # get 10 hottest tracks
@@ -24,8 +24,10 @@ It is providing simple methods to handle authorization and to execute HTTP calls
24
24
  puts track.permalink_url
25
25
  end
26
26
 
27
- #### Do the OAuth2 user credentials flow and print the username of the authenticated user
27
+ #### OAuth2 user credentials flow and print the username of the authenticated user
28
28
  # register a new client, which will exchange the username, password for an access_token
29
+ # NOTE: the SoundCloud API Docs advices to not use the user credentials flow in a web app.
30
+ # In any case never store the password of a user.
29
31
  client = Soundcloud.new({
30
32
  :client_id => YOUR_CLIENT_ID,
31
33
  :client_secret => YOUR_CLIENT_SECRET,
@@ -36,17 +38,17 @@ It is providing simple methods to handle authorization and to execute HTTP calls
36
38
  # print logged in username
37
39
  puts client.get('/me').username
38
40
 
39
- #### Do the OAuth2 authorization code flow
40
- sc = Soundcloud.new({
41
+ #### OAuth2 authorization code flow
42
+ client = Soundcloud.new({
41
43
  :client_id => YOUR_CLIENT_ID,
42
44
  :client_secret => YOUR_CLIENT_SECRET,
43
45
  })
44
46
 
45
- sc.authorize_url(:redirect_uri => uri)
47
+ client.authorize_url(:redirect_uri => REDIRECT_URI)
46
48
  # => "https://soundcloud.com/connect?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=http://host/redirect"
47
- sc.exchange_code(:redirect_uri => uri, :code => 'CODE')
49
+ client.exchange_code(:redirect_uri => uri, :code => 'CODE')
48
50
 
49
- #### Do the OAuth2 refresh token flow, upload a track and print its link
51
+ #### OAuth2 refresh token flow, upload a track and print its link
50
52
  # register a new client which will exchange an existing refresh_token for an access_token
51
53
  client = Soundcloud.new({
52
54
  :client_id => YOUR_CLIENT_ID,
@@ -58,7 +60,7 @@ It is providing simple methods to handle authorization and to execute HTTP calls
58
60
  track = client.post('/tracks', :track => {
59
61
  :title => 'a new track',
60
62
  :asset_data => File.new('audio.mp3')
61
- }, :format => 'json')
63
+ })
62
64
 
63
65
  # print new tracks link
64
66
  puts track.permalink_url
@@ -78,31 +80,31 @@ It is providing simple methods to handle authorization and to execute HTTP calls
78
80
  client = Soundcloud.new(:site => 'sandbox-soundcloud.com', :access_token => SOME_ACCESS_TOKEN)
79
81
 
80
82
  # create a new following
81
- user_id_to_follow = 251670
83
+ user_id_to_follow = 123
82
84
  client.put("/me/followings/#{user_id_to_follow}")
83
85
 
84
- ## Details
86
+ ## Interface
85
87
  #### Soundcloud.new(options={})
86
- Will store the passed options and call exchange_token in case options are passed that allow an exchange of tokens.
88
+ Stores the passed options and call exchange_token in case options are passed that allow an exchange of tokens.
87
89
 
88
90
  #### Soundcloud#exchange_token(options={})
89
- Will store the passed options and try to exchange tokens if no access_token is present and:
91
+ Stores the passed options and try to exchange tokens if no access_token is present and:
90
92
  - refresh_token, client_id and client_secret is present.
91
93
  - client_id, client_secret, username, password is present
92
94
  - client_id, client_secret, redirect_uri, code is present
93
95
 
94
96
  #### Soundcloud#authorize_url(options={})
95
- Will store the passed options and return an authorize url.
97
+ Stores the passed options and return an authorize url.
96
98
  The client_id and redirect_uri options need to present to generate the authorize url.
97
99
 
98
100
  #### Soundcloud#get, Soundcloud#post, Soundcloud#put, Soundcloud#delete, Soundcloud#head
99
- All available HTTP methods are exposed through these methods. They all share the signature (path_or_uri, query={}, options={}).
101
+ These methods expose all available HTTP methods. They all share the signature (path_or_uri, query={}, options={}).
100
102
  The query hash will be merged with the options hash and passed to httparty. Depending on if the client is authorized it will either add the client_id or the access_token as a query parameter.
101
- In case an access_token is expired and a refresh_token is present it will try to refresh the access_token and retry the call.
103
+ In case an access_token is expired and a refresh_token, client_id and client_secret is present it will try to refresh the access_token and retry the call.
102
104
  The response is either a Hashie::Mash or an array of Hashie::Mashs. The mashs expose all resource attributes as methods and the original response through #response.
103
105
 
104
106
  #### Soundcloud#client_id, client_secret, access_token, refresh_token, use_ssl?
105
- These are accessor to the stored options.
107
+ These methods are accessors for the stored options.
106
108
 
107
109
  #### Error Handling
108
110
  In case a request was not successful a Soundcloud::ResponseError will be raise.
@@ -40,6 +40,8 @@ class Soundcloud
40
40
  def client_secret; @options[:client_secret]; end
41
41
  def access_token; @options[:access_token]; end
42
42
  def refresh_token; @options[:refresh_token]; end
43
+ def redirect_uri; @options[:redirect_uri]; end
44
+
43
45
  def use_ssl?;
44
46
  !! @options[:use_ssl?] || access_token
45
47
  end
@@ -1,3 +1,3 @@
1
1
  class Soundcloud
2
- VERSION = '0.1.7'
2
+ VERSION = '0.1.8'
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: soundcloud
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 11
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 7
10
- version: 0.1.7
9
+ - 8
10
+ version: 0.1.8
11
11
  platform: ruby
12
12
  authors:
13
13
  - Johannes Wagener
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-31 00:00:00 -08:00
18
+ date: 2011-02-01 00:00:00 -08:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency