redd 0.6.2 → 0.6.3
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.
- checksums.yaml +4 -4
 - data/.gitignore +5 -10
 - data/.rspec +1 -1
 - data/README.md +2 -0
 - data/Rakefile +0 -4
 - data/lib/redd/client/unauthenticated.rb +2 -0
 - data/lib/redd/client/unauthenticated/captcha.rb +1 -1
 - data/lib/redd/client/unauthenticated/listing.rb +1 -2
 - data/lib/redd/client/unauthenticated/subreddits.rb +2 -3
 - data/lib/redd/client/unauthenticated/users.rb +66 -0
 - data/lib/redd/version.rb +1 -1
 - data/redd.gemspec +1 -3
 - data/spec/README.md +18 -0
 - data/spec/redd/base_spec.rb +36 -0
 - data/spec/redd/client/authenticated/account_spec.rb +5 -0
 - data/spec/redd/client/authenticated/apps_spec.rb +2 -0
 - data/spec/redd/client/authenticated/flair_spec.rb +26 -0
 - data/spec/redd/client/authenticated/gold_spec.rb +2 -0
 - data/spec/redd/client/authenticated/links_comments_spec.rb +231 -0
 - data/spec/redd/client/authenticated/live_spec.rb +2 -0
 - data/spec/redd/client/unauthenticated/account_spec.rb +15 -0
 - data/spec/redd/client/unauthenticated/captcha_spec.rb +23 -0
 - data/spec/redd/client/unauthenticated/links_comments_spec.rb +28 -0
 - data/spec/redd/client/unauthenticated/listing_spec.rb +23 -0
 - data/spec/redd/client/unauthenticated/live_spec.rb +2 -0
 - data/spec/redd/client/unauthenticated/moderation_spec.rb +14 -0
 - data/spec/redd/client/unauthenticated/subreddits_spec.rb +35 -0
 - data/spec/redd/client/unauthenticated/users_spec.rb +34 -0
 - data/spec/redd/client/unauthenticated/wiki_spec.rb +18 -0
 - data/spec/redd/oauth2_access_spec.rb +83 -0
 - data/spec/redd/thing_spec.rb +22 -0
 - data/spec/spec_helper.rb +16 -0
 - metadata +41 -32
 - data/spec/redd/client/unauthenticated_spec.rb +0 -15
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 0369bfc4c491d26f3330c1644d9f5724d9ad583a
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 3b3507c642e26bc6b7817965c1fcdfb1f4fde177
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 5bcc787430010a207c9375df1d7a3be3f9689e3bd116cadb7aa4123141776271b3db74ede823c484e502128cfc75fdd53a428dc7286c8815f73e579b40673844
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 117dbdf5f5e4fc0fa5d93055a3bde0136d7bbc6e29dcc2aa1d972bb9c496911671e03eb8eab1833137f18346b48c1d73cd07741dc4375ac20a8b3d00c86a8b03
         
     | 
    
        data/.gitignore
    CHANGED
    
    | 
         @@ -9,15 +9,6 @@ 
     | 
|
| 
       9 
9 
     | 
    
         
             
            /test/version_tmp/
         
     | 
| 
       10 
10 
     | 
    
         
             
            /tmp/
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
     | 
    
         
            -
            ## Working on Codio!
         
     | 
| 
       13 
     | 
    
         
            -
            # Seriously, it's free and it's awesome.
         
     | 
| 
       14 
     | 
    
         
            -
            .codio
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
            ## Specific to RubyMotion:
         
     | 
| 
       17 
     | 
    
         
            -
            .dat*
         
     | 
| 
       18 
     | 
    
         
            -
            .repl_history
         
     | 
| 
       19 
     | 
    
         
            -
            build/
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
12 
     | 
    
         
             
            ## Documentation cache and generated files:
         
     | 
| 
       22 
13 
     | 
    
         
             
            /.yardoc/
         
     | 
| 
       23 
14 
     | 
    
         
             
            /_yardoc/
         
     | 
| 
         @@ -35,4 +26,8 @@ Gemfile.lock 
     | 
|
| 
       35 
26 
     | 
    
         
             
            .ruby-gemset
         
     | 
| 
       36 
27 
     | 
    
         | 
| 
       37 
28 
     | 
    
         
             
            # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
         
     | 
| 
       38 
     | 
    
         
            -
            .rvmrc
         
     | 
| 
      
 29 
     | 
    
         
            +
            .rvmrc
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            # Ignore VCR cassettes. It helps for testing quickly, but we want to test
         
     | 
| 
      
 32 
     | 
    
         
            +
            # against the latest API.
         
     | 
| 
      
 33 
     | 
    
         
            +
            /spec/cassettes
         
     | 
    
        data/.rspec
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | 
         @@ -221,6 +221,8 @@ Extending any ruby library, including redd is incredibly easy. Let's try this ou 
     | 
|
| 
       221 
221 
     | 
    
         
             
            ## Contributing
         
     | 
| 
       222 
222 
     | 
    
         
             
            [Fork the repository](https://github.com/avidw/redd/fork), [create a pull request](https://github.com/avidw/redd/compare) and [go nuts](https://i.imgur.com/lz7hOlC.jpg).
         
     | 
| 
       223 
223 
     | 
    
         | 
| 
      
 224 
     | 
    
         
            +
             *You don't have to run the tests, Travis CI will automatically do that with my testing subreddit and account when you submit a pull request.*
         
     | 
| 
      
 225 
     | 
    
         
            +
             
     | 
| 
       224 
226 
     | 
    
         
             
            ## Supported Rubies
         
     | 
| 
       225 
227 
     | 
    
         
             
            This gem aims to work on the following rubies:
         
     | 
| 
       226 
228 
     | 
    
         | 
    
        data/Rakefile
    CHANGED
    
    
| 
         @@ -16,6 +16,7 @@ module Redd 
     | 
|
| 
       16 
16 
     | 
    
         
             
                  require "redd/client/unauthenticated/moderation"
         
     | 
| 
       17 
17 
     | 
    
         
             
                  require "redd/client/unauthenticated/subreddits"
         
     | 
| 
       18 
18 
     | 
    
         
             
                  require "redd/client/unauthenticated/utilities"
         
     | 
| 
      
 19 
     | 
    
         
            +
                  require "redd/client/unauthenticated/users"
         
     | 
| 
       19 
20 
     | 
    
         
             
                  require "redd/client/unauthenticated/wiki"
         
     | 
| 
       20 
21 
     | 
    
         | 
| 
       21 
22 
     | 
    
         
             
                  include Redd::Client::Unauthenticated::Account
         
     | 
| 
         @@ -26,6 +27,7 @@ module Redd 
     | 
|
| 
       26 
27 
     | 
    
         
             
                  include Redd::Client::Unauthenticated::Moderation
         
     | 
| 
       27 
28 
     | 
    
         
             
                  include Redd::Client::Unauthenticated::Subreddits
         
     | 
| 
       28 
29 
     | 
    
         
             
                  include Redd::Client::Unauthenticated::Utilities
         
     | 
| 
      
 30 
     | 
    
         
            +
                  include Redd::Client::Unauthenticated::Users
         
     | 
| 
       29 
31 
     | 
    
         
             
                  include Redd::Client::Unauthenticated::Wiki
         
     | 
| 
       30 
32 
     | 
    
         | 
| 
       31 
33 
     | 
    
         
             
                  # @!attribute [r] api_endpoint
         
     | 
| 
         @@ -12,7 +12,7 @@ module Redd 
     | 
|
| 
       12 
12 
     | 
    
         
             
                    # Create a new captcha identifier.
         
     | 
| 
       13 
13 
     | 
    
         
             
                    # @return [String] The identifier.
         
     | 
| 
       14 
14 
     | 
    
         
             
                    def new_captcha
         
     | 
| 
       15 
     | 
    
         
            -
                      response =  
     | 
| 
      
 15 
     | 
    
         
            +
                      response = post "/api/new_captcha", api_type: "json"
         
     | 
| 
       16 
16 
     | 
    
         
             
                      response[:json][:data][:iden]
         
     | 
| 
       17 
17 
     | 
    
         
             
                    end
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
         @@ -13,7 +13,6 @@ module Redd 
     | 
|
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
                    # @!method get_hot
         
     | 
| 
       15 
15 
     | 
    
         
             
                    # @!method get_new
         
     | 
| 
       16 
     | 
    
         
            -
                    # @!method get_random
         
     | 
| 
       17 
16 
     | 
    
         
             
                    # @!method get_top
         
     | 
| 
       18 
17 
     | 
    
         
             
                    # @!method get_controversial
         
     | 
| 
       19 
18 
     | 
    
         
             
                    # @!method get_comments
         
     | 
| 
         @@ -23,7 +22,7 @@ module Redd 
     | 
|
| 
       23 
22 
     | 
    
         
             
                    # @param params [Hash] A list of params to send with the request.
         
     | 
| 
       24 
23 
     | 
    
         
             
                    #
         
     | 
| 
       25 
24 
     | 
    
         
             
                    # @see #get_listing
         
     | 
| 
       26 
     | 
    
         
            -
                    %w(hot new  
     | 
| 
      
 25 
     | 
    
         
            +
                    %w(hot new top controversial comments).each do |sort|
         
     | 
| 
       27 
26 
     | 
    
         
             
                      define_method :"get_#{sort}" do |subreddit = nil, params = {}|
         
     | 
| 
       28 
27 
     | 
    
         
             
                        get_listing(sort, subreddit, params)
         
     | 
| 
       29 
28 
     | 
    
         
             
                      end
         
     | 
| 
         @@ -11,8 +11,7 @@ module Redd 
     | 
|
| 
       11 
11 
     | 
    
         
             
                    end
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
                    # Get a list of subreddits sorted by the given parameter.
         
     | 
| 
       14 
     | 
    
         
            -
                    # @param where [: 
     | 
| 
       15 
     | 
    
         
            -
                    #   The type of subreddits to look for.
         
     | 
| 
      
 14 
     | 
    
         
            +
                    # @param where [:popular, :new] The type of subreddits to look for.
         
     | 
| 
       16 
15 
     | 
    
         
             
                    # @param params [Hash] A hash of parameters to send with the request.
         
     | 
| 
       17 
16 
     | 
    
         
             
                    # @option params [String] :after Return results after the given
         
     | 
| 
       18 
17 
     | 
    
         
             
                    #   fullname.
         
     | 
| 
         @@ -41,7 +40,7 @@ module Redd 
     | 
|
| 
       41 
40 
     | 
    
         
             
                    #   return.
         
     | 
| 
       42 
41 
     | 
    
         
             
                    # @return [Redd::Object::Listing] A listing of subreddits.
         
     | 
| 
       43 
42 
     | 
    
         
             
                    def search_subreddits(query, params = {})
         
     | 
| 
       44 
     | 
    
         
            -
                      params  
     | 
| 
      
 43 
     | 
    
         
            +
                      params[:q] = query
         
     | 
| 
       45 
44 
     | 
    
         
             
                      object_from_response :get, "/subreddits/search.json", params
         
     | 
| 
       46 
45 
     | 
    
         
             
                    end
         
     | 
| 
       47 
46 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -0,0 +1,66 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Redd
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Client
         
     | 
| 
      
 3 
     | 
    
         
            +
                class Unauthenticated
         
     | 
| 
      
 4 
     | 
    
         
            +
                  # Methods to interact with other redditors
         
     | 
| 
      
 5 
     | 
    
         
            +
                  module Users
         
     | 
| 
      
 6 
     | 
    
         
            +
                    # Return a User object from the username of a redditor.
         
     | 
| 
      
 7 
     | 
    
         
            +
                    # @param username [String] The username.
         
     | 
| 
      
 8 
     | 
    
         
            +
                    # @return [Redd::Object::User]
         
     | 
| 
      
 9 
     | 
    
         
            +
                    def user(username)
         
     | 
| 
      
 10 
     | 
    
         
            +
                      object_from_response :get, "/user/#{username}/about.json"
         
     | 
| 
      
 11 
     | 
    
         
            +
                    end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                    # @!method get_user_overview
         
     | 
| 
      
 14 
     | 
    
         
            +
                    # @!method get_user_submitted
         
     | 
| 
      
 15 
     | 
    
         
            +
                    # @!method get_user_comments
         
     | 
| 
      
 16 
     | 
    
         
            +
                    # @!method get_user_liked
         
     | 
| 
      
 17 
     | 
    
         
            +
                    # @!method get_user_disliked
         
     | 
| 
      
 18 
     | 
    
         
            +
                    # @!method get_user_hidden
         
     | 
| 
      
 19 
     | 
    
         
            +
                    # @!method get_user_saved
         
     | 
| 
      
 20 
     | 
    
         
            +
                    # @!method get_user_gilded
         
     | 
| 
      
 21 
     | 
    
         
            +
                    #
         
     | 
| 
      
 22 
     | 
    
         
            +
                    # Get the appropriate listing.
         
     | 
| 
      
 23 
     | 
    
         
            +
                    # @param user [Redd::Object::User] The user to query.
         
     | 
| 
      
 24 
     | 
    
         
            +
                    # @param params [Hash] A list of params to send with the request.
         
     | 
| 
      
 25 
     | 
    
         
            +
                    #
         
     | 
| 
      
 26 
     | 
    
         
            +
                    # @see #get_user_listing
         
     | 
| 
      
 27 
     | 
    
         
            +
                    %w(
         
     | 
| 
      
 28 
     | 
    
         
            +
                      overview submitted comments liked disliked hidden saved gilded
         
     | 
| 
      
 29 
     | 
    
         
            +
                    ).each do |sort|
         
     | 
| 
      
 30 
     | 
    
         
            +
                      define_method :"get_user_#{sort}" do |user, params = {}|
         
     | 
| 
      
 31 
     | 
    
         
            +
                        get_user_listing(user, sort, params)
         
     | 
| 
      
 32 
     | 
    
         
            +
                      end
         
     | 
| 
      
 33 
     | 
    
         
            +
                    end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                    private
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                    # Get comments and submissions related to a user.
         
     | 
| 
      
 38 
     | 
    
         
            +
                    #
         
     | 
| 
      
 39 
     | 
    
         
            +
                    # @param user [Redd::Object::User, String] The user to query.
         
     | 
| 
      
 40 
     | 
    
         
            +
                    # @param type [:overview, :submitted, :comments, :liked, :disliked,
         
     | 
| 
      
 41 
     | 
    
         
            +
                    #   :hidden, :saved, :gilded] The type of listing to return.
         
     | 
| 
      
 42 
     | 
    
         
            +
                    # @param params [Hash] A list of params to send with the request.
         
     | 
| 
      
 43 
     | 
    
         
            +
                    # @option params [String] :after Return results after the given
         
     | 
| 
      
 44 
     | 
    
         
            +
                    #   fullname.
         
     | 
| 
      
 45 
     | 
    
         
            +
                    # @option params [String] :before Return results before the given
         
     | 
| 
      
 46 
     | 
    
         
            +
                    #   fullname.
         
     | 
| 
      
 47 
     | 
    
         
            +
                    # @option params [Integer] :count (0) The number of items already seen
         
     | 
| 
      
 48 
     | 
    
         
            +
                    #   in the listing.
         
     | 
| 
      
 49 
     | 
    
         
            +
                    # @option params [1..100] :limit (25) The maximum number of things to
         
     | 
| 
      
 50 
     | 
    
         
            +
                    #   return.
         
     | 
| 
      
 51 
     | 
    
         
            +
                    # @option params [:hot, :new, :top, :controversial] :sort The order to
         
     | 
| 
      
 52 
     | 
    
         
            +
                    #   sort the results by.
         
     | 
| 
      
 53 
     | 
    
         
            +
                    # @option params [:hour, :day, :week, :month, :year, :all] :t The
         
     | 
| 
      
 54 
     | 
    
         
            +
                    #   time period to consider when sorting.
         
     | 
| 
      
 55 
     | 
    
         
            +
                    # @return [Redd::Object::Listing] A listing of submissions or comments.
         
     | 
| 
      
 56 
     | 
    
         
            +
                    def get_user_listing(user, type, params = {})
         
     | 
| 
      
 57 
     | 
    
         
            +
                      name = extract_attribute(user, :name)
         
     | 
| 
      
 58 
     | 
    
         
            +
                      path = "/user/#{name}/#{type}.json"
         
     | 
| 
      
 59 
     | 
    
         
            +
                      params[:show] ||= :given
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
                      object_from_response :get, path, params
         
     | 
| 
      
 62 
     | 
    
         
            +
                    end
         
     | 
| 
      
 63 
     | 
    
         
            +
                  end
         
     | 
| 
      
 64 
     | 
    
         
            +
                end
         
     | 
| 
      
 65 
     | 
    
         
            +
              end
         
     | 
| 
      
 66 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/redd/version.rb
    CHANGED
    
    
    
        data/redd.gemspec
    CHANGED
    
    | 
         @@ -18,10 +18,8 @@ Gem::Specification.new do |s| 
     | 
|
| 
       18 
18 
     | 
    
         
             
              s.test_files    = s.files.grep(/^(test|spec|features)\//)
         
     | 
| 
       19 
19 
     | 
    
         
             
              s.require_paths = ["lib"]
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
       21 
     | 
    
         
            -
              s.add_development_dependency "bundler" 
     | 
| 
       22 
     | 
    
         
            -
              s.add_development_dependency "rubocop"
         
     | 
| 
      
 21 
     | 
    
         
            +
              s.add_development_dependency "bundler"
         
     | 
| 
       23 
22 
     | 
    
         
             
              s.add_development_dependency "rake"
         
     | 
| 
       24 
     | 
    
         
            -
              s.add_development_dependency "yard"
         
     | 
| 
       25 
23 
     | 
    
         
             
              s.add_development_dependency "rspec"
         
     | 
| 
       26 
24 
     | 
    
         
             
              s.add_development_dependency "vcr"
         
     | 
| 
       27 
25 
     | 
    
         
             
              s.add_development_dependency "webmock"
         
     | 
    
        data/spec/README.md
    ADDED
    
    | 
         @@ -0,0 +1,18 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ## Setting up the testing environment on reddit
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
                # Create a subreddit for testing.
         
     | 
| 
      
 4 
     | 
    
         
            +
                $ export REDDIT_SUBREDDIT=redd_testing
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
                # Create an account for testing. You can use your reddit account.
         
     | 
| 
      
 7 
     | 
    
         
            +
                $ export REDDIT_USERNAME=redd-testing
         
     | 
| 
      
 8 
     | 
    
         
            +
                $ export REDDIT_PASSWORD=????????
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                # Create an example post on the subreddit
         
     | 
| 
      
 11 
     | 
    
         
            +
                $ export REDDIT_LINKID=t3_2gngbm
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                # Create a page on the wiki with the following name
         
     | 
| 
      
 14 
     | 
    
         
            +
                # Remember to make the wiki set to "mod editing"
         
     | 
| 
      
 15 
     | 
    
         
            +
                $ export REDDIT_WIKIPAGE=redd_wiki_test
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                # Grab a sandwich or something. The tests are rate-limited.
         
     | 
| 
      
 18 
     | 
    
         
            +
                $ rspec
         
     | 
| 
         @@ -0,0 +1,36 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            describe Redd::Base do
         
     | 
| 
      
 2 
     | 
    
         
            +
              before do
         
     | 
| 
      
 3 
     | 
    
         
            +
                stub_const "ReddObject", Class.new(Redd::Base)
         
     | 
| 
      
 4 
     | 
    
         
            +
                ReddObject.attr_reader :string
         
     | 
| 
      
 5 
     | 
    
         
            +
                ReddObject.attr_reader :condition
         
     | 
| 
      
 6 
     | 
    
         
            +
                ReddObject.attr_reader :nonexistent
         
     | 
| 
      
 7 
     | 
    
         
            +
              end
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
              let(:base) do
         
     | 
| 
      
 10 
     | 
    
         
            +
                client = Redd::Client::Unauthenticated.new
         
     | 
| 
      
 11 
     | 
    
         
            +
                object = {
         
     | 
| 
      
 12 
     | 
    
         
            +
                  kind: "test_object",
         
     | 
| 
      
 13 
     | 
    
         
            +
                  data: {
         
     | 
| 
      
 14 
     | 
    
         
            +
                    string: "test", condition: true,
         
     | 
| 
      
 15 
     | 
    
         
            +
                    nonexistent: nil, undocumented: :accessible
         
     | 
| 
      
 16 
     | 
    
         
            +
                  }
         
     | 
| 
      
 17 
     | 
    
         
            +
                }
         
     | 
| 
      
 18 
     | 
    
         
            +
                ReddObject.new(client, object)
         
     | 
| 
      
 19 
     | 
    
         
            +
              end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
              it "defines an attribute method" do
         
     | 
| 
      
 22 
     | 
    
         
            +
                expect(base.string).to      eq("test")
         
     | 
| 
      
 23 
     | 
    
         
            +
                expect(base.condition).to   eq(true)
         
     | 
| 
      
 24 
     | 
    
         
            +
                expect(base.nonexistent).to eq(nil)
         
     | 
| 
      
 25 
     | 
    
         
            +
              end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
              it "defines a predicate method" do
         
     | 
| 
      
 28 
     | 
    
         
            +
                expect(base.string?).to      eq(true)
         
     | 
| 
      
 29 
     | 
    
         
            +
                expect(base.condition?).to   eq(true)
         
     | 
| 
      
 30 
     | 
    
         
            +
                expect(base.nonexistent?).to eq(false)
         
     | 
| 
      
 31 
     | 
    
         
            +
              end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
              it "returns undocumented attributes via #attributes" do
         
     | 
| 
      
 34 
     | 
    
         
            +
                expect(base.attributes[:undocumented]).to eq(:accessible)
         
     | 
| 
      
 35 
     | 
    
         
            +
              end
         
     | 
| 
      
 36 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,26 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            describe Redd::Client::Authenticated::Flair do
         
     | 
| 
      
 2 
     | 
    
         
            +
              describe "#get_flair_list" do
         
     | 
| 
      
 3 
     | 
    
         
            +
                it "returns an array"
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                context "when the limit is set to 5" do
         
     | 
| 
      
 6 
     | 
    
         
            +
                  it "only returns 5 results"
         
     | 
| 
      
 7 
     | 
    
         
            +
                end
         
     | 
| 
      
 8 
     | 
    
         
            +
              end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
              describe "#get_flair" do
         
     | 
| 
      
 11 
     | 
    
         
            +
                before do
         
     | 
| 
      
 12 
     | 
    
         
            +
                  # set a random flair
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                it "returns the correct flair of the user"
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                after do
         
     | 
| 
      
 18 
     | 
    
         
            +
                  # unset the flair? "if it's random each time, there's no point
         
     | 
| 
      
 19 
     | 
    
         
            +
                end
         
     | 
| 
      
 20 
     | 
    
         
            +
              end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
              describe "#set_flair" do
         
     | 
| 
      
 23 
     | 
    
         
            +
                it "sets the flair of a user correctly"
         
     | 
| 
      
 24 
     | 
    
         
            +
                it "sets the flair of a link correctly"
         
     | 
| 
      
 25 
     | 
    
         
            +
              end
         
     | 
| 
      
 26 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,231 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            describe Redd::Client::Authenticated::LinksComments do
         
     | 
| 
      
 2 
     | 
    
         
            +
              describe "#submit" do
         
     | 
| 
      
 3 
     | 
    
         
            +
                before do
         
     | 
| 
      
 4 
     | 
    
         
            +
                  # create the posts
         
     | 
| 
      
 5 
     | 
    
         
            +
                end
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                it "submits a text post correctly"
         
     | 
| 
      
 8 
     | 
    
         
            +
                it "submits a link post correctly"
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                after do
         
     | 
| 
      
 11 
     | 
    
         
            +
                  # delete the posts?
         
     | 
| 
      
 12 
     | 
    
         
            +
                end
         
     | 
| 
      
 13 
     | 
    
         
            +
              end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
              describe "#add_comment" do
         
     | 
| 
      
 16 
     | 
    
         
            +
                context "when commenting on a link" do
         
     | 
| 
      
 17 
     | 
    
         
            +
                  it "posts the comment correctly"
         
     | 
| 
      
 18 
     | 
    
         
            +
                end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                context "when replying to a comment" do
         
     | 
| 
      
 21 
     | 
    
         
            +
                  it "posts the reply correctly"
         
     | 
| 
      
 22 
     | 
    
         
            +
                end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                context "when replying to a message" do
         
     | 
| 
      
 25 
     | 
    
         
            +
                  it "replies to the message correctly"
         
     | 
| 
      
 26 
     | 
    
         
            +
                end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                after do
         
     | 
| 
      
 29 
     | 
    
         
            +
                  # delete the reply and the comment?
         
     | 
| 
      
 30 
     | 
    
         
            +
                  # we can't do anything for messages
         
     | 
| 
      
 31 
     | 
    
         
            +
                end
         
     | 
| 
      
 32 
     | 
    
         
            +
              end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
              describe "#delete" do
         
     | 
| 
      
 35 
     | 
    
         
            +
                context "when deleting a comment" do
         
     | 
| 
      
 36 
     | 
    
         
            +
                  before do
         
     | 
| 
      
 37 
     | 
    
         
            +
                    # create a comment
         
     | 
| 
      
 38 
     | 
    
         
            +
                  end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                  it "deletes a comment successfully"
         
     | 
| 
      
 41 
     | 
    
         
            +
                end
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                context "when deleting a link" do
         
     | 
| 
      
 44 
     | 
    
         
            +
                  before do
         
     | 
| 
      
 45 
     | 
    
         
            +
                    # create a link
         
     | 
| 
      
 46 
     | 
    
         
            +
                  end
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                  it "deletes a link successfully"
         
     | 
| 
      
 49 
     | 
    
         
            +
                end
         
     | 
| 
      
 50 
     | 
    
         
            +
              end
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
              describe "#edit" do
         
     | 
| 
      
 53 
     | 
    
         
            +
                context "when editing a comment" do
         
     | 
| 
      
 54 
     | 
    
         
            +
                  before do
         
     | 
| 
      
 55 
     | 
    
         
            +
                    # create a comment
         
     | 
| 
      
 56 
     | 
    
         
            +
                  end
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
                  it "edits a comment successfully"
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
                  after do
         
     | 
| 
      
 61 
     | 
    
         
            +
                    # delete the comment
         
     | 
| 
      
 62 
     | 
    
         
            +
                  end
         
     | 
| 
      
 63 
     | 
    
         
            +
                end
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
                context "when editing a link" do
         
     | 
| 
      
 66 
     | 
    
         
            +
                  before do
         
     | 
| 
      
 67 
     | 
    
         
            +
                    # create a link
         
     | 
| 
      
 68 
     | 
    
         
            +
                  end
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
                  it "edits a link successfully"
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
                  after do
         
     | 
| 
      
 73 
     | 
    
         
            +
                    # delete the link
         
     | 
| 
      
 74 
     | 
    
         
            +
                  end
         
     | 
| 
      
 75 
     | 
    
         
            +
                end
         
     | 
| 
      
 76 
     | 
    
         
            +
              end
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
              describe "#hide" do
         
     | 
| 
      
 79 
     | 
    
         
            +
                before do
         
     | 
| 
      
 80 
     | 
    
         
            +
                  # create a link
         
     | 
| 
      
 81 
     | 
    
         
            +
                end
         
     | 
| 
      
 82 
     | 
    
         
            +
             
     | 
| 
      
 83 
     | 
    
         
            +
                it "hides a link successfully"
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
      
 85 
     | 
    
         
            +
                after do
         
     | 
| 
      
 86 
     | 
    
         
            +
                  # delete the link
         
     | 
| 
      
 87 
     | 
    
         
            +
                end
         
     | 
| 
      
 88 
     | 
    
         
            +
              end
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
              describe "#unhide" do
         
     | 
| 
      
 91 
     | 
    
         
            +
                before do
         
     | 
| 
      
 92 
     | 
    
         
            +
                  # create a link
         
     | 
| 
      
 93 
     | 
    
         
            +
                end
         
     | 
| 
      
 94 
     | 
    
         
            +
             
     | 
| 
      
 95 
     | 
    
         
            +
                it "unhides a link successfully"
         
     | 
| 
      
 96 
     | 
    
         
            +
             
     | 
| 
      
 97 
     | 
    
         
            +
                after do
         
     | 
| 
      
 98 
     | 
    
         
            +
                  # delete the link
         
     | 
| 
      
 99 
     | 
    
         
            +
                end
         
     | 
| 
      
 100 
     | 
    
         
            +
              end
         
     | 
| 
      
 101 
     | 
    
         
            +
             
     | 
| 
      
 102 
     | 
    
         
            +
              describe "#mark_as_nsfw" do
         
     | 
| 
      
 103 
     | 
    
         
            +
                before do
         
     | 
| 
      
 104 
     | 
    
         
            +
                  # create a link
         
     | 
| 
      
 105 
     | 
    
         
            +
                end
         
     | 
| 
      
 106 
     | 
    
         
            +
             
     | 
| 
      
 107 
     | 
    
         
            +
                it "marks a link as NSFW successfully"
         
     | 
| 
      
 108 
     | 
    
         
            +
             
     | 
| 
      
 109 
     | 
    
         
            +
                after do
         
     | 
| 
      
 110 
     | 
    
         
            +
                  # delete the link
         
     | 
| 
      
 111 
     | 
    
         
            +
                end
         
     | 
| 
      
 112 
     | 
    
         
            +
              end
         
     | 
| 
      
 113 
     | 
    
         
            +
             
     | 
| 
      
 114 
     | 
    
         
            +
              describe "#unmark_as_nsfw" do
         
     | 
| 
      
 115 
     | 
    
         
            +
                before do
         
     | 
| 
      
 116 
     | 
    
         
            +
                  # create a link
         
     | 
| 
      
 117 
     | 
    
         
            +
                end
         
     | 
| 
      
 118 
     | 
    
         
            +
             
     | 
| 
      
 119 
     | 
    
         
            +
                it "removes the NSFW mark from a link successfully"
         
     | 
| 
      
 120 
     | 
    
         
            +
             
     | 
| 
      
 121 
     | 
    
         
            +
                after do
         
     | 
| 
      
 122 
     | 
    
         
            +
                  # delete the link
         
     | 
| 
      
 123 
     | 
    
         
            +
                end
         
     | 
| 
      
 124 
     | 
    
         
            +
              end
         
     | 
| 
      
 125 
     | 
    
         
            +
             
     | 
| 
      
 126 
     | 
    
         
            +
              # Nobody's going to give my testing suite gold, are they?
         
     | 
| 
      
 127 
     | 
    
         
            +
              describe "#save" do
         
     | 
| 
      
 128 
     | 
    
         
            +
                before do
         
     | 
| 
      
 129 
     | 
    
         
            +
                  # create a link
         
     | 
| 
      
 130 
     | 
    
         
            +
                end
         
     | 
| 
      
 131 
     | 
    
         
            +
             
     | 
| 
      
 132 
     | 
    
         
            +
                it "saves the link successfully"
         
     | 
| 
      
 133 
     | 
    
         
            +
             
     | 
| 
      
 134 
     | 
    
         
            +
                after do
         
     | 
| 
      
 135 
     | 
    
         
            +
                  # delete the link
         
     | 
| 
      
 136 
     | 
    
         
            +
                end
         
     | 
| 
      
 137 
     | 
    
         
            +
              end
         
     | 
| 
      
 138 
     | 
    
         
            +
             
     | 
| 
      
 139 
     | 
    
         
            +
              describe "#unsave" do
         
     | 
| 
      
 140 
     | 
    
         
            +
                before do
         
     | 
| 
      
 141 
     | 
    
         
            +
                  # create a link
         
     | 
| 
      
 142 
     | 
    
         
            +
                end
         
     | 
| 
      
 143 
     | 
    
         
            +
             
     | 
| 
      
 144 
     | 
    
         
            +
                it "unsaves the link successfully"
         
     | 
| 
      
 145 
     | 
    
         
            +
             
     | 
| 
      
 146 
     | 
    
         
            +
                after do
         
     | 
| 
      
 147 
     | 
    
         
            +
                  # delete the link
         
     | 
| 
      
 148 
     | 
    
         
            +
                end
         
     | 
| 
      
 149 
     | 
    
         
            +
              end
         
     | 
| 
      
 150 
     | 
    
         
            +
             
     | 
| 
      
 151 
     | 
    
         
            +
              describe "#upvote" do
         
     | 
| 
      
 152 
     | 
    
         
            +
                context "when upvoting a comment" do
         
     | 
| 
      
 153 
     | 
    
         
            +
                  before do
         
     | 
| 
      
 154 
     | 
    
         
            +
                    # create a comment
         
     | 
| 
      
 155 
     | 
    
         
            +
                  end
         
     | 
| 
      
 156 
     | 
    
         
            +
             
     | 
| 
      
 157 
     | 
    
         
            +
                  # We can't always count on the score increasing
         
     | 
| 
      
 158 
     | 
    
         
            +
                  it "adds the comment to the user's liked list"
         
     | 
| 
      
 159 
     | 
    
         
            +
             
     | 
| 
      
 160 
     | 
    
         
            +
                  after do
         
     | 
| 
      
 161 
     | 
    
         
            +
                    # delete the comment
         
     | 
| 
      
 162 
     | 
    
         
            +
                  end
         
     | 
| 
      
 163 
     | 
    
         
            +
                end
         
     | 
| 
      
 164 
     | 
    
         
            +
             
     | 
| 
      
 165 
     | 
    
         
            +
                context "when upvoting a link" do
         
     | 
| 
      
 166 
     | 
    
         
            +
                  before do
         
     | 
| 
      
 167 
     | 
    
         
            +
                    # create a link
         
     | 
| 
      
 168 
     | 
    
         
            +
                  end
         
     | 
| 
      
 169 
     | 
    
         
            +
             
     | 
| 
      
 170 
     | 
    
         
            +
                  it "adds the link to the user's liked list"
         
     | 
| 
      
 171 
     | 
    
         
            +
             
     | 
| 
      
 172 
     | 
    
         
            +
                  after do
         
     | 
| 
      
 173 
     | 
    
         
            +
                    # delete the link
         
     | 
| 
      
 174 
     | 
    
         
            +
                  end
         
     | 
| 
      
 175 
     | 
    
         
            +
                end
         
     | 
| 
      
 176 
     | 
    
         
            +
              end
         
     | 
| 
      
 177 
     | 
    
         
            +
             
     | 
| 
      
 178 
     | 
    
         
            +
              describe "#downvote" do
         
     | 
| 
      
 179 
     | 
    
         
            +
                context "when downvoting a comment" do
         
     | 
| 
      
 180 
     | 
    
         
            +
                  before do
         
     | 
| 
      
 181 
     | 
    
         
            +
                    # create a comment
         
     | 
| 
      
 182 
     | 
    
         
            +
                  end
         
     | 
| 
      
 183 
     | 
    
         
            +
             
     | 
| 
      
 184 
     | 
    
         
            +
                  # We can't always count on the score increasing
         
     | 
| 
      
 185 
     | 
    
         
            +
                  it "adds the comment to the user's disliked list"
         
     | 
| 
      
 186 
     | 
    
         
            +
             
     | 
| 
      
 187 
     | 
    
         
            +
                  after do
         
     | 
| 
      
 188 
     | 
    
         
            +
                    # delete the comment
         
     | 
| 
      
 189 
     | 
    
         
            +
                  end
         
     | 
| 
      
 190 
     | 
    
         
            +
                end
         
     | 
| 
      
 191 
     | 
    
         
            +
             
     | 
| 
      
 192 
     | 
    
         
            +
                context "when downvoting a link" do
         
     | 
| 
      
 193 
     | 
    
         
            +
                  before do
         
     | 
| 
      
 194 
     | 
    
         
            +
                    # create a link
         
     | 
| 
      
 195 
     | 
    
         
            +
                  end
         
     | 
| 
      
 196 
     | 
    
         
            +
             
     | 
| 
      
 197 
     | 
    
         
            +
                  it "adds the link to the user's disliked list"
         
     | 
| 
      
 198 
     | 
    
         
            +
             
     | 
| 
      
 199 
     | 
    
         
            +
                  after do
         
     | 
| 
      
 200 
     | 
    
         
            +
                    # delete the link
         
     | 
| 
      
 201 
     | 
    
         
            +
                  end
         
     | 
| 
      
 202 
     | 
    
         
            +
                end
         
     | 
| 
      
 203 
     | 
    
         
            +
              end
         
     | 
| 
      
 204 
     | 
    
         
            +
             
     | 
| 
      
 205 
     | 
    
         
            +
              describe "#unvote" do
         
     | 
| 
      
 206 
     | 
    
         
            +
                context "when unvoting a comment" do
         
     | 
| 
      
 207 
     | 
    
         
            +
                  before do
         
     | 
| 
      
 208 
     | 
    
         
            +
                    # create a comment and like it
         
     | 
| 
      
 209 
     | 
    
         
            +
                  end
         
     | 
| 
      
 210 
     | 
    
         
            +
             
     | 
| 
      
 211 
     | 
    
         
            +
                  # We can't always count on the score increasing
         
     | 
| 
      
 212 
     | 
    
         
            +
                  it "removes the comment from the user's liked list"
         
     | 
| 
      
 213 
     | 
    
         
            +
             
     | 
| 
      
 214 
     | 
    
         
            +
                  after do
         
     | 
| 
      
 215 
     | 
    
         
            +
                    # delete the comment
         
     | 
| 
      
 216 
     | 
    
         
            +
                  end
         
     | 
| 
      
 217 
     | 
    
         
            +
                end
         
     | 
| 
      
 218 
     | 
    
         
            +
             
     | 
| 
      
 219 
     | 
    
         
            +
                context "when unvoting a link" do
         
     | 
| 
      
 220 
     | 
    
         
            +
                  before do
         
     | 
| 
      
 221 
     | 
    
         
            +
                    # create a link
         
     | 
| 
      
 222 
     | 
    
         
            +
                  end
         
     | 
| 
      
 223 
     | 
    
         
            +
             
     | 
| 
      
 224 
     | 
    
         
            +
                  it "removes the link from the user's liked list"
         
     | 
| 
      
 225 
     | 
    
         
            +
             
     | 
| 
      
 226 
     | 
    
         
            +
                  after do
         
     | 
| 
      
 227 
     | 
    
         
            +
                    # delete the link
         
     | 
| 
      
 228 
     | 
    
         
            +
                  end
         
     | 
| 
      
 229 
     | 
    
         
            +
                end
         
     | 
| 
      
 230 
     | 
    
         
            +
              end
         
     | 
| 
      
 231 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,15 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            describe Redd::Client::Unauthenticated::Account do
         
     | 
| 
      
 2 
     | 
    
         
            +
              describe "#login" do
         
     | 
| 
      
 3 
     | 
    
         
            +
                let(:logged_in_client) do
         
     | 
| 
      
 4 
     | 
    
         
            +
                  unauthenticated_client.login(test_username, test_password)
         
     | 
| 
      
 5 
     | 
    
         
            +
                end
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                it "returns an Authenticated client" do
         
     | 
| 
      
 8 
     | 
    
         
            +
                  expect(logged_in_client).to be_a(Redd::Client::Authenticated)
         
     | 
| 
      
 9 
     | 
    
         
            +
                end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                it "can be used to make requests" do
         
     | 
| 
      
 12 
     | 
    
         
            +
                  expect(logged_in_client.me[:name]).to match(/#{test_username}/i)
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
              end
         
     | 
| 
      
 15 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,23 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require "uri" 
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Redd::Client::Unauthenticated::Captcha do
         
     | 
| 
      
 4 
     | 
    
         
            +
              describe "#needs_captcha?" do
         
     | 
| 
      
 5 
     | 
    
         
            +
                it "returns a boolean" do
         
     | 
| 
      
 6 
     | 
    
         
            +
                  expect(unauthenticated_client.needs_captcha?).to be(true).or be(false)
         
     | 
| 
      
 7 
     | 
    
         
            +
                end
         
     | 
| 
      
 8 
     | 
    
         
            +
              end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
              describe "#new_captcha" do
         
     | 
| 
      
 11 
     | 
    
         
            +
                it "returns a string" do
         
     | 
| 
      
 12 
     | 
    
         
            +
                  expect(unauthenticated_client.new_captcha).to be_a(String)
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
              end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
              describe "#captcha_url" do
         
     | 
| 
      
 17 
     | 
    
         
            +
                it "returns a valid url" do
         
     | 
| 
      
 18 
     | 
    
         
            +
                  new_captcha = unauthenticated_client.new_captcha
         
     | 
| 
      
 19 
     | 
    
         
            +
                  captcha_url = unauthenticated_client.captcha_url(new_captcha)
         
     | 
| 
      
 20 
     | 
    
         
            +
                  expect(captcha_url).to match(URI::ABS_URI)
         
     | 
| 
      
 21 
     | 
    
         
            +
                end
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,28 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            describe Redd::Client::Unauthenticated::LinksComments do
         
     | 
| 
      
 2 
     | 
    
         
            +
              describe "#get_info" do
         
     | 
| 
      
 3 
     | 
    
         
            +
                let(:response) { unauthenticated_client.get_info(id: test_link_id) }
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                it "returns a listing" do
         
     | 
| 
      
 6 
     | 
    
         
            +
                  expect(response).to be_a(Redd::Object::Listing)
         
     | 
| 
      
 7 
     | 
    
         
            +
                end
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                it "returns the correct objects" do
         
     | 
| 
      
 10 
     | 
    
         
            +
                  link = response.things.first
         
     | 
| 
      
 11 
     | 
    
         
            +
                  expect(link).to be_a(Redd::Object::Submission)
         
     | 
| 
      
 12 
     | 
    
         
            +
                  expect(link.fullname).to eq(test_link_id)
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
              end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
              describe "#submission_comments" do
         
     | 
| 
      
 17 
     | 
    
         
            +
                it "returns a listing of comments and morecomments only"
         
     | 
| 
      
 18 
     | 
    
         
            +
              end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
              describe "#get_replies" do
         
     | 
| 
      
 21 
     | 
    
         
            +
                it "returns a listing of comments and morecomments only"
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
              describe "expand_morecomments" do
         
     | 
| 
      
 25 
     | 
    
         
            +
                it "returns a listing of comments only"
         
     | 
| 
      
 26 
     | 
    
         
            +
                it "returns the same number of comments as it indicated" 
         
     | 
| 
      
 27 
     | 
    
         
            +
              end
         
     | 
| 
      
 28 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,23 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            describe Redd::Client::Unauthenticated::Listing do
         
     | 
| 
      
 2 
     | 
    
         
            +
              describe "#by_id" do
         
     | 
| 
      
 3 
     | 
    
         
            +
                let(:response) { unauthenticated_client.by_id(test_link_id) }
         
     | 
| 
      
 4 
     | 
    
         
            +
                
         
     | 
| 
      
 5 
     | 
    
         
            +
                it "returns a listing" do
         
     | 
| 
      
 6 
     | 
    
         
            +
                  expect(response).to be_a(Redd::Object::Listing)
         
     | 
| 
      
 7 
     | 
    
         
            +
                end
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                it "returns the correct object" do
         
     | 
| 
      
 10 
     | 
    
         
            +
                  link = response.things.first
         
     | 
| 
      
 11 
     | 
    
         
            +
                  expect(link).to be_a(Redd::Object::Submission)
         
     | 
| 
      
 12 
     | 
    
         
            +
                  expect(link.fullname).to eq(test_link_id)
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
              end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
              describe "#get_hot, #get_new, #get_op, #get_controversial" do
         
     | 
| 
      
 17 
     | 
    
         
            +
                it "returns a listing of submissions only"
         
     | 
| 
      
 18 
     | 
    
         
            +
              end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
              describe "#get_comments" do
         
     | 
| 
      
 21 
     | 
    
         
            +
                it "returns a listing of comments only"
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,14 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require "uri"
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Redd::Client::Unauthenticated::Moderation do
         
     | 
| 
      
 4 
     | 
    
         
            +
              describe "#stylesheet_url" do
         
     | 
| 
      
 5 
     | 
    
         
            +
                it "returns a valid url" do
         
     | 
| 
      
 6 
     | 
    
         
            +
                  url = unauthenticated_client.stylesheet_url(test_subreddit)
         
     | 
| 
      
 7 
     | 
    
         
            +
                  expect(url).to match(URI::ABS_URI)
         
     | 
| 
      
 8 
     | 
    
         
            +
                end
         
     | 
| 
      
 9 
     | 
    
         
            +
              end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
              describe "#stylesheet" do
         
     | 
| 
      
 12 
     | 
    
         
            +
                it "returns valid CSS" # Yeah, nope.
         
     | 
| 
      
 13 
     | 
    
         
            +
              end
         
     | 
| 
      
 14 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,35 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            describe Redd::Client::Unauthenticated::Subreddits do
         
     | 
| 
      
 2 
     | 
    
         
            +
              describe "#subreddit" do
         
     | 
| 
      
 3 
     | 
    
         
            +
                let(:subreddit) { unauthenticated_client.subreddit(test_subreddit) }
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                it "returns a subreddit object" do
         
     | 
| 
      
 6 
     | 
    
         
            +
                  expect(subreddit).to be_a(Redd::Object::Subreddit)
         
     | 
| 
      
 7 
     | 
    
         
            +
                end
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                it "returns the correct subreddit" do
         
     | 
| 
      
 10 
     | 
    
         
            +
                  expect(subreddit.display_name).to eq(test_subreddit)
         
     | 
| 
      
 11 
     | 
    
         
            +
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
              end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
              describe "#get_subreddits" do
         
     | 
| 
      
 15 
     | 
    
         
            +
                let(:subreddits) { unauthenticated_client.get_subreddits }
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                it "returns a listing" do
         
     | 
| 
      
 18 
     | 
    
         
            +
                  expect(subreddits).to be_a(Redd::Object::Listing)
         
     | 
| 
      
 19 
     | 
    
         
            +
                end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                it "returns a listing of subreddits"
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
              describe "#search_subreddits" do
         
     | 
| 
      
 25 
     | 
    
         
            +
                let(:search) { unauthenticated_client.search_subreddits(test_subreddit) }
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                it "returns a listing" do
         
     | 
| 
      
 28 
     | 
    
         
            +
                  expect(search).to be_a(Redd::Object::Listing)
         
     | 
| 
      
 29 
     | 
    
         
            +
                end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                it "returns a listing of subreddits"
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                it "includes the subreddit searched for"
         
     | 
| 
      
 34 
     | 
    
         
            +
              end
         
     | 
| 
      
 35 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,34 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            describe Redd::Client::Unauthenticated::Users do
         
     | 
| 
      
 2 
     | 
    
         
            +
              describe "#user" do
         
     | 
| 
      
 3 
     | 
    
         
            +
                let(:user) { unauthenticated_client.user(test_username) }
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                it "returns a user" do
         
     | 
| 
      
 6 
     | 
    
         
            +
                  expect(user).to be_a(Redd::Object::User)
         
     | 
| 
      
 7 
     | 
    
         
            +
                end
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                it "returns the user requested" do
         
     | 
| 
      
 10 
     | 
    
         
            +
                  expect(user.name).to match(/#{test_username}/i)
         
     | 
| 
      
 11 
     | 
    
         
            +
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
              end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
              describe "#get_user_overview" do
         
     | 
| 
      
 15 
     | 
    
         
            +
                it "returns a listing"
         
     | 
| 
      
 16 
     | 
    
         
            +
                it "contains content only created by the user"
         
     | 
| 
      
 17 
     | 
    
         
            +
              end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
              describe "#get_user_submitted" do
         
     | 
| 
      
 20 
     | 
    
         
            +
                it "returns a listing"
         
     | 
| 
      
 21 
     | 
    
         
            +
                it "contains only submissions"
         
     | 
| 
      
 22 
     | 
    
         
            +
                it "contains submissions only created by the user"
         
     | 
| 
      
 23 
     | 
    
         
            +
              end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
              describe "#get_user_comments" do
         
     | 
| 
      
 26 
     | 
    
         
            +
                it "returns a listing"
         
     | 
| 
      
 27 
     | 
    
         
            +
                it "contains only comments"
         
     | 
| 
      
 28 
     | 
    
         
            +
                it "contains comments only created by the user"
         
     | 
| 
      
 29 
     | 
    
         
            +
              end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
              describe "#get_user_liked, #get_user_disliked, #get_user_hidden, #get_user_saved, #get_user_gilded" do
         
     | 
| 
      
 32 
     | 
    
         
            +
                it "returns a listing"
         
     | 
| 
      
 33 
     | 
    
         
            +
              end
         
     | 
| 
      
 34 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,18 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            describe Redd::Client::Unauthenticated::Wiki do
         
     | 
| 
      
 2 
     | 
    
         
            +
              describe "#get_wikipages" do
         
     | 
| 
      
 3 
     | 
    
         
            +
                let(:pages) { unauthenticated_client.get_wikipages(test_subreddit) }
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                it "returns an array of pages in the wiki" do
         
     | 
| 
      
 6 
     | 
    
         
            +
                  expect(pages).to be_an(Array)
         
     | 
| 
      
 7 
     | 
    
         
            +
                  expect(pages).to include(test_wikipage)
         
     | 
| 
      
 8 
     | 
    
         
            +
                end
         
     | 
| 
      
 9 
     | 
    
         
            +
              end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
              describe "#wikipage" do
         
     | 
| 
      
 12 
     | 
    
         
            +
                let(:page) { unauthenticated_client.wikipage(test_wikipage, test_subreddit) }
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                it "returns a wikipage" do
         
     | 
| 
      
 15 
     | 
    
         
            +
                  expect(page).to be_a(Redd::Object::WikiPage)
         
     | 
| 
      
 16 
     | 
    
         
            +
                end
         
     | 
| 
      
 17 
     | 
    
         
            +
              end
         
     | 
| 
      
 18 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,83 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require "json"
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Redd::OAuth2Access do
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
              # TODO: Use the password grant with a future OAuth2Stript Client for more
         
     | 
| 
      
 6 
     | 
    
         
            +
              # for more accurate responses.
         
     | 
| 
      
 7 
     | 
    
         
            +
              let(:access) do
         
     | 
| 
      
 8 
     | 
    
         
            +
                Redd::OAuth2Access.new(
         
     | 
| 
      
 9 
     | 
    
         
            +
                  access_token: "TEST_ACCESS_TOKEN",
         
     | 
| 
      
 10 
     | 
    
         
            +
                  refresh_token: "TEST_REFRESH_TOKEN",
         
     | 
| 
      
 11 
     | 
    
         
            +
                  scope: "identity,TEST_SCOPE",
         
     | 
| 
      
 12 
     | 
    
         
            +
                  expires_in: 3600
         
     | 
| 
      
 13 
     | 
    
         
            +
                )
         
     | 
| 
      
 14 
     | 
    
         
            +
              end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
              it "has an accessible access token" do
         
     | 
| 
      
 17 
     | 
    
         
            +
                expect(access.access_token).to be_a(String)
         
     | 
| 
      
 18 
     | 
    
         
            +
              end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
              it "has an accessible duration" do
         
     | 
| 
      
 21 
     | 
    
         
            +
                expect(access.duration).to eq(:temporary).or eq(:permanent)
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
              it "has an array of scopes" do
         
     | 
| 
      
 25 
     | 
    
         
            +
                expect(access.scope).to be_an(Array)
         
     | 
| 
      
 26 
     | 
    
         
            +
              end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
              it "shows the correct time of expiry" do
         
     | 
| 
      
 29 
     | 
    
         
            +
                expect(access.expires_at).to be_within(60).of(Time.now + 3600)
         
     | 
| 
      
 30 
     | 
    
         
            +
              end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
              describe "#refresh" do
         
     | 
| 
      
 33 
     | 
    
         
            +
                let(:refreshed_access) { access.dup }
         
     | 
| 
      
 34 
     | 
    
         
            +
                let(:new_access_token) { "NEW_ACCESS_TOKEN" }
         
     | 
| 
      
 35 
     | 
    
         
            +
                let(:new_expires_in) { 1600 }
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                before do
         
     | 
| 
      
 38 
     | 
    
         
            +
                  response = {access_token: new_access_token, expires_in: new_expires_in}
         
     | 
| 
      
 39 
     | 
    
         
            +
                  refreshed_access.refresh(response)
         
     | 
| 
      
 40 
     | 
    
         
            +
                end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                it "sets the new access token" do
         
     | 
| 
      
 43 
     | 
    
         
            +
                  expect(refreshed_access.access_token).to eq(new_access_token)
         
     | 
| 
      
 44 
     | 
    
         
            +
                end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                it "sets the new expiry time" do
         
     | 
| 
      
 47 
     | 
    
         
            +
                  expect(refreshed_access.expires_at).to be_within(60).of(Time.now + new_expires_in)
         
     | 
| 
      
 48 
     | 
    
         
            +
                end
         
     | 
| 
      
 49 
     | 
    
         
            +
              end
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
              describe "#expired?" do
         
     | 
| 
      
 52 
     | 
    
         
            +
                context "when the access token isn't expired" do
         
     | 
| 
      
 53 
     | 
    
         
            +
                  it "returns false"
         
     | 
| 
      
 54 
     | 
    
         
            +
                end
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
                context "when the access token is expired" do
         
     | 
| 
      
 57 
     | 
    
         
            +
                  it "returns true"
         
     | 
| 
      
 58 
     | 
    
         
            +
                end
         
     | 
| 
      
 59 
     | 
    
         
            +
              end
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
              describe "#to_json" do
         
     | 
| 
      
 62 
     | 
    
         
            +
                let(:json_str) { access.to_json }
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
                it "transcribes to valid json" do
         
     | 
| 
      
 65 
     | 
    
         
            +
                  expect(JSON.parse(json_str)).to be_a(Hash)
         
     | 
| 
      
 66 
     | 
    
         
            +
                end
         
     | 
| 
      
 67 
     | 
    
         
            +
              end
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
              describe "#from_json" do
         
     | 
| 
      
 70 
     | 
    
         
            +
                let(:object) do
         
     | 
| 
      
 71 
     | 
    
         
            +
                  json = access.to_json
         
     | 
| 
      
 72 
     | 
    
         
            +
                  Redd::OAuth2Access.from_json(json)
         
     | 
| 
      
 73 
     | 
    
         
            +
                end
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
                it "creates a proper object from a JSON string" do
         
     | 
| 
      
 76 
     | 
    
         
            +
                  expect(object.access_token).to  eq(access.access_token)
         
     | 
| 
      
 77 
     | 
    
         
            +
                  expect(object.refresh_token).to eq(access.refresh_token)
         
     | 
| 
      
 78 
     | 
    
         
            +
                  expect(object.scope).to         eq(access.scope)
         
     | 
| 
      
 79 
     | 
    
         
            +
                  expect(object.duration).to      eq(access.duration)
         
     | 
| 
      
 80 
     | 
    
         
            +
                  expect(object.expires_at).to    be_within(60).of(access.expires_at)
         
     | 
| 
      
 81 
     | 
    
         
            +
                end
         
     | 
| 
      
 82 
     | 
    
         
            +
              end
         
     | 
| 
      
 83 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,22 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            describe Redd::Thing do
         
     | 
| 
      
 2 
     | 
    
         
            +
              before do
         
     | 
| 
      
 3 
     | 
    
         
            +
                stub_const "ReddThing", Class.new(Redd::Thing)
         
     | 
| 
      
 4 
     | 
    
         
            +
                ReddThing.attr_reader :string
         
     | 
| 
      
 5 
     | 
    
         
            +
                ReddThing.attr_reader :condition
         
     | 
| 
      
 6 
     | 
    
         
            +
                ReddThing.attr_reader :nonexistent
         
     | 
| 
      
 7 
     | 
    
         
            +
              end
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
              let(:thing) do
         
     | 
| 
      
 10 
     | 
    
         
            +
                client = Redd::Client::Unauthenticated.new
         
     | 
| 
      
 11 
     | 
    
         
            +
                object = {kind: "tx", data: {id: "abc123"}}
         
     | 
| 
      
 12 
     | 
    
         
            +
                ReddThing.new(client, object)
         
     | 
| 
      
 13 
     | 
    
         
            +
              end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
              it "has a kind" do
         
     | 
| 
      
 16 
     | 
    
         
            +
                expect(thing.kind).to be_a(String)
         
     | 
| 
      
 17 
     | 
    
         
            +
              end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
              it "has an id" do
         
     | 
| 
      
 20 
     | 
    
         
            +
                expect(thing.id).to be_a(String)
         
     | 
| 
      
 21 
     | 
    
         
            +
              end
         
     | 
| 
      
 22 
     | 
    
         
            +
            end
         
     | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | 
         @@ -4,10 +4,26 @@ require "vcr" 
     | 
|
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
            require "redd"
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
      
 7 
     | 
    
         
            +
            def test_username; ENV["REDDIT_USERNAME"]; end
         
     | 
| 
      
 8 
     | 
    
         
            +
            def test_password; ENV["REDDIT_PASSWORD"]; end
         
     | 
| 
      
 9 
     | 
    
         
            +
            def test_subreddit; ENV["REDDIT_SUBREDDIT"]; end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            def test_link_id; ENV["REDDIT_LINKID"] || "t3_2gngbm"; end
         
     | 
| 
      
 12 
     | 
    
         
            +
            def test_wikipage; ENV["REDDIT_WIKIPAGE"] || "redd_wiki_test"; end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            def unauthenticated_client
         
     | 
| 
      
 15 
     | 
    
         
            +
              $unauthenticated_client ||= Redd::Client::Unauthenticated.new
         
     | 
| 
      
 16 
     | 
    
         
            +
            end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            def authenticated_client
         
     | 
| 
      
 19 
     | 
    
         
            +
              $authenticated_client ||= Redd::Client::Authenticated.new_from_credentials(test_username, test_password)
         
     | 
| 
      
 20 
     | 
    
         
            +
            end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
       7 
22 
     | 
    
         
             
            VCR.configure do |config|
         
     | 
| 
       8 
23 
     | 
    
         
             
              config.cassette_library_dir = "spec/cassettes"
         
     | 
| 
       9 
24 
     | 
    
         
             
              config.default_cassette_options = {record: :new_episodes}
         
     | 
| 
       10 
25 
     | 
    
         
             
              config.hook_into :webmock
         
     | 
| 
      
 26 
     | 
    
         
            +
              config.filter_sensitive_data("<PASSWORD>") { test_password }
         
     | 
| 
       11 
27 
     | 
    
         
             
            end
         
     | 
| 
       12 
28 
     | 
    
         | 
| 
       13 
29 
     | 
    
         
             
            RSpec.configure do |config|
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,31 +1,17 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: redd
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.6. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.6.3
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Avinash Dwarapu
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2014-09- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2014-09-17 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: bundler
         
     | 
| 
       15 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       16 
     | 
    
         
            -
                requirements:
         
     | 
| 
       17 
     | 
    
         
            -
                - - ~>
         
     | 
| 
       18 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       19 
     | 
    
         
            -
                    version: '1.6'
         
     | 
| 
       20 
     | 
    
         
            -
              type: :development
         
     | 
| 
       21 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       22 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       23 
     | 
    
         
            -
                requirements:
         
     | 
| 
       24 
     | 
    
         
            -
                - - ~>
         
     | 
| 
       25 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       26 
     | 
    
         
            -
                    version: '1.6'
         
     | 
| 
       27 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       28 
     | 
    
         
            -
              name: rubocop
         
     | 
| 
       29 
15 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       30 
16 
     | 
    
         
             
                requirements:
         
     | 
| 
       31 
17 
     | 
    
         
             
                - - '>='
         
     | 
| 
         @@ -52,20 +38,6 @@ dependencies: 
     | 
|
| 
       52 
38 
     | 
    
         
             
                - - '>='
         
     | 
| 
       53 
39 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       54 
40 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       55 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       56 
     | 
    
         
            -
              name: yard
         
     | 
| 
       57 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       58 
     | 
    
         
            -
                requirements:
         
     | 
| 
       59 
     | 
    
         
            -
                - - '>='
         
     | 
| 
       60 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       61 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       62 
     | 
    
         
            -
              type: :development
         
     | 
| 
       63 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       64 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       65 
     | 
    
         
            -
                requirements:
         
     | 
| 
       66 
     | 
    
         
            -
                - - '>='
         
     | 
| 
       67 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       68 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       69 
41 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       70 
42 
     | 
    
         
             
              name: rspec
         
     | 
| 
       71 
43 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -207,6 +179,7 @@ files: 
     | 
|
| 
       207 
179 
     | 
    
         
             
            - lib/redd/client/unauthenticated/live.rb
         
     | 
| 
       208 
180 
     | 
    
         
             
            - lib/redd/client/unauthenticated/moderation.rb
         
     | 
| 
       209 
181 
     | 
    
         
             
            - lib/redd/client/unauthenticated/subreddits.rb
         
     | 
| 
      
 182 
     | 
    
         
            +
            - lib/redd/client/unauthenticated/users.rb
         
     | 
| 
       210 
183 
     | 
    
         
             
            - lib/redd/client/unauthenticated/utilities.rb
         
     | 
| 
       211 
184 
     | 
    
         
             
            - lib/redd/client/unauthenticated/wiki.rb
         
     | 
| 
       212 
185 
     | 
    
         
             
            - lib/redd/error.rb
         
     | 
| 
         @@ -234,8 +207,26 @@ files: 
     | 
|
| 
       234 
207 
     | 
    
         
             
            - lib/redd/thing/voteable.rb
         
     | 
| 
       235 
208 
     | 
    
         
             
            - lib/redd/version.rb
         
     | 
| 
       236 
209 
     | 
    
         
             
            - redd.gemspec
         
     | 
| 
       237 
     | 
    
         
            -
            - spec/ 
     | 
| 
      
 210 
     | 
    
         
            +
            - spec/README.md
         
     | 
| 
      
 211 
     | 
    
         
            +
            - spec/redd/base_spec.rb
         
     | 
| 
      
 212 
     | 
    
         
            +
            - spec/redd/client/authenticated/account_spec.rb
         
     | 
| 
      
 213 
     | 
    
         
            +
            - spec/redd/client/authenticated/apps_spec.rb
         
     | 
| 
      
 214 
     | 
    
         
            +
            - spec/redd/client/authenticated/flair_spec.rb
         
     | 
| 
      
 215 
     | 
    
         
            +
            - spec/redd/client/authenticated/gold_spec.rb
         
     | 
| 
      
 216 
     | 
    
         
            +
            - spec/redd/client/authenticated/links_comments_spec.rb
         
     | 
| 
      
 217 
     | 
    
         
            +
            - spec/redd/client/authenticated/live_spec.rb
         
     | 
| 
      
 218 
     | 
    
         
            +
            - spec/redd/client/unauthenticated/account_spec.rb
         
     | 
| 
      
 219 
     | 
    
         
            +
            - spec/redd/client/unauthenticated/captcha_spec.rb
         
     | 
| 
      
 220 
     | 
    
         
            +
            - spec/redd/client/unauthenticated/links_comments_spec.rb
         
     | 
| 
      
 221 
     | 
    
         
            +
            - spec/redd/client/unauthenticated/listing_spec.rb
         
     | 
| 
      
 222 
     | 
    
         
            +
            - spec/redd/client/unauthenticated/live_spec.rb
         
     | 
| 
      
 223 
     | 
    
         
            +
            - spec/redd/client/unauthenticated/moderation_spec.rb
         
     | 
| 
      
 224 
     | 
    
         
            +
            - spec/redd/client/unauthenticated/subreddits_spec.rb
         
     | 
| 
      
 225 
     | 
    
         
            +
            - spec/redd/client/unauthenticated/users_spec.rb
         
     | 
| 
      
 226 
     | 
    
         
            +
            - spec/redd/client/unauthenticated/wiki_spec.rb
         
     | 
| 
      
 227 
     | 
    
         
            +
            - spec/redd/oauth2_access_spec.rb
         
     | 
| 
       238 
228 
     | 
    
         
             
            - spec/redd/rate_limit_spec.rb
         
     | 
| 
      
 229 
     | 
    
         
            +
            - spec/redd/thing_spec.rb
         
     | 
| 
       239 
230 
     | 
    
         
             
            - spec/redd_spec.rb
         
     | 
| 
       240 
231 
     | 
    
         
             
            - spec/spec_helper.rb
         
     | 
| 
       241 
232 
     | 
    
         
             
            homepage: ''
         
     | 
| 
         @@ -263,8 +254,26 @@ signing_key: 
     | 
|
| 
       263 
254 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       264 
255 
     | 
    
         
             
            summary: A Reddit API Wrapper for Ruby.
         
     | 
| 
       265 
256 
     | 
    
         
             
            test_files:
         
     | 
| 
       266 
     | 
    
         
            -
            - spec/ 
     | 
| 
      
 257 
     | 
    
         
            +
            - spec/README.md
         
     | 
| 
      
 258 
     | 
    
         
            +
            - spec/redd/base_spec.rb
         
     | 
| 
      
 259 
     | 
    
         
            +
            - spec/redd/client/authenticated/account_spec.rb
         
     | 
| 
      
 260 
     | 
    
         
            +
            - spec/redd/client/authenticated/apps_spec.rb
         
     | 
| 
      
 261 
     | 
    
         
            +
            - spec/redd/client/authenticated/flair_spec.rb
         
     | 
| 
      
 262 
     | 
    
         
            +
            - spec/redd/client/authenticated/gold_spec.rb
         
     | 
| 
      
 263 
     | 
    
         
            +
            - spec/redd/client/authenticated/links_comments_spec.rb
         
     | 
| 
      
 264 
     | 
    
         
            +
            - spec/redd/client/authenticated/live_spec.rb
         
     | 
| 
      
 265 
     | 
    
         
            +
            - spec/redd/client/unauthenticated/account_spec.rb
         
     | 
| 
      
 266 
     | 
    
         
            +
            - spec/redd/client/unauthenticated/captcha_spec.rb
         
     | 
| 
      
 267 
     | 
    
         
            +
            - spec/redd/client/unauthenticated/links_comments_spec.rb
         
     | 
| 
      
 268 
     | 
    
         
            +
            - spec/redd/client/unauthenticated/listing_spec.rb
         
     | 
| 
      
 269 
     | 
    
         
            +
            - spec/redd/client/unauthenticated/live_spec.rb
         
     | 
| 
      
 270 
     | 
    
         
            +
            - spec/redd/client/unauthenticated/moderation_spec.rb
         
     | 
| 
      
 271 
     | 
    
         
            +
            - spec/redd/client/unauthenticated/subreddits_spec.rb
         
     | 
| 
      
 272 
     | 
    
         
            +
            - spec/redd/client/unauthenticated/users_spec.rb
         
     | 
| 
      
 273 
     | 
    
         
            +
            - spec/redd/client/unauthenticated/wiki_spec.rb
         
     | 
| 
      
 274 
     | 
    
         
            +
            - spec/redd/oauth2_access_spec.rb
         
     | 
| 
       267 
275 
     | 
    
         
             
            - spec/redd/rate_limit_spec.rb
         
     | 
| 
      
 276 
     | 
    
         
            +
            - spec/redd/thing_spec.rb
         
     | 
| 
       268 
277 
     | 
    
         
             
            - spec/redd_spec.rb
         
     | 
| 
       269 
278 
     | 
    
         
             
            - spec/spec_helper.rb
         
     | 
| 
       270 
279 
     | 
    
         
             
            has_rdoc: 
         
     | 
| 
         @@ -1,15 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            describe Redd::Client::Unauthenticated, :vcr do
         
     | 
| 
       2 
     | 
    
         
            -
              let(:client) { Redd::Client::Unauthenticated.new }
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
              it "has configurable options" do
         
     | 
| 
       5 
     | 
    
         
            -
                newclient = Redd::Client::Unauthenticated.new(
         
     | 
| 
       6 
     | 
    
         
            -
                  rate_limit: "SPEC_RATELIMIT",
         
     | 
| 
       7 
     | 
    
         
            -
                  user_agent: "SPEC_USERAGENT",
         
     | 
| 
       8 
     | 
    
         
            -
                  api_endpoint: "SPEC_ENDPOINT.COM"
         
     | 
| 
       9 
     | 
    
         
            -
                )
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
                expect(newclient.rate_limit).to eq("SPEC_RATELIMIT")
         
     | 
| 
       12 
     | 
    
         
            -
                expect(newclient.user_agent).to eq("SPEC_USERAGENT")
         
     | 
| 
       13 
     | 
    
         
            -
                expect(newclient.api_endpoint).to eq("SPEC_ENDPOINT.COM")
         
     | 
| 
       14 
     | 
    
         
            -
              end
         
     | 
| 
       15 
     | 
    
         
            -
            end
         
     |