soundcloud2 0.3.1
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/.gitignore +9 -0
- data/.rvmrc +2 -0
- data/Gemfile +2 -0
- data/README.md +120 -0
- data/Rakefile +2 -0
- data/lib/core_ext/array.rb +5 -0
- data/lib/soundcloud2/comments.rb +18 -0
- data/lib/soundcloud2/groups.rb +52 -0
- data/lib/soundcloud2/playlists.rb +31 -0
- data/lib/soundcloud2/tracks.rb +55 -0
- data/lib/soundcloud2/users.rb +82 -0
- data/lib/soundcloud2/version.rb +3 -0
- data/lib/soundcloud2.rb +146 -0
- data/soundcloud2.gemspec +33 -0
- data/spec/client/client_spec.rb +41 -0
- data/spec/client/comments_spec.rb +21 -0
- data/spec/client/groups_spec.rb +46 -0
- data/spec/client/playlists_spec.rb +31 -0
- data/spec/client/search_tracks.rb +41 -0
- data/spec/client/tracks_spec.rb +50 -0
- data/spec/client/users_spec.rb +71 -0
- data/spec/spec_helper.rb +13 -0
- metadata +214 -0
    
        data/.gitignore
    ADDED
    
    
    
        data/.rvmrc
    ADDED
    
    
    
        data/Gemfile
    ADDED
    
    
    
        data/README.md
    ADDED
    
    | @@ -0,0 +1,120 @@ | |
| 1 | 
            +
            # Soundcloud2 API Client
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            Simple Ruby wrapper for the Soundcloud API.  
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            ## Overview
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            This library contains two types of consumption. First there is the Soundcloud::Client (Simple Client), which offers the four basic methods to search the Soundcloud API via GROUPS, PLAYLISTS, TRACKS, and USERS. Then there are the subclass modules that extend more of the advanced API calls on the main 4 resources that Soundcloud offers. Here is a quick example of the Soundcloud::Client module notation:
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                client.users(:q => 'skrillex').first.city
         | 
| 10 | 
            +
                => "melbourne"
         | 
| 11 | 
            +
                client.tracks(:q => 'A new world').first.permalink
         | 
| 12 | 
            +
                => "a-new-world"
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            ## Quick Simple Client Usage
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            ### Instantiate the simple Client
         | 
| 17 | 
            +
            The client should be instantiated with a single api_key that you can obtain from this url: http://soundcloud.com/you/apps/new
         | 
| 18 | 
            +
            Note the client is a quick way to consume and search the soundcloud API. More advanced methods can
         | 
| 19 | 
            +
            be found in the other subclassed modules.
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                client = Soundcloud::Client.new('YOUR_SOUNDCLOUD_API_KEY')
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            ### GROUPS
         | 
| 24 | 
            +
                client.groups(:name => 'Field Recordings')
         | 
| 25 | 
            +
                client.groups(:description => 'field recordings from across the world')
         | 
| 26 | 
            +
                client.groups(:q => 'dubstep')
         | 
| 27 | 
            +
             | 
| 28 | 
            +
            ### PLAYLISTS
         | 
| 29 | 
            +
                client.playlists(:title => 'Summer of 69', :sharing => 'public', :downloadable => 'false')
         | 
| 30 | 
            +
                client.playlists(:q => 'crunk house')
         | 
| 31 | 
            +
             | 
| 32 | 
            +
            ### TRACKS
         | 
| 33 | 
            +
                client.tracks(:q => 'A New World', :bpm => 120)
         | 
| 34 | 
            +
                client.tracks(:id => 1647583)
         | 
| 35 | 
            +
                client.tracks(:genre => 'dubstep', :downloadable => true)
         | 
| 36 | 
            +
                client.tracks(:genre => 'dubstep', :order => 'hotness')
         | 
| 37 | 
            +
                
         | 
| 38 | 
            +
            ### USERS
         | 
| 39 | 
            +
                client.users(:id => 47194613)
         | 
| 40 | 
            +
                client.users(:city => 'greece', :description => 'badass')
         | 
| 41 | 
            +
                client.users(:username => 'djzaxx')
         | 
| 42 | 
            +
                
         | 
| 43 | 
            +
            ## More Advanced Modules
         | 
| 44 | 
            +
             | 
| 45 | 
            +
            ### Soundcloud::Users Module
         | 
| 46 | 
            +
                u = Soundcloud::Users.new('YOUR_SOUNDCLOUD_API_KEY')
         | 
| 47 | 
            +
                u.user('4201929')
         | 
| 48 | 
            +
                u.user_tracks('4201929')
         | 
| 49 | 
            +
                u.user_playlists('4201929')
         | 
| 50 | 
            +
                u.user_followings('4201929')
         | 
| 51 | 
            +
                u.user_followings('4201929', '1931470')
         | 
| 52 | 
            +
                u.user_followers('4201929')
         | 
| 53 | 
            +
                u.user_followers('4201929', '1931470')
         | 
| 54 | 
            +
                u.user_comments('4201929')
         | 
| 55 | 
            +
                u.user_favorites('4201929')
         | 
| 56 | 
            +
                u.user_favorites('4201929', '1931470')
         | 
| 57 | 
            +
                u.user_groups('4201929')
         | 
| 58 | 
            +
                
         | 
| 59 | 
            +
            ### Soundcloud::Tracks Module
         | 
| 60 | 
            +
                t = Soundcloud::Tracks.new('YOUR_SOUNDCLOUD_API_KEY')
         | 
| 61 | 
            +
                t.tracks('20296934')
         | 
| 62 | 
            +
                t.tracks_comments('20296934')
         | 
| 63 | 
            +
                t.tracks_comments('20296934', '23145109')
         | 
| 64 | 
            +
                t.tracks_favoriters('20296934')
         | 
| 65 | 
            +
                t.tracks_favoriters('20296934', '2769794')
         | 
| 66 | 
            +
                t.tracks_shared_to_users('20296934')
         | 
| 67 | 
            +
                t.tracks_shared_to_emails('20296934')
         | 
| 68 | 
            +
                
         | 
| 69 | 
            +
            ### Soundcloud::Playlists Module
         | 
| 70 | 
            +
                p = Soundcloud::Playlists.new('YOUR_SOUNDCLOUD_API_KEY')
         | 
| 71 | 
            +
                p.playlists('920731')
         | 
| 72 | 
            +
                p.playlists_shared_to_users('4201929')
         | 
| 73 | 
            +
                p.playlists_shared_to_emails('amanelis@gmail.com')
         | 
| 74 | 
            +
                
         | 
| 75 | 
            +
            ### Soundcloud::Groups Module
         | 
| 76 | 
            +
                g = Soundcloud::Groups.new('YOUR_SOUNDCLOUD_API_KEY')
         | 
| 77 | 
            +
                g.groups('11440')
         | 
| 78 | 
            +
                g.groups_moderators('11440')
         | 
| 79 | 
            +
                g.groups_members('11440')
         | 
| 80 | 
            +
                g.groups_contributors('11440')
         | 
| 81 | 
            +
                g.groups_users('11440')
         | 
| 82 | 
            +
                g.groups_tracks('11440')
         | 
| 83 | 
            +
                
         | 
| 84 | 
            +
            ### Soundcloud::Comments Module
         | 
| 85 | 
            +
                c = Soundcloud::Comments.new('YOUR_SOUNDCLOUD_API_KEY')
         | 
| 86 | 
            +
                c.comments('23145109')
         | 
| 87 | 
            +
             | 
| 88 | 
            +
             | 
| 89 | 
            +
            ## Dependencies
         | 
| 90 | 
            +
            #### Install dependencies using bundler  
         | 
| 91 | 
            +
                $ bundle
         | 
| 92 | 
            +
              
         | 
| 93 | 
            +
            #### Run rSpec  
         | 
| 94 | 
            +
                $ rspec -fp spec/client
         | 
| 95 | 
            +
             | 
| 96 | 
            +
            ## Issues
         | 
| 97 | 
            +
              None.
         | 
| 98 | 
            +
              
         | 
| 99 | 
            +
            ## Changelog
         | 
| 100 | 
            +
             | 
| 101 | 
            +
            ### 0.0.1 - Aug 6th, 2011
         | 
| 102 | 
            +
             | 
| 103 | 
            +
            * Initial version
         | 
| 104 | 
            +
             | 
| 105 | 
            +
             | 
| 106 | 
            +
            ## Under the hood
         | 
| 107 | 
            +
            * [`Faraday`](https://github.com/technoweenie/faraday) REST client
         | 
| 108 | 
            +
            * [`Hashie::Mash`](http://github.com/intridea/hashie)  Magic
         | 
| 109 | 
            +
             | 
| 110 | 
            +
            ## How to contribute
         | 
| 111 | 
            +
             
         | 
| 112 | 
            +
            * Fork the project.
         | 
| 113 | 
            +
            * Make your feature addition or bug fix.
         | 
| 114 | 
            +
            * Add tests for it. This is important so I don't break it in a
         | 
| 115 | 
            +
              future version unintentionally.
         | 
| 116 | 
            +
            * Commit, do not mess with rakefile, version, or history.
         | 
| 117 | 
            +
              (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
         | 
| 118 | 
            +
            * Send me a pull request. Bonus points for topic branches.
         | 
| 119 | 
            +
             | 
| 120 | 
            +
            Copyright (c) 2011 [Alex Manelis](http://twitter.com/amanelis). 
         | 
    
        data/Rakefile
    ADDED
    
    
| @@ -0,0 +1,18 @@ | |
| 1 | 
            +
            module Soundcloud2
         | 
| 2 | 
            +
              class Comments < Client
         | 
| 3 | 
            +
                attr_reader :api_key, :conn
         | 
| 4 | 
            +
             | 
| 5 | 
            +
                # Initialize on the Soundcloud::Client class
         | 
| 6 | 
            +
                def initialize(*args)
         | 
| 7 | 
            +
                  super
         | 
| 8 | 
            +
                end
         | 
| 9 | 
            +
                
         | 
| 10 | 
            +
                # GET	/comments/{id}	a group
         | 
| 11 | 
            +
                def comments(*args)
         | 
| 12 | 
            +
                  options = args.extract_options!.merge(:client_id => api_key)
         | 
| 13 | 
            +
                  response = conn.get("/comments/#{args[0]}.json") { |req| req.params = options }
         | 
| 14 | 
            +
                  args.nil? ? response.body.send(sym) : response.body
         | 
| 15 | 
            +
                end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
              end
         | 
| 18 | 
            +
            end
         | 
| @@ -0,0 +1,52 @@ | |
| 1 | 
            +
            module Soundcloud2
         | 
| 2 | 
            +
              class Groups < Client
         | 
| 3 | 
            +
                attr_reader :api_key, :conn
         | 
| 4 | 
            +
             | 
| 5 | 
            +
                # Initialize on the Soundcloud::Client class
         | 
| 6 | 
            +
                def initialize(*args)
         | 
| 7 | 
            +
                  super
         | 
| 8 | 
            +
                end
         | 
| 9 | 
            +
                
         | 
| 10 | 
            +
                # GET	/groups/{id}	a group
         | 
| 11 | 
            +
                def groups(*args)
         | 
| 12 | 
            +
                  options = args.extract_options!.merge(:client_id => api_key)
         | 
| 13 | 
            +
                  response = conn.get("/groups/#{args[0]}.json") { |req| req.params = options }
         | 
| 14 | 
            +
                  args.nil? ? response.body.send(sym) : response.body
         | 
| 15 | 
            +
                end
         | 
| 16 | 
            +
                
         | 
| 17 | 
            +
                # GET	/groups/{id}/moderators	list of users who moderate the group
         | 
| 18 | 
            +
                def groups_moderators(*args)
         | 
| 19 | 
            +
                  options = args.extract_options!.merge(:client_id => api_key)
         | 
| 20 | 
            +
                  response = conn.get("/groups/#{args[0]}/moderators.json") { |req| req.params = options }
         | 
| 21 | 
            +
                  args.nil? ? response.body.send(sym) : response.body
         | 
| 22 | 
            +
                end
         | 
| 23 | 
            +
                
         | 
| 24 | 
            +
                # GET	/groups/{id}/members	list of users who joined the group
         | 
| 25 | 
            +
                def groups_members(*args)
         | 
| 26 | 
            +
                  options = args.extract_options!.merge(:client_id => api_key)
         | 
| 27 | 
            +
                  response = conn.get("/groups/#{args[0]}/members.json") { |req| req.params = options }
         | 
| 28 | 
            +
                  args.nil? ? response.body.send(sym) : response.body
         | 
| 29 | 
            +
                end
         | 
| 30 | 
            +
                
         | 
| 31 | 
            +
                # GET	/groups/{id}/contributors	list of users who contributed a track to the group
         | 
| 32 | 
            +
                def groups_contributors(*args)
         | 
| 33 | 
            +
                  options = args.extract_options!.merge(:client_id => api_key)
         | 
| 34 | 
            +
                  response = conn.get("/groups/#{args[0]}/contributors.json") { |req| req.params = options }
         | 
| 35 | 
            +
                  args.nil? ? response.body.send(sym) : response.body
         | 
| 36 | 
            +
                end
         | 
| 37 | 
            +
                
         | 
| 38 | 
            +
                # GET	/groups/{id}/users	list of users who contributed to, joined or moderate the group
         | 
| 39 | 
            +
                def groups_users(*args)
         | 
| 40 | 
            +
                  options = args.extract_options!.merge(:client_id => api_key)
         | 
| 41 | 
            +
                  response = conn.get("/groups/#{args[0]}/users.json") { |req| req.params = options }
         | 
| 42 | 
            +
                  args.nil? ? response.body.send(sym) : response.body
         | 
| 43 | 
            +
                end
         | 
| 44 | 
            +
                
         | 
| 45 | 
            +
                # GET	/groups/{id}/tracks	list of contributed and approved tracks
         | 
| 46 | 
            +
                def groups_tracks(*args)
         | 
| 47 | 
            +
                  options = args.extract_options!.merge(:client_id => api_key)
         | 
| 48 | 
            +
                  response = conn.get("/groups/#{args[0]}/tracks.json") { |req| req.params = options }
         | 
| 49 | 
            +
                  args.nil? ? response.body.send(sym) : response.body
         | 
| 50 | 
            +
                end
         | 
| 51 | 
            +
              end
         | 
| 52 | 
            +
            end
         | 
| @@ -0,0 +1,31 @@ | |
| 1 | 
            +
            module Soundcloud2
         | 
| 2 | 
            +
              class Playlists < Client
         | 
| 3 | 
            +
                attr_reader :api_key, :conn
         | 
| 4 | 
            +
             | 
| 5 | 
            +
                # Initialize on the Soundcloud::Client class
         | 
| 6 | 
            +
                def initialize(*args)
         | 
| 7 | 
            +
                  super
         | 
| 8 | 
            +
                end
         | 
| 9 | 
            +
                
         | 
| 10 | 
            +
                def playlists(*args)
         | 
| 11 | 
            +
                  options = args.extract_options!.merge(:client_id => api_key)
         | 
| 12 | 
            +
                  response = conn.get("/playlists/#{args[0]}.json") { |req| req.params = options }
         | 
| 13 | 
            +
                  args.nil? ? response.body.send(sym) : response.body
         | 
| 14 | 
            +
                end
         | 
| 15 | 
            +
                
         | 
| 16 | 
            +
                # GET	/playlists/{id}/shared-to/users	users who have access to the track
         | 
| 17 | 
            +
                def playlists_shared_to_users(*args)
         | 
| 18 | 
            +
                  options = args.extract_options!.merge(:client_id => api_key)
         | 
| 19 | 
            +
                  response = conn.get("/playlists/#{args[0]}/shared-to/users.json") { |req| req.params = options }
         | 
| 20 | 
            +
                  args.nil? ? response.body.send(sym) : response.body
         | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
                
         | 
| 23 | 
            +
                # GET	/playlists/{id}/shared-to/emails	email addresses who are invited to the playlist
         | 
| 24 | 
            +
                def playlists_shared_to_emails(*args)
         | 
| 25 | 
            +
                  options = args.extract_options!.merge(:client_id => api_key)
         | 
| 26 | 
            +
                  response = conn.get("/playlists/#{args[0]}/shared-to/emails.json") { |req| req.params = options }
         | 
| 27 | 
            +
                  args.nil? ? response.body.send(sym) : response.body
         | 
| 28 | 
            +
                end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
              end
         | 
| 31 | 
            +
            end
         | 
| @@ -0,0 +1,55 @@ | |
| 1 | 
            +
            module Soundcloud2
         | 
| 2 | 
            +
              class Tracks < Client
         | 
| 3 | 
            +
                attr_reader :api_key, :conn
         | 
| 4 | 
            +
             | 
| 5 | 
            +
                # Initialize on the Soundcloud::Client class
         | 
| 6 | 
            +
                def initialize(*args)
         | 
| 7 | 
            +
                  super
         | 
| 8 | 
            +
                end
         | 
| 9 | 
            +
                
         | 
| 10 | 
            +
                # GET	/tracks/{id}	a user
         | 
| 11 | 
            +
                def tracks(*args)
         | 
| 12 | 
            +
                  options = args.extract_options!.merge(:client_id => api_key)
         | 
| 13 | 
            +
                  response = conn.get("/tracks/#{args[0]}.json") { |req| req.params = options }
         | 
| 14 | 
            +
                  args.nil? ? response.body.send(sym) : response.body
         | 
| 15 | 
            +
                end
         | 
| 16 | 
            +
                
         | 
| 17 | 
            +
                # GET	/tracks/{id}/comments	comments for the track
         | 
| 18 | 
            +
                # GET	/tracks/{id}/comments/{comment-id}	a comment for the track
         | 
| 19 | 
            +
                def tracks_comments(*args)
         | 
| 20 | 
            +
                  options = args.extract_options!.merge(:client_id => api_key)
         | 
| 21 | 
            +
                  response = conn.get("/tracks/#{args[0]}/comments.json") { |req| req.params = options }
         | 
| 22 | 
            +
                  args[1].nil? ? (response = conn.get("/tracks/#{args[0]}/comments.json") { |req| req.params = options }) : (response = conn.get("/tracks/#{args[0]}/comments/#{args[1]}.json") { |req| req.params = options })
         | 
| 23 | 
            +
                  args.nil? ? response.body.send(sym) : response.body
         | 
| 24 | 
            +
                end
         | 
| 25 | 
            +
                
         | 
| 26 | 
            +
                # GET	/tracks/{id}/favoriters	users who favorited the track
         | 
| 27 | 
            +
                # GET	/tracks/{id}/favoriters/{user-id}	a user who has favorited to the track
         | 
| 28 | 
            +
                def tracks_favoriters(*args)
         | 
| 29 | 
            +
                  options = args.extract_options!.merge(:client_id => api_key)
         | 
| 30 | 
            +
                  args[1].nil? ? (response = conn.get("/tracks/#{args[0]}/favoriters.json") { |req| req.params = options }) : (response = conn.get("/tracks/#{args[0]}/favoriters/#{args[1]}.json") { |req| req.params = options })
         | 
| 31 | 
            +
                  args.nil? ? response.body.send(sym) : response.body
         | 
| 32 | 
            +
                end
         | 
| 33 | 
            +
                
         | 
| 34 | 
            +
                # GET /tracks/{id}/shared-to/users	users who have access to the track
         | 
| 35 | 
            +
                def tracks_shared_to_users(*args)
         | 
| 36 | 
            +
                  options = args.extract_options!.merge(:client_id => api_key)
         | 
| 37 | 
            +
                  response = conn.get("/tracks/#{args[0]}/shared-to/users.json") { |req| req.params = options }
         | 
| 38 | 
            +
                  args.nil? ? response.body.send(sym) : response.body     
         | 
| 39 | 
            +
                end
         | 
| 40 | 
            +
                
         | 
| 41 | 
            +
                # GET	/tracks/{id}/shared-to/emails	email addresses who are invited to the track
         | 
| 42 | 
            +
                def tracks_shared_to_emails(*args)
         | 
| 43 | 
            +
                  options = args.extract_options!.merge(:client_id => api_key)
         | 
| 44 | 
            +
                  response = conn.get("/tracks/#{args[0]}/shared-to/emails.json") { |req| req.params = options }
         | 
| 45 | 
            +
                  args.nil? ? response.body.send(sym) : response.body     
         | 
| 46 | 
            +
                end
         | 
| 47 | 
            +
                
         | 
| 48 | 
            +
                # GET /tracks/{id}/secret-token	secret token of the track
         | 
| 49 | 
            +
                def tracks_secret_token(*args)
         | 
| 50 | 
            +
                  options = args.extract_options!.merge(:client_id => api_key)
         | 
| 51 | 
            +
                  response = conn.get("/tracks/#{args[0]}/secret-token.json") { |req| req.params = options }
         | 
| 52 | 
            +
                  args.nil? ? response.body.send(sym) : response.body
         | 
| 53 | 
            +
                end
         | 
| 54 | 
            +
              end
         | 
| 55 | 
            +
            end
         | 
| @@ -0,0 +1,82 @@ | |
| 1 | 
            +
            module Soundcloud2
         | 
| 2 | 
            +
              class Users < Client
         | 
| 3 | 
            +
                attr_reader :api_key, :conn
         | 
| 4 | 
            +
             | 
| 5 | 
            +
                # Initialize on the Soundcloud::Client class
         | 
| 6 | 
            +
                def initialize(*args)
         | 
| 7 | 
            +
                  super
         | 
| 8 | 
            +
                end
         | 
| 9 | 
            +
                
         | 
| 10 | 
            +
                # GET	/users/{id}	a user
         | 
| 11 | 
            +
                def users(*args)
         | 
| 12 | 
            +
                  options = args.extract_options!.merge(:client_id => api_key)
         | 
| 13 | 
            +
                  response = conn.get("/users/#{args[0]}.json") { |req| req.params = options }
         | 
| 14 | 
            +
                  args.nil? ? response.body.send(sym) : response.body
         | 
| 15 | 
            +
                end
         | 
| 16 | 
            +
                
         | 
| 17 | 
            +
                # GET	/users/{id}/tracks	list of tracks of the user
         | 
| 18 | 
            +
                def users_tracks(*args)
         | 
| 19 | 
            +
                  options = args.extract_options!.merge(:client_id => api_key)
         | 
| 20 | 
            +
                  response = conn.get("/users/#{args[0]}/tracks.json") { |req| req.params = options }
         | 
| 21 | 
            +
                  args.nil? ? response.body.send(sym) : response.body
         | 
| 22 | 
            +
                end
         | 
| 23 | 
            +
                
         | 
| 24 | 
            +
                # GET	/users/{id}/playlists	list of playlists (sets) of the user
         | 
| 25 | 
            +
                def users_playlists(*args)
         | 
| 26 | 
            +
                  options = args.extract_options!.merge(:client_id => api_key)
         | 
| 27 | 
            +
                  response = conn.get("/users/#{args[0]}/playlists.json") { |req| req.params = options }
         | 
| 28 | 
            +
                  args.nil? ? response.body.send(sym) : response.body
         | 
| 29 | 
            +
                end
         | 
| 30 | 
            +
                
         | 
| 31 | 
            +
                # GET	/users/{id}/followings	a users followings
         | 
| 32 | 
            +
                # GET	/users/{id}/followings/{id}	a user who is followed by the user
         | 
| 33 | 
            +
                def users_followings(*args)
         | 
| 34 | 
            +
                  options = args.extract_options!.merge(:client_id => api_key)
         | 
| 35 | 
            +
                  args[1].nil? ? (response = conn.get("/users/#{args[0]}/followings.json") { |req| req.params = options }) : (response = conn.get("/users/#{args[0]}/followings/#{args[1]}.json") { |req| req.params = options })
         | 
| 36 | 
            +
                  args.nil? ? response.body.send(sym) : response.body
         | 
| 37 | 
            +
                end
         | 
| 38 | 
            +
                
         | 
| 39 | 
            +
                # GET	/users/{id}/followers	a users followers
         | 
| 40 | 
            +
                # GET	/users/{id}/followers/{id}	user who is following the user
         | 
| 41 | 
            +
                def users_followers(*args)
         | 
| 42 | 
            +
                  options = args.extract_options!.merge(:client_id => api_key)
         | 
| 43 | 
            +
                  args[1].nil? ? (response = conn.get("/users/#{args[0]}/followers.json") { |req| req.params = options }) : (response = conn.get("/users/#{args[0]}/followers/#{args[1]}.json") { |req| req.params = options })
         | 
| 44 | 
            +
                  args.nil? ? response.body.send(sym) : response.body
         | 
| 45 | 
            +
                end
         | 
| 46 | 
            +
                
         | 
| 47 | 
            +
                # GET	/users/{id}/comments	list of comments from this user
         | 
| 48 | 
            +
                def users_comments(*args)
         | 
| 49 | 
            +
                  options = args.extract_options!.merge(:client_id => api_key)
         | 
| 50 | 
            +
                  response = conn.get("/users/#{args[0]}/comments.json") { |req| req.params = options }
         | 
| 51 | 
            +
                  args.nil? ? response.body.send(sym) : response.body
         | 
| 52 | 
            +
                end
         | 
| 53 | 
            +
                
         | 
| 54 | 
            +
                # GET	/users/{id}/favorites	users favorites
         | 
| 55 | 
            +
                # GET	/users/{id}/favorites/{id}	track favorited by the user
         | 
| 56 | 
            +
                def users_favorites(*args)
         | 
| 57 | 
            +
                  options = args.extract_options!.merge(:client_id => api_key)
         | 
| 58 | 
            +
                  args[1].nil? ? (response = conn.get("/users/#{args[0]}/favorites.json") { |req| req.params = options }) : (response = conn.get("/users/#{args[0]}/favorites/#{args[1]}.json") { |req| req.params = options })
         | 
| 59 | 
            +
                  args.nil? ? response.body.send(sym) : response.body
         | 
| 60 | 
            +
                end
         | 
| 61 | 
            +
                
         | 
| 62 | 
            +
                # GET	/users/{id}/groups	list of joined groups
         | 
| 63 | 
            +
                def users_groups(*args)
         | 
| 64 | 
            +
                  options = args.extract_options!.merge(:client_id => api_key)
         | 
| 65 | 
            +
                  response = conn.get("/users/#{args[0]}/groups.json") { |req| req.params = options }
         | 
| 66 | 
            +
                  args.nil? ? response.body.send(sym) : response.body
         | 
| 67 | 
            +
                end
         | 
| 68 | 
            +
             | 
| 69 | 
            +
               # def method_missing(sym, *args, &block)
         | 
| 70 | 
            +
               #   options = args.extract_options!.merge(:client_id => api_key)
         | 
| 71 | 
            +
               #   if sym.to_s == "users"
         | 
| 72 | 
            +
               #     response = conn.get("/users/#{args[0]}.json") { |req| req.params = options }
         | 
| 73 | 
            +
               #   elsif args[1].nil?
         | 
| 74 | 
            +
               #     response = conn.get("/users/#{args[0]}.json") { |req| req.params = options }
         | 
| 75 | 
            +
               #   else
         | 
| 76 | 
            +
               #     response = conn.get("/users/#{args[0]}/#{sym.to_s}/#{args[1]}.json") { |req| req.params = options }
         | 
| 77 | 
            +
               #   end
         | 
| 78 | 
            +
               #   args.nil? ? response.body.send(sym) : response.body
         | 
| 79 | 
            +
               # end
         | 
| 80 | 
            +
             | 
| 81 | 
            +
              end
         | 
| 82 | 
            +
            end
         | 
    
        data/lib/soundcloud2.rb
    ADDED
    
    | @@ -0,0 +1,146 @@ | |
| 1 | 
            +
            require 'faraday'
         | 
| 2 | 
            +
            require 'faraday_middleware'
         | 
| 3 | 
            +
            require 'core_ext/array'
         | 
| 4 | 
            +
            require 'yajl'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            module Soundcloud2
         | 
| 7 | 
            +
              class Client
         | 
| 8 | 
            +
                attr_reader :api_key, :conn
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                def initialize(*args)
         | 
| 11 | 
            +
                  options = args.extract_options!
         | 
| 12 | 
            +
                  @api_key = args[0]
         | 
| 13 | 
            +
                  @conn = Faraday.new(:url => "https://api.soundcloud.com/") do |builder|
         | 
| 14 | 
            +
                    builder.use Faraday::Response::Mashify
         | 
| 15 | 
            +
                    builder.use Faraday::Response::ParseJson
         | 
| 16 | 
            +
                    builder.adapter Faraday.default_adapter
         | 
| 17 | 
            +
                  end
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
                
         | 
| 20 | 
            +
                # PROPERTIES OF GROUPS API
         | 
| 21 | 
            +
                # id	integer ID	123
         | 
| 22 | 
            +
                # uri	API resource URL	http://api.soundcloud.com/comments/32562
         | 
| 23 | 
            +
                # created_at	timestamp of creation	"2009/08/13 18:30:10 +0000"
         | 
| 24 | 
            +
                # permalink	permalink of the resource	"summer-of-69"
         | 
| 25 | 
            +
                # permalink_url	URL to the SoundCloud.com page	"http://soundcloud.com/bryan/summer-of-69"
         | 
| 26 | 
            +
                # artwork_url	URL to a JPEG image	"http://i1.sndcdn.com/a....-large.jpg?142a848"
         | 
| 27 | 
            +
                # name	name of the group	"Field Recordings"
         | 
| 28 | 
            +
                # description	description of the group	"field recordings from across the world"
         | 
| 29 | 
            +
                # short_description	short description of the group	"field recordings!"
         | 
| 30 | 
            +
                # creator	mini user representation of the owner	{id: 343, username: "Doctor Wilson"...}
         | 
| 31 | 
            +
                def groups(*args); super; end
         | 
| 32 | 
            +
                
         | 
| 33 | 
            +
                # PROPERTIES OF PLAYLISTS API
         | 
| 34 | 
            +
                # id	integer ID	123
         | 
| 35 | 
            +
                # created_at	timestamp of creation	"2009/08/13 18:30:10 +0000"
         | 
| 36 | 
            +
                # user-id	user-id of the owner	343
         | 
| 37 | 
            +
                # user	mini user representation of the owner	{id: 343, username: "Doctor Wilson"...}
         | 
| 38 | 
            +
                # title	track title	"Summer of 69"
         | 
| 39 | 
            +
                # permalink	permalink of the resource	"summer-of-69"
         | 
| 40 | 
            +
                # permalink_url	URL to the SoundCloud.com page	"http://soundcloud.com/bryan/summer-of-69"
         | 
| 41 | 
            +
                # uri	API resource URL	"http://api.soundcloud.com/tracks/123"
         | 
| 42 | 
            +
                # sharing	public/private sharing	"public"
         | 
| 43 | 
            +
                # purchase_url	external purchase link	"http://amazon.com/buy/a43aj0b03"
         | 
| 44 | 
            +
                # artwork_url	URL to a JPEG image	"http://i1.sndcdn.com/a....-large.jpg?142a848"
         | 
| 45 | 
            +
                # description	HTML description	"my first track"
         | 
| 46 | 
            +
                # downloadable	downloadable (boolean)	false
         | 
| 47 | 
            +
                # streamable	streamable via API (boolean)	true
         | 
| 48 | 
            +
                # label	label mini user object	{id:123, username: "BeatLabel"...}
         | 
| 49 | 
            +
                # duration	duration in milliseconds	1203400
         | 
| 50 | 
            +
                # genre	genre	"HipHop"
         | 
| 51 | 
            +
                # shared_to_count	number of sharings (if private)	45
         | 
| 52 | 
            +
                # tag_list	list of tags	"tag1 \"hip hop\" geo:lat=32.444 geo:lon=55.33"
         | 
| 53 | 
            +
                # label_id	id of the label user	54677
         | 
| 54 | 
            +
                # label_name	label name	"BeatLabel"
         | 
| 55 | 
            +
                # license	creative common license	"no-rights-reserved"
         | 
| 56 | 
            +
                # release	release number	3234
         | 
| 57 | 
            +
                # release_day	day of the release	21
         | 
| 58 | 
            +
                # release_month	month of the release	5
         | 
| 59 | 
            +
                # release_year	year of the release	2001
         | 
| 60 | 
            +
                # ean	EAN identifier for the playlist	"123-4354345-43"
         | 
| 61 | 
            +
                # playlist_type	playlist type	"recording"
         | 
| 62 | 
            +
                def playlists(*args); super; end
         | 
| 63 | 
            +
                
         | 
| 64 | 
            +
                # PROPERTIES OF TRACKS API
         | 
| 65 | 
            +
                # id	integer ID	123
         | 
| 66 | 
            +
                # created_at	timestamp of creation	"2009/08/13 18:30:10 +0000"
         | 
| 67 | 
            +
                # user-id	user-id of the owner	343
         | 
| 68 | 
            +
                # user	mini user representation of the owner	{id: 343, username: "Doctor Wilson"...}
         | 
| 69 | 
            +
                # title	track title	"Summer of 69"
         | 
| 70 | 
            +
                # permalink	permalink of the resource	"summer-of-69"
         | 
| 71 | 
            +
                # permalink_url	URL to the SoundCloud.com page	"http://soundcloud.com/bryan/summer-of-69"
         | 
| 72 | 
            +
                # uri	API resource URL	"http://api.soundcloud.com/tracks/123"
         | 
| 73 | 
            +
                # sharing	public/private sharing	"public"
         | 
| 74 | 
            +
                # purchase_url	external purchase link	"http://amazon.com/buy/a43aj0b03"
         | 
| 75 | 
            +
                # artwork_url	URL to a JPEG image	"http://i1.sndcdn.com/a....-large.jpg?142a848"
         | 
| 76 | 
            +
                # description	HTML description	"my first track"
         | 
| 77 | 
            +
                # downloadable	downloadable (boolean)	false
         | 
| 78 | 
            +
                # streamable	streamable via API (boolean)	true
         | 
| 79 | 
            +
                # label	label mini user object	{id:123, username: "BeatLabel"...}
         | 
| 80 | 
            +
                # duration	duration in milliseconds	1203400
         | 
| 81 | 
            +
                # genre	genre	"HipHop"
         | 
| 82 | 
            +
                # shared_to_count	number of sharings (if private)	45
         | 
| 83 | 
            +
                # tag_list	list of tags	"tag1 \"hip hop\" geo:lat=32.444 geo:lon=55.33"
         | 
| 84 | 
            +
                # label_id	id of the label user	54677
         | 
| 85 | 
            +
                # label_name	label name	"BeatLabel"
         | 
| 86 | 
            +
                # license	creative common license	"no-rights-reserved"
         | 
| 87 | 
            +
                # release	release number	3234
         | 
| 88 | 
            +
                # release_day	day of the release	21
         | 
| 89 | 
            +
                # release_month	month of the release	5
         | 
| 90 | 
            +
                # release_year	year of the release	2001
         | 
| 91 | 
            +
                # state	encoding state	"finished"
         | 
| 92 | 
            +
                # track_type	track type	"recording"
         | 
| 93 | 
            +
                # waveform_url	URL to PNG waveform image	"http://w1.sndcdn.com/fxguEjG4ax6B_m.png"
         | 
| 94 | 
            +
                # download_url	URL to original file	"http://api.soundcloud.com/tracks/3/download"
         | 
| 95 | 
            +
                # stream_url	link to 128kbs mp3 stream	"http://api.soundcloud.com/tracks/3/stream"
         | 
| 96 | 
            +
                # bpm	beats per minute	120
         | 
| 97 | 
            +
                # commentable	track commentable (boolean)	true
         | 
| 98 | 
            +
                # isrc	track ISRC	"I123-545454"
         | 
| 99 | 
            +
                # key_signature	track key	"Cmaj"
         | 
| 100 | 
            +
                # comment_count	track comment count	12
         | 
| 101 | 
            +
                # download_count	track download count	45
         | 
| 102 | 
            +
                # playback_count	track play count	435
         | 
| 103 | 
            +
                # favoritings_count	track favoriting count	6
         | 
| 104 | 
            +
                # original_format	file format of the original file	"aiff"
         | 
| 105 | 
            +
                # created_with	the app that the track created	{"id"=>3434, "..."=>nil}
         | 
| 106 | 
            +
                # asset_data	binary data of the audio file	(only for uploading)
         | 
| 107 | 
            +
                # artwork_data	binary data of the artwork image	(only for uploading)
         | 
| 108 | 
            +
                # user_favorite	track favorite of current user (boolean, authenticated requests only)	1
         | 
| 109 | 
            +
                def tracks(*args); super; end
         | 
| 110 | 
            +
                
         | 
| 111 | 
            +
                # PROPERTIES OF USERS API
         | 
| 112 | 
            +
                # id	integer ID	123
         | 
| 113 | 
            +
                # permalink	permalink of the resource	"summer-of-69"
         | 
| 114 | 
            +
                # username	username	"Doctor Wilson"
         | 
| 115 | 
            +
                # uri	API resource URL	http://api.soundcloud.com/comments/32562
         | 
| 116 | 
            +
                # permalink_url	URL to the SoundCloud.com page	"http://soundcloud.com/bryan/summer-of-69"
         | 
| 117 | 
            +
                # avatar_url	URL to a JPEG image	"http://i1.sndcdn.com/a....-large.jpg?142a848"
         | 
| 118 | 
            +
                # country	country	"Germany"
         | 
| 119 | 
            +
                # full_name	first and last name	"Tom Wilson"
         | 
| 120 | 
            +
                # city	city	"Berlin"
         | 
| 121 | 
            +
                # description	description	"Another brick in the wall"
         | 
| 122 | 
            +
                # discogs-name	Discogs name	"myrandomband"
         | 
| 123 | 
            +
                # myspace-name	MySpace name	"myrandomband"
         | 
| 124 | 
            +
                # website	a URL to the website	"http://facebook.com/myrandomband"
         | 
| 125 | 
            +
                # website-title	a custom title for the website	"myrandomband on Facebook"
         | 
| 126 | 
            +
                # online	online status (boolean)	true
         | 
| 127 | 
            +
                # track_count	number of public tracks	4
         | 
| 128 | 
            +
                # playlist_count	number of public playlists	5
         | 
| 129 | 
            +
                # followers_count	number of followers	54
         | 
| 130 | 
            +
                # followings_count	number of followed users	75
         | 
| 131 | 
            +
                # public_favorites_count	number of favorited public tracks	7
         | 
| 132 | 
            +
                def users(*args); super; end
         | 
| 133 | 
            +
             | 
| 134 | 
            +
                def method_missing(sym, *args, &block)
         | 
| 135 | 
            +
                  options = args.extract_options!.merge(:client_id => api_key)
         | 
| 136 | 
            +
                  response = conn.get("/#{sym.to_s}.json") { |req| req.params = options }
         | 
| 137 | 
            +
                  args.nil? ? response.body.send(sym) : response.body
         | 
| 138 | 
            +
                end
         | 
| 139 | 
            +
              end
         | 
| 140 | 
            +
              
         | 
| 141 | 
            +
              autoload :Comments,   "soundcloud2/comments"
         | 
| 142 | 
            +
              autoload :Groups,     "soundcloud2/groups"
         | 
| 143 | 
            +
              autoload :Playlists,  "soundcloud2/playlists"
         | 
| 144 | 
            +
              autoload :Tracks,     "soundcloud2/tracks"
         | 
| 145 | 
            +
              autoload :Users,      "soundcloud2/users"
         | 
| 146 | 
            +
            end
         | 
    
        data/soundcloud2.gemspec
    ADDED
    
    | @@ -0,0 +1,33 @@ | |
| 1 | 
            +
            # -*- encoding: utf-8 -*-
         | 
| 2 | 
            +
            $:.push File.expand_path("../lib", __FILE__)
         | 
| 3 | 
            +
            require "soundcloud2/version"
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            Gem::Specification.new do |s|
         | 
| 6 | 
            +
              s.name        = "soundcloud2"
         | 
| 7 | 
            +
              s.version     = Soundcloud2::VERSION
         | 
| 8 | 
            +
              s.platform    = Gem::Platform::RUBY
         | 
| 9 | 
            +
              s.authors     = ["Alex Manelis"]
         | 
| 10 | 
            +
              s.email       = ["amanelis@console.fm"]
         | 
| 11 | 
            +
              s.homepage    = "http://github.com/amanelis/soundcloud2"
         | 
| 12 | 
            +
              s.summary     = %q{A wrapper for the Soundcloud v2 API}
         | 
| 13 | 
            +
              s.description = %q{A wrapper for the Soundcloud v2 API}
         | 
| 14 | 
            +
             | 
| 15 | 
            +
              s.rubyforge_project = "soundcloud2"
         | 
| 16 | 
            +
              s.add_development_dependency('rake', '~> 0.8')
         | 
| 17 | 
            +
              s.add_development_dependency('rspec', '~> 2.5')
         | 
| 18 | 
            +
              s.add_development_dependency('simplecov', '~> 0.4')
         | 
| 19 | 
            +
              s.add_development_dependency('vcr', '~> 1.7.0')
         | 
| 20 | 
            +
              s.add_development_dependency('fakeweb')
         | 
| 21 | 
            +
              s.add_development_dependency('yard', '~> 0.6')
         | 
| 22 | 
            +
              s.add_development_dependency('maruku', '~> 0.6')
         | 
| 23 | 
            +
              s.add_runtime_dependency("faraday", '~> 0.7.4')
         | 
| 24 | 
            +
              s.add_runtime_dependency("faraday_middleware", '~> 0.7.0')
         | 
| 25 | 
            +
              s.add_runtime_dependency('hashie', '~> 1.1.0')
         | 
| 26 | 
            +
              s.add_runtime_dependency('yajl-ruby', '~> 0.8.1')
         | 
| 27 | 
            +
              s.add_runtime_dependency('multi_json', '~> 1.0.3')
         | 
| 28 | 
            +
             | 
| 29 | 
            +
              s.files         = `git ls-files`.split("\n")
         | 
| 30 | 
            +
              s.test_files    = `git ls-files -- {test,spec,features}/*`.split("\n")
         | 
| 31 | 
            +
              s.executables   = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
         | 
| 32 | 
            +
              s.require_paths = ["lib"]
         | 
| 33 | 
            +
            end
         | 
| @@ -0,0 +1,41 @@ | |
| 1 | 
            +
            require File.expand_path('../../spec_helper', __FILE__)
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe Soundcloud2::Client do
         | 
| 4 | 
            +
              context "Client" do
         | 
| 5 | 
            +
                before(:all) do
         | 
| 6 | 
            +
                  @client = Soundcloud2::Client.new(API_KEY)
         | 
| 7 | 
            +
                end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                it ".initialize" do
         | 
| 10 | 
            +
                  puts "TESTING: .api_key"
         | 
| 11 | 
            +
                  puts "TESTING: .inspect"
         | 
| 12 | 
            +
                  puts @client.api_key
         | 
| 13 | 
            +
                  puts @client.inspect
         | 
| 14 | 
            +
                end
         | 
| 15 | 
            +
              
         | 
| 16 | 
            +
                it ".groups" do
         | 
| 17 | 
            +
                  puts "TESTING: .groups"
         | 
| 18 | 
            +
                  data = @client.groups(:q => 'dubstep')
         | 
| 19 | 
            +
                  puts data.inspect
         | 
| 20 | 
            +
                end
         | 
| 21 | 
            +
                
         | 
| 22 | 
            +
                it ".playlists" do
         | 
| 23 | 
            +
                  puts "TESTING: .playlists"
         | 
| 24 | 
            +
                  data = @client.playlists(:q => 'dubstep')
         | 
| 25 | 
            +
                  puts data.inspect
         | 
| 26 | 
            +
                end
         | 
| 27 | 
            +
                
         | 
| 28 | 
            +
                it ".tracks" do
         | 
| 29 | 
            +
                  puts "TESTING: .tracks"
         | 
| 30 | 
            +
                  data = @client.tracks(:q => 'A new world')
         | 
| 31 | 
            +
                  puts data.inspect
         | 
| 32 | 
            +
                end
         | 
| 33 | 
            +
                
         | 
| 34 | 
            +
                it ".users" do
         | 
| 35 | 
            +
                  puts "TESTING: .users"
         | 
| 36 | 
            +
                  data = @client.users(:q => 'skrillex')
         | 
| 37 | 
            +
                  puts data.inspect
         | 
| 38 | 
            +
                end
         | 
| 39 | 
            +
             | 
| 40 | 
            +
              end
         | 
| 41 | 
            +
            end
         | 
| @@ -0,0 +1,21 @@ | |
| 1 | 
            +
            require File.expand_path('../../spec_helper', __FILE__)
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe Soundcloud2::Comments do
         | 
| 4 | 
            +
              context "Comments" do
         | 
| 5 | 
            +
                before(:all) do
         | 
| 6 | 
            +
                  @comments = Soundcloud2::Comments.new(API_KEY)
         | 
| 7 | 
            +
                end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                it ".initialize" do
         | 
| 10 | 
            +
                  puts "TESTING: .initialize"
         | 
| 11 | 
            +
                  puts @comments.api_key
         | 
| 12 | 
            +
                  puts @comments.inspect
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
                
         | 
| 15 | 
            +
                it ".groups" do
         | 
| 16 | 
            +
                  puts "TESTING: .groups"
         | 
| 17 | 
            +
                  puts @comments.comments('23145109')
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
              end
         | 
| 21 | 
            +
            end
         | 
| @@ -0,0 +1,46 @@ | |
| 1 | 
            +
            require File.expand_path('../../spec_helper', __FILE__)
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe Soundcloud2::Groups do
         | 
| 4 | 
            +
              context "Groups" do
         | 
| 5 | 
            +
                before(:all) do
         | 
| 6 | 
            +
                  @groups = Soundcloud2::Groups.new(API_KEY)
         | 
| 7 | 
            +
                end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                it ".initialize" do
         | 
| 10 | 
            +
                  puts "TESTING: .initialize"
         | 
| 11 | 
            +
                  puts @groups.api_key
         | 
| 12 | 
            +
                  puts @groups.inspect
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
                
         | 
| 15 | 
            +
                it ".groups" do
         | 
| 16 | 
            +
                  puts "TESTING: .groups"
         | 
| 17 | 
            +
                  puts @groups.groups('11440')
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
                
         | 
| 20 | 
            +
                it ".groups_moderators" do
         | 
| 21 | 
            +
                  puts "TESTING: .groups_moderators"
         | 
| 22 | 
            +
                  puts @groups.groups_moderators('11440')
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
                
         | 
| 25 | 
            +
                it ".groups_members" do
         | 
| 26 | 
            +
                  puts "TESTING: .groups_members"
         | 
| 27 | 
            +
                  puts @groups.groups_members('11440')
         | 
| 28 | 
            +
                end
         | 
| 29 | 
            +
                
         | 
| 30 | 
            +
                it ".groups_contributors" do
         | 
| 31 | 
            +
                  puts "TESTING: .groups_contributors"
         | 
| 32 | 
            +
                  puts @groups.groups_contributors('11440')
         | 
| 33 | 
            +
                end
         | 
| 34 | 
            +
                
         | 
| 35 | 
            +
                it ".groups_users" do
         | 
| 36 | 
            +
                  puts "TESTING: .groups_users"
         | 
| 37 | 
            +
                  puts @groups.groups_users('11440')
         | 
| 38 | 
            +
                end
         | 
| 39 | 
            +
                
         | 
| 40 | 
            +
                it ".groups_tracks" do
         | 
| 41 | 
            +
                  puts "TESTING: .groups_tracks"
         | 
| 42 | 
            +
                  puts @groups.groups_tracks('11440')
         | 
| 43 | 
            +
                end
         | 
| 44 | 
            +
             | 
| 45 | 
            +
              end
         | 
| 46 | 
            +
            end
         | 
| @@ -0,0 +1,31 @@ | |
| 1 | 
            +
            require File.expand_path('../../spec_helper', __FILE__)
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe Soundcloud2::Playlists do
         | 
| 4 | 
            +
              context "Playlists" do
         | 
| 5 | 
            +
                before(:all) do
         | 
| 6 | 
            +
                  @playlists = Soundcloud2::Playlists.new(API_KEY)
         | 
| 7 | 
            +
                end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                it ".initialize" do
         | 
| 10 | 
            +
                  puts "TESTING: .initialize"
         | 
| 11 | 
            +
                  puts @playlists.api_key
         | 
| 12 | 
            +
                  puts @playlists.inspect
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
                
         | 
| 15 | 
            +
                it ".playlists" do 
         | 
| 16 | 
            +
                  puts "TESTING: .playlists"
         | 
| 17 | 
            +
                  puts @playlists.playlists('920731')
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
                
         | 
| 20 | 
            +
                it ".playlists_shared_to_users" do
         | 
| 21 | 
            +
                  puts "TESTING: .playlists_shared_to_users"
         | 
| 22 | 
            +
                  puts @playlists.playlists_shared_to_users('4201929')
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
                
         | 
| 25 | 
            +
                it ".playlists_shared_to_emails" do
         | 
| 26 | 
            +
                  puts "TESTING: .playlists_shared_to_emails"
         | 
| 27 | 
            +
                  puts @playlists.playlists_shared_to_emails('amanelis')
         | 
| 28 | 
            +
                end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
              end
         | 
| 31 | 
            +
            end
         | 
| @@ -0,0 +1,41 @@ | |
| 1 | 
            +
            require File.expand_path('../../spec_helper', __FILE__)
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe Soundcloud2::Client do
         | 
| 4 | 
            +
              context "Client" do
         | 
| 5 | 
            +
                before(:all) do
         | 
| 6 | 
            +
                  @client = Soundcloud2::Client.new(API_KEY)
         | 
| 7 | 
            +
                  @tracks = Soundcloud2::Tracks.new(API_KEY)
         | 
| 8 | 
            +
                end
         | 
| 9 | 
            +
              
         | 
| 10 | 
            +
                it "Soundcloud2::Client.new(API_KEY).tracks" do
         | 
| 11 | 
            +
                  puts "---------------------------------------------------------"
         | 
| 12 | 
            +
                  puts "Soundcloud::Client.new(API_KEY).tracks(:q => 'Song title')"
         | 
| 13 | 
            +
                  results = Array.new
         | 
| 14 | 
            +
                  results << @client.tracks(:q => 'Skrillex - Do Da Oliphant')
         | 
| 15 | 
            +
                  results << @client.tracks(:q => 'Kryder K2')
         | 
| 16 | 
            +
                  results << @client.tracks(:q => 'Ry Legit - Woody (CLIP)')
         | 
| 17 | 
            +
                  results << @client.tracks(:q => 'Oblivion Feat. Ashley Merges - Bass Freq (Oblivion VIP) [FREE DOWNLOAD]')
         | 
| 18 | 
            +
                  results << @client.tracks(:q => 'Kayla ft. Lil Jon - Step On It (Proper Villains remix)')
         | 
| 19 | 
            +
                  results << @client.tracks(:q => 'Supreme - The Fortress (P0GMAN Remix) (CLIP) [FORTHCOMING BADMAN DIGITAL]')
         | 
| 20 | 
            +
                  results << @client.tracks(:q => 'Dubsidia & Balkansky - Annoying Dog (Original Mix) DEMO Play Me Records')
         | 
| 21 | 
            +
                  
         | 
| 22 | 
            +
                  results.each do |r|
         | 
| 23 | 
            +
                    s = r.first
         | 
| 24 | 
            +
                    
         | 
| 25 | 
            +
                    puts "Song Title: #{s.title}"
         | 
| 26 | 
            +
                    puts "Song id: #{s.id}"
         | 
| 27 | 
            +
                    puts "Genre: #{s.genre}"
         | 
| 28 | 
            +
                    puts "Slug: #{s.permalink}"
         | 
| 29 | 
            +
                    puts "Comments: #{s.comment_count}"
         | 
| 30 | 
            +
                    puts "Downloads: #{s.download_count}"
         | 
| 31 | 
            +
                    puts "Playbacks: #{s.playback_count}"
         | 
| 32 | 
            +
                    puts "Favorites: #{s.favoritings_count}"
         | 
| 33 | 
            +
                    puts "https://api.soundcloud.com/tracks/#{s.id}/stream?client_id=281bf78db858fb70bf8ccef48976dde4"
         | 
| 34 | 
            +
                    puts "*********************************************************************************************"
         | 
| 35 | 
            +
                    puts s.inspect
         | 
| 36 | 
            +
                  end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                end
         | 
| 39 | 
            +
             | 
| 40 | 
            +
              end
         | 
| 41 | 
            +
            end
         | 
| @@ -0,0 +1,50 @@ | |
| 1 | 
            +
            require File.expand_path('../../spec_helper', __FILE__)
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe Soundcloud2::Tracks do
         | 
| 4 | 
            +
              context "Tracks" do
         | 
| 5 | 
            +
                before(:all) do
         | 
| 6 | 
            +
                  @tracks = Soundcloud2::Tracks.new(API_KEY)
         | 
| 7 | 
            +
                end
         | 
| 8 | 
            +
                
         | 
| 9 | 
            +
                it ".initialize" do
         | 
| 10 | 
            +
                  puts "TESTING: .initialize"
         | 
| 11 | 
            +
                  puts @tracks.api_key
         | 
| 12 | 
            +
                  puts @tracks.inspect
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
                
         | 
| 15 | 
            +
                it ".tracks" do
         | 
| 16 | 
            +
                  puts "TESTING: .tracks"
         | 
| 17 | 
            +
                  puts @tracks.tracks('20296934')
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
                
         | 
| 20 | 
            +
                it ".tracks_comments" do
         | 
| 21 | 
            +
                  puts "TESTING: .tracks_comments"
         | 
| 22 | 
            +
                  puts @tracks.tracks_comments('20296934')
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
                
         | 
| 25 | 
            +
                it ".tracks_comments/:id" do
         | 
| 26 | 
            +
                  puts "TESTING: .tracks_comments/:id"
         | 
| 27 | 
            +
                  puts @tracks.tracks_comments('20296934', '23145109')
         | 
| 28 | 
            +
                end
         | 
| 29 | 
            +
                
         | 
| 30 | 
            +
                it ".tracks_favoriters" do
         | 
| 31 | 
            +
                  puts "TESTING: .tracks_favoriters"
         | 
| 32 | 
            +
                  puts @tracks.tracks_favoriters('20296934')      
         | 
| 33 | 
            +
                end
         | 
| 34 | 
            +
                
         | 
| 35 | 
            +
                it ".tracks_favoriters/:id" do
         | 
| 36 | 
            +
                  puts "TESTING: .tracks_favoriters/:id"
         | 
| 37 | 
            +
                  puts @tracks.tracks_favoriters('20296934', '2769794')      
         | 
| 38 | 
            +
                end
         | 
| 39 | 
            +
                
         | 
| 40 | 
            +
                it ".tracks_shared_to_users" do
         | 
| 41 | 
            +
                  puts "TESTING: .tracks_shared_to_users"
         | 
| 42 | 
            +
                  puts @tracks.tracks_shared_to_users('20296934')
         | 
| 43 | 
            +
                end
         | 
| 44 | 
            +
                
         | 
| 45 | 
            +
                it ".tracks_shared_to_emails" do
         | 
| 46 | 
            +
                  puts "TESTING: .tracks_shared_to_emails"
         | 
| 47 | 
            +
                  puts @tracks.tracks_shared_to_emails('20296934')
         | 
| 48 | 
            +
                end
         | 
| 49 | 
            +
              end
         | 
| 50 | 
            +
            end
         | 
| @@ -0,0 +1,71 @@ | |
| 1 | 
            +
            require File.expand_path('../../spec_helper', __FILE__)
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe Soundcloud2::Users do
         | 
| 4 | 
            +
              context "Users" do
         | 
| 5 | 
            +
                before(:all) do
         | 
| 6 | 
            +
                  @users = Soundcloud2::Users.new(API_KEY)
         | 
| 7 | 
            +
                end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                it ".initialize" do
         | 
| 10 | 
            +
                  puts "TESTING: .initialize"
         | 
| 11 | 
            +
                  puts @users.api_key
         | 
| 12 | 
            +
                  puts @users.inspect
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
                
         | 
| 15 | 
            +
                it ".users" do
         | 
| 16 | 
            +
                  puts "TESTING: .users"
         | 
| 17 | 
            +
                  puts @users.users('4201929')
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
                
         | 
| 20 | 
            +
                it ".users_tracks" do
         | 
| 21 | 
            +
                  puts "TESTING: .users_tracks"
         | 
| 22 | 
            +
                  puts @users.users_tracks('4201929')
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
                
         | 
| 25 | 
            +
                it ".users_playlists" do
         | 
| 26 | 
            +
                  puts "TESTING: .users_playlists"
         | 
| 27 | 
            +
                  puts @users.users_playlists('4201929')
         | 
| 28 | 
            +
                end
         | 
| 29 | 
            +
                
         | 
| 30 | 
            +
                it ".users_followings" do
         | 
| 31 | 
            +
                  puts "TESTING: .users_followings"
         | 
| 32 | 
            +
                  puts @users.users_followings('4201929')
         | 
| 33 | 
            +
                end 
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                it ".users_followings/:id" do
         | 
| 36 | 
            +
                  puts "TESTING: .users_followings/:id"
         | 
| 37 | 
            +
                  puts @users.users_followings('4201929', '1931470')
         | 
| 38 | 
            +
                end
         | 
| 39 | 
            +
             
         | 
| 40 | 
            +
                it ".users_followers" do
         | 
| 41 | 
            +
                  puts "TESTING: .users_followers"
         | 
| 42 | 
            +
                  puts @users.users_followers('4201929')
         | 
| 43 | 
            +
                end
         | 
| 44 | 
            +
                
         | 
| 45 | 
            +
                it ".users_followers/:id" do
         | 
| 46 | 
            +
                  puts "TESTING: .users_followers/:id"
         | 
| 47 | 
            +
                  puts @users.users_followers('4201929', '1931470')
         | 
| 48 | 
            +
                end
         | 
| 49 | 
            +
                
         | 
| 50 | 
            +
                it ".users_comments" do
         | 
| 51 | 
            +
                  puts "TESTING: .users_comments"
         | 
| 52 | 
            +
                  puts @users.users_comments('4201929')
         | 
| 53 | 
            +
                end
         | 
| 54 | 
            +
                
         | 
| 55 | 
            +
                it ".users_favorites" do
         | 
| 56 | 
            +
                  puts "TESTING: .users_favorites"
         | 
| 57 | 
            +
                  puts @users.users_favorites('4201929')
         | 
| 58 | 
            +
                end
         | 
| 59 | 
            +
                
         | 
| 60 | 
            +
                it ".users_favorites/:id" do
         | 
| 61 | 
            +
                  puts "TESTING: .users_favorites/:id"
         | 
| 62 | 
            +
                  puts @users.users_favorites('4201929', '1931470')
         | 
| 63 | 
            +
                end
         | 
| 64 | 
            +
                
         | 
| 65 | 
            +
                it ".users_groups" do
         | 
| 66 | 
            +
                  puts "TESTING: .users_groups"
         | 
| 67 | 
            +
                  puts @users.users_groups('4201929')
         | 
| 68 | 
            +
                end
         | 
| 69 | 
            +
             | 
| 70 | 
            +
              end
         | 
| 71 | 
            +
            end
         | 
    
        data/spec/spec_helper.rb
    ADDED
    
    | @@ -0,0 +1,13 @@ | |
| 1 | 
            +
            require 'simplecov'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            SimpleCov.start do
         | 
| 4 | 
            +
              add_group 'Soundcloud2', 'lib/soundcloud2'
         | 
| 5 | 
            +
              add_group 'Specs', 'spec'
         | 
| 6 | 
            +
            end
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            require File.expand_path('../../lib/soundcloud2', __FILE__)
         | 
| 9 | 
            +
            require 'rubygems'
         | 
| 10 | 
            +
            require 'rspec'
         | 
| 11 | 
            +
            require 'vcr'
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            API_KEY = "734a173874da8c420aeb59fd03623454"
         | 
    
        metadata
    ADDED
    
    | @@ -0,0 +1,214 @@ | |
| 1 | 
            +
            --- !ruby/object:Gem::Specification 
         | 
| 2 | 
            +
            name: soundcloud2
         | 
| 3 | 
            +
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            +
              prerelease: 
         | 
| 5 | 
            +
              version: 0.3.1
         | 
| 6 | 
            +
            platform: ruby
         | 
| 7 | 
            +
            authors: 
         | 
| 8 | 
            +
            - Alex Manelis
         | 
| 9 | 
            +
            autorequire: 
         | 
| 10 | 
            +
            bindir: bin
         | 
| 11 | 
            +
            cert_chain: []
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            date: 2011-08-15 00:00:00 Z
         | 
| 14 | 
            +
            dependencies: 
         | 
| 15 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 16 | 
            +
              name: rake
         | 
| 17 | 
            +
              prerelease: false
         | 
| 18 | 
            +
              requirement: &id001 !ruby/object:Gem::Requirement 
         | 
| 19 | 
            +
                none: false
         | 
| 20 | 
            +
                requirements: 
         | 
| 21 | 
            +
                - - ~>
         | 
| 22 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 23 | 
            +
                    version: "0.8"
         | 
| 24 | 
            +
              type: :development
         | 
| 25 | 
            +
              version_requirements: *id001
         | 
| 26 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 27 | 
            +
              name: rspec
         | 
| 28 | 
            +
              prerelease: false
         | 
| 29 | 
            +
              requirement: &id002 !ruby/object:Gem::Requirement 
         | 
| 30 | 
            +
                none: false
         | 
| 31 | 
            +
                requirements: 
         | 
| 32 | 
            +
                - - ~>
         | 
| 33 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 34 | 
            +
                    version: "2.5"
         | 
| 35 | 
            +
              type: :development
         | 
| 36 | 
            +
              version_requirements: *id002
         | 
| 37 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 38 | 
            +
              name: simplecov
         | 
| 39 | 
            +
              prerelease: false
         | 
| 40 | 
            +
              requirement: &id003 !ruby/object:Gem::Requirement 
         | 
| 41 | 
            +
                none: false
         | 
| 42 | 
            +
                requirements: 
         | 
| 43 | 
            +
                - - ~>
         | 
| 44 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 45 | 
            +
                    version: "0.4"
         | 
| 46 | 
            +
              type: :development
         | 
| 47 | 
            +
              version_requirements: *id003
         | 
| 48 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 49 | 
            +
              name: vcr
         | 
| 50 | 
            +
              prerelease: false
         | 
| 51 | 
            +
              requirement: &id004 !ruby/object:Gem::Requirement 
         | 
| 52 | 
            +
                none: false
         | 
| 53 | 
            +
                requirements: 
         | 
| 54 | 
            +
                - - ~>
         | 
| 55 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 56 | 
            +
                    version: 1.7.0
         | 
| 57 | 
            +
              type: :development
         | 
| 58 | 
            +
              version_requirements: *id004
         | 
| 59 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 60 | 
            +
              name: fakeweb
         | 
| 61 | 
            +
              prerelease: false
         | 
| 62 | 
            +
              requirement: &id005 !ruby/object:Gem::Requirement 
         | 
| 63 | 
            +
                none: false
         | 
| 64 | 
            +
                requirements: 
         | 
| 65 | 
            +
                - - ">="
         | 
| 66 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 67 | 
            +
                    version: "0"
         | 
| 68 | 
            +
              type: :development
         | 
| 69 | 
            +
              version_requirements: *id005
         | 
| 70 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 71 | 
            +
              name: yard
         | 
| 72 | 
            +
              prerelease: false
         | 
| 73 | 
            +
              requirement: &id006 !ruby/object:Gem::Requirement 
         | 
| 74 | 
            +
                none: false
         | 
| 75 | 
            +
                requirements: 
         | 
| 76 | 
            +
                - - ~>
         | 
| 77 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 78 | 
            +
                    version: "0.6"
         | 
| 79 | 
            +
              type: :development
         | 
| 80 | 
            +
              version_requirements: *id006
         | 
| 81 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 82 | 
            +
              name: maruku
         | 
| 83 | 
            +
              prerelease: false
         | 
| 84 | 
            +
              requirement: &id007 !ruby/object:Gem::Requirement 
         | 
| 85 | 
            +
                none: false
         | 
| 86 | 
            +
                requirements: 
         | 
| 87 | 
            +
                - - ~>
         | 
| 88 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 89 | 
            +
                    version: "0.6"
         | 
| 90 | 
            +
              type: :development
         | 
| 91 | 
            +
              version_requirements: *id007
         | 
| 92 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 93 | 
            +
              name: faraday
         | 
| 94 | 
            +
              prerelease: false
         | 
| 95 | 
            +
              requirement: &id008 !ruby/object:Gem::Requirement 
         | 
| 96 | 
            +
                none: false
         | 
| 97 | 
            +
                requirements: 
         | 
| 98 | 
            +
                - - ~>
         | 
| 99 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 100 | 
            +
                    version: 0.7.4
         | 
| 101 | 
            +
              type: :runtime
         | 
| 102 | 
            +
              version_requirements: *id008
         | 
| 103 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 104 | 
            +
              name: faraday_middleware
         | 
| 105 | 
            +
              prerelease: false
         | 
| 106 | 
            +
              requirement: &id009 !ruby/object:Gem::Requirement 
         | 
| 107 | 
            +
                none: false
         | 
| 108 | 
            +
                requirements: 
         | 
| 109 | 
            +
                - - ~>
         | 
| 110 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 111 | 
            +
                    version: 0.7.0
         | 
| 112 | 
            +
              type: :runtime
         | 
| 113 | 
            +
              version_requirements: *id009
         | 
| 114 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 115 | 
            +
              name: hashie
         | 
| 116 | 
            +
              prerelease: false
         | 
| 117 | 
            +
              requirement: &id010 !ruby/object:Gem::Requirement 
         | 
| 118 | 
            +
                none: false
         | 
| 119 | 
            +
                requirements: 
         | 
| 120 | 
            +
                - - ~>
         | 
| 121 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 122 | 
            +
                    version: 1.1.0
         | 
| 123 | 
            +
              type: :runtime
         | 
| 124 | 
            +
              version_requirements: *id010
         | 
| 125 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 126 | 
            +
              name: yajl-ruby
         | 
| 127 | 
            +
              prerelease: false
         | 
| 128 | 
            +
              requirement: &id011 !ruby/object:Gem::Requirement 
         | 
| 129 | 
            +
                none: false
         | 
| 130 | 
            +
                requirements: 
         | 
| 131 | 
            +
                - - ~>
         | 
| 132 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 133 | 
            +
                    version: 0.8.1
         | 
| 134 | 
            +
              type: :runtime
         | 
| 135 | 
            +
              version_requirements: *id011
         | 
| 136 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 137 | 
            +
              name: multi_json
         | 
| 138 | 
            +
              prerelease: false
         | 
| 139 | 
            +
              requirement: &id012 !ruby/object:Gem::Requirement 
         | 
| 140 | 
            +
                none: false
         | 
| 141 | 
            +
                requirements: 
         | 
| 142 | 
            +
                - - ~>
         | 
| 143 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 144 | 
            +
                    version: 1.0.3
         | 
| 145 | 
            +
              type: :runtime
         | 
| 146 | 
            +
              version_requirements: *id012
         | 
| 147 | 
            +
            description: A wrapper for the Soundcloud v2 API
         | 
| 148 | 
            +
            email: 
         | 
| 149 | 
            +
            - amanelis@console.fm
         | 
| 150 | 
            +
            executables: []
         | 
| 151 | 
            +
             | 
| 152 | 
            +
            extensions: []
         | 
| 153 | 
            +
             | 
| 154 | 
            +
            extra_rdoc_files: []
         | 
| 155 | 
            +
             | 
| 156 | 
            +
            files: 
         | 
| 157 | 
            +
            - .gitignore
         | 
| 158 | 
            +
            - .rvmrc
         | 
| 159 | 
            +
            - Gemfile
         | 
| 160 | 
            +
            - README.md
         | 
| 161 | 
            +
            - Rakefile
         | 
| 162 | 
            +
            - lib/core_ext/array.rb
         | 
| 163 | 
            +
            - lib/soundcloud2.rb
         | 
| 164 | 
            +
            - lib/soundcloud2/comments.rb
         | 
| 165 | 
            +
            - lib/soundcloud2/groups.rb
         | 
| 166 | 
            +
            - lib/soundcloud2/playlists.rb
         | 
| 167 | 
            +
            - lib/soundcloud2/tracks.rb
         | 
| 168 | 
            +
            - lib/soundcloud2/users.rb
         | 
| 169 | 
            +
            - lib/soundcloud2/version.rb
         | 
| 170 | 
            +
            - soundcloud2.gemspec
         | 
| 171 | 
            +
            - spec/client/client_spec.rb
         | 
| 172 | 
            +
            - spec/client/comments_spec.rb
         | 
| 173 | 
            +
            - spec/client/groups_spec.rb
         | 
| 174 | 
            +
            - spec/client/playlists_spec.rb
         | 
| 175 | 
            +
            - spec/client/search_tracks.rb
         | 
| 176 | 
            +
            - spec/client/tracks_spec.rb
         | 
| 177 | 
            +
            - spec/client/users_spec.rb
         | 
| 178 | 
            +
            - spec/spec_helper.rb
         | 
| 179 | 
            +
            homepage: http://github.com/amanelis/soundcloud2
         | 
| 180 | 
            +
            licenses: []
         | 
| 181 | 
            +
             | 
| 182 | 
            +
            post_install_message: 
         | 
| 183 | 
            +
            rdoc_options: []
         | 
| 184 | 
            +
             | 
| 185 | 
            +
            require_paths: 
         | 
| 186 | 
            +
            - lib
         | 
| 187 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement 
         | 
| 188 | 
            +
              none: false
         | 
| 189 | 
            +
              requirements: 
         | 
| 190 | 
            +
              - - ">="
         | 
| 191 | 
            +
                - !ruby/object:Gem::Version 
         | 
| 192 | 
            +
                  version: "0"
         | 
| 193 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement 
         | 
| 194 | 
            +
              none: false
         | 
| 195 | 
            +
              requirements: 
         | 
| 196 | 
            +
              - - ">="
         | 
| 197 | 
            +
                - !ruby/object:Gem::Version 
         | 
| 198 | 
            +
                  version: "0"
         | 
| 199 | 
            +
            requirements: []
         | 
| 200 | 
            +
             | 
| 201 | 
            +
            rubyforge_project: soundcloud2
         | 
| 202 | 
            +
            rubygems_version: 1.8.7
         | 
| 203 | 
            +
            signing_key: 
         | 
| 204 | 
            +
            specification_version: 3
         | 
| 205 | 
            +
            summary: A wrapper for the Soundcloud v2 API
         | 
| 206 | 
            +
            test_files: 
         | 
| 207 | 
            +
            - spec/client/client_spec.rb
         | 
| 208 | 
            +
            - spec/client/comments_spec.rb
         | 
| 209 | 
            +
            - spec/client/groups_spec.rb
         | 
| 210 | 
            +
            - spec/client/playlists_spec.rb
         | 
| 211 | 
            +
            - spec/client/search_tracks.rb
         | 
| 212 | 
            +
            - spec/client/tracks_spec.rb
         | 
| 213 | 
            +
            - spec/client/users_spec.rb
         | 
| 214 | 
            +
            - spec/spec_helper.rb
         |