neonredd 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
 - data/Gemfile +4 -0
 - data/LICENSE.md +22 -0
 - data/README.md +1 -0
 - data/Rakefile +5 -0
 - data/Redd.LICENSE.md +22 -0
 - data/RedditKit.LICENSE.md +9 -0
 - data/lib/redd/access.rb +76 -0
 - data/lib/redd/clients/base/account.rb +20 -0
 - data/lib/redd/clients/base/identity.rb +22 -0
 - data/lib/redd/clients/base/none.rb +27 -0
 - data/lib/redd/clients/base/privatemessages.rb +33 -0
 - data/lib/redd/clients/base/read.rb +114 -0
 - data/lib/redd/clients/base/stream.rb +82 -0
 - data/lib/redd/clients/base/submit.rb +19 -0
 - data/lib/redd/clients/base/utilities.rb +143 -0
 - data/lib/redd/clients/base/wikiread.rb +33 -0
 - data/lib/redd/clients/base.rb +181 -0
 - data/lib/redd/clients/installed.rb +56 -0
 - data/lib/redd/clients/script.rb +40 -0
 - data/lib/redd/clients/userless.rb +32 -0
 - data/lib/redd/clients/web.rb +59 -0
 - data/lib/redd/error.rb +151 -0
 - data/lib/redd/objects/base.rb +39 -0
 - data/lib/redd/objects/comment.rb +22 -0
 - data/lib/redd/objects/labeled_multi.rb +13 -0
 - data/lib/redd/objects/listing.rb +29 -0
 - data/lib/redd/objects/more_comments.rb +10 -0
 - data/lib/redd/objects/private_message.rb +28 -0
 - data/lib/redd/objects/submission.rb +140 -0
 - data/lib/redd/objects/subreddit.rb +329 -0
 - data/lib/redd/objects/thing/editable.rb +22 -0
 - data/lib/redd/objects/thing/hideable.rb +18 -0
 - data/lib/redd/objects/thing/inboxable.rb +25 -0
 - data/lib/redd/objects/thing/messageable.rb +38 -0
 - data/lib/redd/objects/thing/moderatable.rb +43 -0
 - data/lib/redd/objects/thing/refreshable.rb +14 -0
 - data/lib/redd/objects/thing/saveable.rb +21 -0
 - data/lib/redd/objects/thing/votable.rb +33 -0
 - data/lib/redd/objects/thing.rb +26 -0
 - data/lib/redd/objects/user.rb +52 -0
 - data/lib/redd/objects/wiki_page.rb +15 -0
 - data/lib/redd/rate_limit.rb +88 -0
 - data/lib/redd/response/parse_json.rb +18 -0
 - data/lib/redd/response/raise_error.rb +16 -0
 - data/lib/redd/version.rb +4 -0
 - data/lib/redd.rb +50 -0
 - data/neonredd.gemspec +33 -0
 - data/spec/redd/objects/base_spec.rb +1 -0
 - data/spec/redd/response/raise_error_spec.rb +11 -0
 - data/spec/redd_spec.rb +5 -0
 - data/spec/spec_helper.rb +71 -0
 - metadata +225 -0
 
| 
         @@ -0,0 +1,26 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require_relative 'base'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Redd
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Objects
         
     | 
| 
      
 5 
     | 
    
         
            +
                # A reddit thing.
         
     | 
| 
      
 6 
     | 
    
         
            +
                # @see http://www.reddit.com/dev/api#fullnames
         
     | 
| 
      
 7 
     | 
    
         
            +
                class Thing < Base
         
     | 
| 
      
 8 
     | 
    
         
            +
                  # Load up all the possible mixins for the thing.
         
     | 
| 
      
 9 
     | 
    
         
            +
                  Dir[File.join(File.dirname(__FILE__), 'thing', '*.rb')].each do |file|
         
     | 
| 
      
 10 
     | 
    
         
            +
                    require(file)
         
     | 
| 
      
 11 
     | 
    
         
            +
                  end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                  # Check for equality.
         
     | 
| 
      
 14 
     | 
    
         
            +
                  # @param other The other object.
         
     | 
| 
      
 15 
     | 
    
         
            +
                  # @return [Boolean]
         
     | 
| 
      
 16 
     | 
    
         
            +
                  def ==(other)
         
     | 
| 
      
 17 
     | 
    
         
            +
                    other.is_a?(Thing) && fullname == other.fullname
         
     | 
| 
      
 18 
     | 
    
         
            +
                  end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                  # @return [String] The fullname of the thing.
         
     | 
| 
      
 21 
     | 
    
         
            +
                  def fullname
         
     | 
| 
      
 22 
     | 
    
         
            +
                    self[:name] || "#{kind}_#{id}"
         
     | 
| 
      
 23 
     | 
    
         
            +
                  end
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
              end
         
     | 
| 
      
 26 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,52 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require_relative 'thing'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Redd
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Objects
         
     | 
| 
      
 5 
     | 
    
         
            +
                # The model for a reddit user
         
     | 
| 
      
 6 
     | 
    
         
            +
                class User < Thing
         
     | 
| 
      
 7 
     | 
    
         
            +
                  include Thing::Messageable
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                  # @!method get_overview(**params)
         
     | 
| 
      
 10 
     | 
    
         
            +
                  # @!method get_submitted(**params)
         
     | 
| 
      
 11 
     | 
    
         
            +
                  # @!method get_comments(**params)
         
     | 
| 
      
 12 
     | 
    
         
            +
                  # @!method get_liked(**params)
         
     | 
| 
      
 13 
     | 
    
         
            +
                  # @!method get_disliked(**params)
         
     | 
| 
      
 14 
     | 
    
         
            +
                  # @!method get_hidden(**params)
         
     | 
| 
      
 15 
     | 
    
         
            +
                  # @!method get_saved(**params)
         
     | 
| 
      
 16 
     | 
    
         
            +
                  # @!method get_gilded(**params)
         
     | 
| 
      
 17 
     | 
    
         
            +
                  #
         
     | 
| 
      
 18 
     | 
    
         
            +
                  # Get the appropriate listing.
         
     | 
| 
      
 19 
     | 
    
         
            +
                  # @option params [String] :after Return results after the given
         
     | 
| 
      
 20 
     | 
    
         
            +
                  #   fullname.
         
     | 
| 
      
 21 
     | 
    
         
            +
                  # @option params [String] :before Return results before the given
         
     | 
| 
      
 22 
     | 
    
         
            +
                  #   fullname.
         
     | 
| 
      
 23 
     | 
    
         
            +
                  # @option params [Integer] :count The number of items already seen
         
     | 
| 
      
 24 
     | 
    
         
            +
                  #   in the listing.
         
     | 
| 
      
 25 
     | 
    
         
            +
                  # @option params [1..1000] :limit The maximum number of things to
         
     | 
| 
      
 26 
     | 
    
         
            +
                  #   return.
         
     | 
| 
      
 27 
     | 
    
         
            +
                  # @option params [:hot, :new, :top, :controversial] :sort The type of
         
     | 
| 
      
 28 
     | 
    
         
            +
                  #   sort to use.
         
     | 
| 
      
 29 
     | 
    
         
            +
                  # @option params [:hour, :day, :week, :month, :year, :all] :t The
         
     | 
| 
      
 30 
     | 
    
         
            +
                  #   time period to consider when sorting.
         
     | 
| 
      
 31 
     | 
    
         
            +
                  # @option params [:given] :show For {#get_gilded}, whether to show the
         
     | 
| 
      
 32 
     | 
    
         
            +
                  #   gildings given.
         
     | 
| 
      
 33 
     | 
    
         
            +
                  # @note The option :t only applies to the top and controversial sorts.
         
     | 
| 
      
 34 
     | 
    
         
            +
                  # @return [Listing<Submission>]
         
     | 
| 
      
 35 
     | 
    
         
            +
                  %w(
         
     | 
| 
      
 36 
     | 
    
         
            +
                    overview submitted comments liked disliked hidden saved gilded
         
     | 
| 
      
 37 
     | 
    
         
            +
                  ).each do |type|
         
     | 
| 
      
 38 
     | 
    
         
            +
                    define_method :"get_#{type}" do |**params|
         
     | 
| 
      
 39 
     | 
    
         
            +
                      client.request_object(
         
     | 
| 
      
 40 
     | 
    
         
            +
                        :get, "/user/#{name}/#{type}.json", **params
         
     | 
| 
      
 41 
     | 
    
         
            +
                      )
         
     | 
| 
      
 42 
     | 
    
         
            +
                    end
         
     | 
| 
      
 43 
     | 
    
         
            +
                  end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
                  # Get posts that the user has gilded.
         
     | 
| 
      
 46 
     | 
    
         
            +
                  # @see #get_gilded
         
     | 
| 
      
 47 
     | 
    
         
            +
                  def get_gildings_given(**params)
         
     | 
| 
      
 48 
     | 
    
         
            +
                    get_gilded(**params.merge(show: "given"))
         
     | 
| 
      
 49 
     | 
    
         
            +
                  end
         
     | 
| 
      
 50 
     | 
    
         
            +
                end
         
     | 
| 
      
 51 
     | 
    
         
            +
              end
         
     | 
| 
      
 52 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,15 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require_relative 'thing'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Redd
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Objects
         
     | 
| 
      
 5 
     | 
    
         
            +
                # A submission made in a subreddit.
         
     | 
| 
      
 6 
     | 
    
         
            +
                class WikiPage < Thing
         
     | 
| 
      
 7 
     | 
    
         
            +
                  alias_property :content, :content_md
         
     | 
| 
      
 8 
     | 
    
         
            +
                  alias_property :body, :content_md
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                  def revision_user
         
     | 
| 
      
 11 
     | 
    
         
            +
                    @revision_by ||= client.object_from_body(revision_by)
         
     | 
| 
      
 12 
     | 
    
         
            +
                  end
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
              end
         
     | 
| 
      
 15 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,88 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # The main Redd module.
         
     | 
| 
      
 2 
     | 
    
         
            +
            module Redd
         
     | 
| 
      
 3 
     | 
    
         
            +
              # The class that handles rate limiting for reddit.
         
     | 
| 
      
 4 
     | 
    
         
            +
              #
         
     | 
| 
      
 5 
     | 
    
         
            +
              # If you'd rather have an asynchronous or queue-based limiting, it's easy to
         
     | 
| 
      
 6 
     | 
    
         
            +
              # write one yourself. A rate limiting class is any class that has an
         
     | 
| 
      
 7 
     | 
    
         
            +
              # {#after_limit} method. The block returns a Faraday::Response object, so you
         
     | 
| 
      
 8 
     | 
    
         
            +
              # can also extract the headers from the response and use those instead. To
         
     | 
| 
      
 9 
     | 
    
         
            +
              # remove rate limiting entirely, follow the example below.
         
     | 
| 
      
 10 
     | 
    
         
            +
              #
         
     | 
| 
      
 11 
     | 
    
         
            +
              # @example To remove rate limiting entirely, just burst forever.
         
     | 
| 
      
 12 
     | 
    
         
            +
              #     rt = Redd::RateLimit.new
         
     | 
| 
      
 13 
     | 
    
         
            +
              #     rt.burst!(Float::INFINITY)
         
     | 
| 
      
 14 
     | 
    
         
            +
              class RateLimit
         
     | 
| 
      
 15 
     | 
    
         
            +
                # @!attribute [rw] gap
         
     | 
| 
      
 16 
     | 
    
         
            +
                # @return [Integer, Float] The minimum time between requests.
         
     | 
| 
      
 17 
     | 
    
         
            +
                attr_accessor :gap
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                # @!attribute [rw] burst_length
         
     | 
| 
      
 20 
     | 
    
         
            +
                # @return [Integer] The number of requests left to burst.
         
     | 
| 
      
 21 
     | 
    
         
            +
                attr_accessor :burst_length
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                # @!attribute [r] last_request
         
     | 
| 
      
 24 
     | 
    
         
            +
                # @return [Time] The time the last request was made.
         
     | 
| 
      
 25 
     | 
    
         
            +
                attr_reader :last_request
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                # @!attribute [r] used
         
     | 
| 
      
 28 
     | 
    
         
            +
                # @!attribute [r] remaining
         
     | 
| 
      
 29 
     | 
    
         
            +
                # @!attribute [r] reset
         
     | 
| 
      
 30 
     | 
    
         
            +
                # @return [Integer] The data from reddit's response headers.
         
     | 
| 
      
 31 
     | 
    
         
            +
                attr_reader :used, :remaining, :reset
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                # @param [Float, Integer] gap The minimum time between each request.
         
     | 
| 
      
 34 
     | 
    
         
            +
                def initialize(gap)
         
     | 
| 
      
 35 
     | 
    
         
            +
                  # Some time ages ago, because we never made a request.
         
     | 
| 
      
 36 
     | 
    
         
            +
                  @last_request = Time.at(0)
         
     | 
| 
      
 37 
     | 
    
         
            +
                  @gap = gap
         
     | 
| 
      
 38 
     | 
    
         
            +
                  @burst_length = 0
         
     | 
| 
      
 39 
     | 
    
         
            +
                end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                # Don't sleep for the next few requests.
         
     | 
| 
      
 42 
     | 
    
         
            +
                # @param [Integer] times The number of times to ignore limiting.
         
     | 
| 
      
 43 
     | 
    
         
            +
                # @return [Integer] The total times rate limiting will be ignored.
         
     | 
| 
      
 44 
     | 
    
         
            +
                def burst!(times)
         
     | 
| 
      
 45 
     | 
    
         
            +
                  @burst_length += times
         
     | 
| 
      
 46 
     | 
    
         
            +
                end
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                # Sleep until 1 second has passed since the last request and perform the
         
     | 
| 
      
 49 
     | 
    
         
            +
                # given request unless bursting.
         
     | 
| 
      
 50 
     | 
    
         
            +
                #
         
     | 
| 
      
 51 
     | 
    
         
            +
                # @yield [Faraday::Response] A response.
         
     | 
| 
      
 52 
     | 
    
         
            +
                # @return [Faraday::Response] The response.
         
     | 
| 
      
 53 
     | 
    
         
            +
                def after_limit
         
     | 
| 
      
 54 
     | 
    
         
            +
                  response = yield
         
     | 
| 
      
 55 
     | 
    
         
            +
                  update!(response)
         
     | 
| 
      
 56 
     | 
    
         
            +
                  sleep(wait_time)
         
     | 
| 
      
 57 
     | 
    
         
            +
                  response
         
     | 
| 
      
 58 
     | 
    
         
            +
                end
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
                private
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                # Update necessary info with each request.
         
     | 
| 
      
 63 
     | 
    
         
            +
                # @param [Faraday::Response] response The response to the request made.
         
     | 
| 
      
 64 
     | 
    
         
            +
                def update!(response)
         
     | 
| 
      
 65 
     | 
    
         
            +
                  @last_request_time = Time.now
         
     | 
| 
      
 66 
     | 
    
         
            +
                  %w(used remaining reset).each do |type|
         
     | 
| 
      
 67 
     | 
    
         
            +
                    value = response.headers["x-ratelimit-#{type}"]
         
     | 
| 
      
 68 
     | 
    
         
            +
                    instance_variable_set("@#{type}", value.to_i) unless value.nil?
         
     | 
| 
      
 69 
     | 
    
         
            +
                  end
         
     | 
| 
      
 70 
     | 
    
         
            +
                end
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
                # @return [Float, Integer] The number of seconds to sleep.
         
     | 
| 
      
 73 
     | 
    
         
            +
                def wait_time
         
     | 
| 
      
 74 
     | 
    
         
            +
                  if @burst_length > 0 && @remaining > 0
         
     | 
| 
      
 75 
     | 
    
         
            +
                    # Don't sleep if we are in burst mode.
         
     | 
| 
      
 76 
     | 
    
         
            +
                    @burst_length -= 1
         
     | 
| 
      
 77 
     | 
    
         
            +
                    0
         
     | 
| 
      
 78 
     | 
    
         
            +
                  elsif @reset.nil? || @remaining.nil?
         
     | 
| 
      
 79 
     | 
    
         
            +
                    # Just guess if no headers were given (max 1 sec after last request).
         
     | 
| 
      
 80 
     | 
    
         
            +
                    time = @last_request_time - Time.now + @gap
         
     | 
| 
      
 81 
     | 
    
         
            +
                    time > 0 ? time : 0
         
     | 
| 
      
 82 
     | 
    
         
            +
                  else
         
     | 
| 
      
 83 
     | 
    
         
            +
                    # Most cases, spread out requests over available time.
         
     | 
| 
      
 84 
     | 
    
         
            +
                    @reset.to_f / (@gap * @remaining + 1)
         
     | 
| 
      
 85 
     | 
    
         
            +
                  end
         
     | 
| 
      
 86 
     | 
    
         
            +
                end
         
     | 
| 
      
 87 
     | 
    
         
            +
              end
         
     | 
| 
      
 88 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,18 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'faraday/response'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require_relative '../error'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            module Redd
         
     | 
| 
      
 5 
     | 
    
         
            +
              # The module that contains middleware that alters the Faraday response.
         
     | 
| 
      
 6 
     | 
    
         
            +
              module Response
         
     | 
| 
      
 7 
     | 
    
         
            +
                # Faraday Middleware that parses JSON using OJ, via MultiJson.
         
     | 
| 
      
 8 
     | 
    
         
            +
                class ParseJson < Faraday::Response::Middleware
         
     | 
| 
      
 9 
     | 
    
         
            +
                  dependency 'multi_json'
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                  def on_complete(env)
         
     | 
| 
      
 12 
     | 
    
         
            +
                    env[:body] = MultiJson.load(env[:body], symbolize_keys: true)
         
     | 
| 
      
 13 
     | 
    
         
            +
                  rescue MultiJson::ParseError
         
     | 
| 
      
 14 
     | 
    
         
            +
                    raise JSONError.new(env), env[:body]
         
     | 
| 
      
 15 
     | 
    
         
            +
                  end
         
     | 
| 
      
 16 
     | 
    
         
            +
                end
         
     | 
| 
      
 17 
     | 
    
         
            +
              end
         
     | 
| 
      
 18 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,16 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'faraday/response'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require_relative '../error'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            module Redd
         
     | 
| 
      
 5 
     | 
    
         
            +
              # The module that contains middleware that alters the Faraday response.
         
     | 
| 
      
 6 
     | 
    
         
            +
              module Response
         
     | 
| 
      
 7 
     | 
    
         
            +
                # Faraday Middleware that raises an error if there's one.
         
     | 
| 
      
 8 
     | 
    
         
            +
                # @see Error
         
     | 
| 
      
 9 
     | 
    
         
            +
                class RaiseError < Faraday::Response::Middleware
         
     | 
| 
      
 10 
     | 
    
         
            +
                  def on_complete(env)
         
     | 
| 
      
 11 
     | 
    
         
            +
                    error = Redd::Error.from_response(env)
         
     | 
| 
      
 12 
     | 
    
         
            +
                    fail error.new(env), env[:body] if error
         
     | 
| 
      
 13 
     | 
    
         
            +
                  end
         
     | 
| 
      
 14 
     | 
    
         
            +
                end
         
     | 
| 
      
 15 
     | 
    
         
            +
              end
         
     | 
| 
      
 16 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/redd/version.rb
    ADDED
    
    
    
        data/lib/redd.rb
    ADDED
    
    | 
         @@ -0,0 +1,50 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require_relative 'redd/version'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require_relative 'redd/clients/installed'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require_relative 'redd/clients/script'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require_relative 'redd/clients/userless'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require_relative 'redd/clients/web'
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            # The main Redd module.
         
     | 
| 
      
 8 
     | 
    
         
            +
            module Redd
         
     | 
| 
      
 9 
     | 
    
         
            +
              # @overload it(:installed, client_id, redirect_uri, **kwargs)
         
     | 
| 
      
 10 
     | 
    
         
            +
              #   Authorize a user via an installed app.
         
     | 
| 
      
 11 
     | 
    
         
            +
              #   @param [String] client_id The client ID provided by reddit.
         
     | 
| 
      
 12 
     | 
    
         
            +
              #   @param [String] redirect_uri The exact uri you provided to reddit.
         
     | 
| 
      
 13 
     | 
    
         
            +
              #   @param [Hash] kwargs The keyword arguments provided to the client.
         
     | 
| 
      
 14 
     | 
    
         
            +
              #   @return [Clients::Installed]
         
     | 
| 
      
 15 
     | 
    
         
            +
              #
         
     | 
| 
      
 16 
     | 
    
         
            +
              # @overload it(:script, client_id, secret, username, password, **kwargs)
         
     | 
| 
      
 17 
     | 
    
         
            +
              #   Authorize a user that you have full access to, i.e. a bot.
         
     | 
| 
      
 18 
     | 
    
         
            +
              #   @param [String] client_id The client ID provided by reddit.
         
     | 
| 
      
 19 
     | 
    
         
            +
              #   @param [String] secret The client secret provided by reddit.
         
     | 
| 
      
 20 
     | 
    
         
            +
              #   @param [String] username The username.
         
     | 
| 
      
 21 
     | 
    
         
            +
              #   @param [String] password The password of the user.
         
     | 
| 
      
 22 
     | 
    
         
            +
              #   @param [Hash] kwargs The keyword arguments provided to the client.
         
     | 
| 
      
 23 
     | 
    
         
            +
              #   @return [Clients::Script]
         
     | 
| 
      
 24 
     | 
    
         
            +
              #
         
     | 
| 
      
 25 
     | 
    
         
            +
              # @overload it(:userless, client_id, secret, **kwargs)
         
     | 
| 
      
 26 
     | 
    
         
            +
              #   Connect to reddit from a web-app or a script without a specific user.
         
     | 
| 
      
 27 
     | 
    
         
            +
              #   @param [String] client_id The client ID provided by reddit.
         
     | 
| 
      
 28 
     | 
    
         
            +
              #   @param [String] secret The client secret provided by reddit.
         
     | 
| 
      
 29 
     | 
    
         
            +
              #   @param [Hash] kwargs The keyword arguments provided to the client.
         
     | 
| 
      
 30 
     | 
    
         
            +
              #   @return [Clients::Userless]
         
     | 
| 
      
 31 
     | 
    
         
            +
              #
         
     | 
| 
      
 32 
     | 
    
         
            +
              # @overload it(:web, client_id, secret, redirect_uri, **kwargs)
         
     | 
| 
      
 33 
     | 
    
         
            +
              #   Authorize a user from a website.
         
     | 
| 
      
 34 
     | 
    
         
            +
              #   @param [String] client_id The client ID provided by reddit.
         
     | 
| 
      
 35 
     | 
    
         
            +
              #   @param [String] secret The client secret provided by reddit.
         
     | 
| 
      
 36 
     | 
    
         
            +
              #   @param [String] redirect_uri The exact uri you provided to reddit.
         
     | 
| 
      
 37 
     | 
    
         
            +
              #   @param [Hash] kwargs The keyword arguments provided to the client.
         
     | 
| 
      
 38 
     | 
    
         
            +
              #   @return [Clients::Web]
         
     | 
| 
      
 39 
     | 
    
         
            +
              #
         
     | 
| 
      
 40 
     | 
    
         
            +
              def self.it(type, *args, **kwargs)
         
     | 
| 
      
 41 
     | 
    
         
            +
                types = {
         
     | 
| 
      
 42 
     | 
    
         
            +
                  installed: Clients::Installed,
         
     | 
| 
      
 43 
     | 
    
         
            +
                  script: Clients::Script,
         
     | 
| 
      
 44 
     | 
    
         
            +
                  userless: Clients::Userless,
         
     | 
| 
      
 45 
     | 
    
         
            +
                  web: Clients::Web
         
     | 
| 
      
 46 
     | 
    
         
            +
                }
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                types[type].new(*args, **kwargs)
         
     | 
| 
      
 49 
     | 
    
         
            +
              end
         
     | 
| 
      
 50 
     | 
    
         
            +
            end
         
     | 
    
        data/neonredd.gemspec
    ADDED
    
    | 
         @@ -0,0 +1,33 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # coding: utf-8
         
     | 
| 
      
 2 
     | 
    
         
            +
            lib = File.expand_path('../lib', __FILE__)
         
     | 
| 
      
 3 
     | 
    
         
            +
            $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'redd/version'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            # rubocop:disable Metrics/LineLength
         
     | 
| 
      
 7 
     | 
    
         
            +
            Gem::Specification.new do |spec|
         
     | 
| 
      
 8 
     | 
    
         
            +
              spec.name          = 'neonredd'
         
     | 
| 
      
 9 
     | 
    
         
            +
              spec.version       = Redd::VERSION
         
     | 
| 
      
 10 
     | 
    
         
            +
              spec.authors       = ['SirNeon']
         
     | 
| 
      
 11 
     | 
    
         
            +
              spec.email         = ['sirneon618@gmail.com']
         
     | 
| 
      
 12 
     | 
    
         
            +
              spec.summary       = 'A Reddit API Wrapper for Ruby.'
         
     | 
| 
      
 13 
     | 
    
         
            +
              spec.description   = 'This is literally just Redd that can grab up to 1000 listing items.'
         
     | 
| 
      
 14 
     | 
    
         
            +
              spec.homepage      = 'https://gitlab.com/SirNeon/neonredd'
         
     | 
| 
      
 15 
     | 
    
         
            +
              spec.license       = 'MIT'
         
     | 
| 
      
 16 
     | 
    
         
            +
              spec.required_ruby_version = '>= 2.1.0'
         
     | 
| 
      
 17 
     | 
    
         
            +
              # rubocop:disable Style/RegexpLiteral
         
     | 
| 
      
 18 
     | 
    
         
            +
              spec.files         = `git ls-files -z`.split("\x0")
         
     | 
| 
      
 19 
     | 
    
         
            +
              spec.executables   = spec.files.grep(/^bin\//) { |f| File.basename(f) }
         
     | 
| 
      
 20 
     | 
    
         
            +
              spec.test_files    = spec.files.grep(/^(test|spec|features)\//)
         
     | 
| 
      
 21 
     | 
    
         
            +
              spec.require_paths = ['lib']
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
              spec.add_development_dependency 'bundler', '~> 1.10.6'
         
     | 
| 
      
 24 
     | 
    
         
            +
              spec.add_development_dependency 'rake', '~> 10.4.2'
         
     | 
| 
      
 25 
     | 
    
         
            +
              spec.add_development_dependency 'rspec', '~> 3.2.0'
         
     | 
| 
      
 26 
     | 
    
         
            +
              spec.add_development_dependency 'vcr', '~> 2.9.3'
         
     | 
| 
      
 27 
     | 
    
         
            +
              spec.add_development_dependency 'webmock', '~> 1.20.4'
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
              spec.add_dependency 'hashie', '~> 3.4.0'
         
     | 
| 
      
 30 
     | 
    
         
            +
              spec.add_dependency 'faraday', '~> 0.9.1'
         
     | 
| 
      
 31 
     | 
    
         
            +
              spec.add_dependency 'multi_json', '~> 1.10.1'
         
     | 
| 
      
 32 
     | 
    
         
            +
              spec.add_dependency 'fastimage', '~> 1.6.6'
         
     | 
| 
      
 33 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # There's no point in testing Base, since we'd basically be testing Hashie.
         
     | 
    
        data/spec/redd_spec.rb
    ADDED
    
    
    
        data/spec/spec_helper.rb
    ADDED
    
    | 
         @@ -0,0 +1,71 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            $LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
         
     | 
| 
      
 2 
     | 
    
         
            +
            require "vcr"
         
     | 
| 
      
 3 
     | 
    
         
            +
            require "redd"
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            VCR.configure do |config|
         
     | 
| 
      
 6 
     | 
    
         
            +
              config.cassette_library_dir = "spec/cassettes"
         
     | 
| 
      
 7 
     | 
    
         
            +
              config.hook_into :webmock
         
     | 
| 
      
 8 
     | 
    
         
            +
              config.default_cassette_options = {record: :new_episodes}
         
     | 
| 
      
 9 
     | 
    
         
            +
              config.configure_rspec_metadata!
         
     | 
| 
      
 10 
     | 
    
         
            +
            end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            RSpec.configure do |config|
         
     | 
| 
      
 13 
     | 
    
         
            +
              # rspec-expectations config goes here. You can use an alternate
         
     | 
| 
      
 14 
     | 
    
         
            +
              # assertion/expectation library such as wrong or the stdlib/minitest
         
     | 
| 
      
 15 
     | 
    
         
            +
              # assertions if you prefer.
         
     | 
| 
      
 16 
     | 
    
         
            +
              config.expect_with :rspec do |expectations|
         
     | 
| 
      
 17 
     | 
    
         
            +
                # This option will default to `true` in RSpec 4. It makes the `description`
         
     | 
| 
      
 18 
     | 
    
         
            +
                # and `failure_message` of custom matchers include text for helper methods
         
     | 
| 
      
 19 
     | 
    
         
            +
                # defined using `chain`, e.g.:
         
     | 
| 
      
 20 
     | 
    
         
            +
                #     be_bigger_than(2).and_smaller_than(4).description
         
     | 
| 
      
 21 
     | 
    
         
            +
                #     # => "be bigger than 2 and smaller than 4"
         
     | 
| 
      
 22 
     | 
    
         
            +
                # ...rather than:
         
     | 
| 
      
 23 
     | 
    
         
            +
                #     # => "be bigger than 2"
         
     | 
| 
      
 24 
     | 
    
         
            +
                expectations.include_chain_clauses_in_custom_matcher_descriptions = true
         
     | 
| 
      
 25 
     | 
    
         
            +
              end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
              # rspec-mocks config goes here. You can use an alternate test double
         
     | 
| 
      
 28 
     | 
    
         
            +
              # library (such as bogus or mocha) by changing the `mock_with` option here.
         
     | 
| 
      
 29 
     | 
    
         
            +
              config.mock_with :rspec do |mocks|
         
     | 
| 
      
 30 
     | 
    
         
            +
                # Prevents you from mocking or stubbing a method that does not exist on
         
     | 
| 
      
 31 
     | 
    
         
            +
                # a real object. This is generally recommended, and will default to
         
     | 
| 
      
 32 
     | 
    
         
            +
                # `true` in RSpec 4.
         
     | 
| 
      
 33 
     | 
    
         
            +
                mocks.verify_partial_doubles = true
         
     | 
| 
      
 34 
     | 
    
         
            +
              end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
              # These two settings work together to allow you to limit a spec run
         
     | 
| 
      
 37 
     | 
    
         
            +
              # to individual examples or groups you care about by tagging them with
         
     | 
| 
      
 38 
     | 
    
         
            +
              # `:focus` metadata. When nothing is tagged with `:focus`, all examples
         
     | 
| 
      
 39 
     | 
    
         
            +
              # get run.
         
     | 
| 
      
 40 
     | 
    
         
            +
              config.filter_run_including :focus
         
     | 
| 
      
 41 
     | 
    
         
            +
              config.run_all_when_everything_filtered = true
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
              # If we don't have the details to perform authentication, we can't do those
         
     | 
| 
      
 44 
     | 
    
         
            +
              # tests. 
         
     | 
| 
      
 45 
     | 
    
         
            +
              if ENV["TRAVIS_SECURE_ENV_VARS"] == "false"
         
     | 
| 
      
 46 
     | 
    
         
            +
                config.filter_run_excluding :secure
         
     | 
| 
      
 47 
     | 
    
         
            +
              end
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
              # Limits the available syntax to the non-monkey patched syntax that is
         
     | 
| 
      
 50 
     | 
    
         
            +
              # recommended. For more details, see:
         
     | 
| 
      
 51 
     | 
    
         
            +
              #   - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
         
     | 
| 
      
 52 
     | 
    
         
            +
              #   - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
         
     | 
| 
      
 53 
     | 
    
         
            +
              #   - http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3#new__config_option_to_disable_rspeccore_monkey_patching
         
     | 
| 
      
 54 
     | 
    
         
            +
              config.disable_monkey_patching!
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
              # This setting enables warnings. It's recommended, but in some cases may
         
     | 
| 
      
 57 
     | 
    
         
            +
              # be too noisy due to issues in dependencies.
         
     | 
| 
      
 58 
     | 
    
         
            +
              config.warnings = true
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
              # Run specs in random order to surface order dependencies. If you find an
         
     | 
| 
      
 61 
     | 
    
         
            +
              # order dependency and want to debug it, you can fix the order by providing
         
     | 
| 
      
 62 
     | 
    
         
            +
              # the seed, which is printed after each run.
         
     | 
| 
      
 63 
     | 
    
         
            +
              #     --seed 1234
         
     | 
| 
      
 64 
     | 
    
         
            +
              config.order = :random
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
              # Seed global randomization in this process using the `--seed` CLI option.
         
     | 
| 
      
 67 
     | 
    
         
            +
              # Setting this allows you to use `--seed` to deterministically reproduce
         
     | 
| 
      
 68 
     | 
    
         
            +
              # test failures related to randomization by passing the same `--seed` value
         
     | 
| 
      
 69 
     | 
    
         
            +
              # as the one that triggered the failure.
         
     | 
| 
      
 70 
     | 
    
         
            +
              Kernel.srand config.seed
         
     | 
| 
      
 71 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    ADDED
    
    | 
         @@ -0,0 +1,225 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            --- !ruby/object:Gem::Specification
         
     | 
| 
      
 2 
     | 
    
         
            +
            name: neonredd
         
     | 
| 
      
 3 
     | 
    
         
            +
            version: !ruby/object:Gem::Version
         
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.1
         
     | 
| 
      
 5 
     | 
    
         
            +
            platform: ruby
         
     | 
| 
      
 6 
     | 
    
         
            +
            authors:
         
     | 
| 
      
 7 
     | 
    
         
            +
            - SirNeon
         
     | 
| 
      
 8 
     | 
    
         
            +
            autorequire: 
         
     | 
| 
      
 9 
     | 
    
         
            +
            bindir: bin
         
     | 
| 
      
 10 
     | 
    
         
            +
            cert_chain: []
         
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2016-02-22 00:00:00.000000000 Z
         
     | 
| 
      
 12 
     | 
    
         
            +
            dependencies:
         
     | 
| 
      
 13 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 14 
     | 
    
         
            +
              name: bundler
         
     | 
| 
      
 15 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 16 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 17 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 18 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 19 
     | 
    
         
            +
                    version: 1.10.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.10.6
         
     | 
| 
      
 27 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 28 
     | 
    
         
            +
              name: rake
         
     | 
| 
      
 29 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 30 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 31 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 32 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 33 
     | 
    
         
            +
                    version: 10.4.2
         
     | 
| 
      
 34 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 35 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 36 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 37 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 38 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 39 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 40 
     | 
    
         
            +
                    version: 10.4.2
         
     | 
| 
      
 41 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 42 
     | 
    
         
            +
              name: rspec
         
     | 
| 
      
 43 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 44 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 45 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 46 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 47 
     | 
    
         
            +
                    version: 3.2.0
         
     | 
| 
      
 48 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 49 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 50 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 51 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 52 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 53 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 54 
     | 
    
         
            +
                    version: 3.2.0
         
     | 
| 
      
 55 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 56 
     | 
    
         
            +
              name: vcr
         
     | 
| 
      
 57 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 58 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 59 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 60 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 61 
     | 
    
         
            +
                    version: 2.9.3
         
     | 
| 
      
 62 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 63 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 64 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 65 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 66 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 67 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 68 
     | 
    
         
            +
                    version: 2.9.3
         
     | 
| 
      
 69 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 70 
     | 
    
         
            +
              name: webmock
         
     | 
| 
      
 71 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 72 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 73 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 74 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 75 
     | 
    
         
            +
                    version: 1.20.4
         
     | 
| 
      
 76 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 77 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 78 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 79 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 80 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 81 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 82 
     | 
    
         
            +
                    version: 1.20.4
         
     | 
| 
      
 83 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 84 
     | 
    
         
            +
              name: hashie
         
     | 
| 
      
 85 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 86 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 87 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 88 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 89 
     | 
    
         
            +
                    version: 3.4.0
         
     | 
| 
      
 90 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 91 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 92 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 93 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 94 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 95 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 96 
     | 
    
         
            +
                    version: 3.4.0
         
     | 
| 
      
 97 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 98 
     | 
    
         
            +
              name: faraday
         
     | 
| 
      
 99 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 100 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 101 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 102 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 103 
     | 
    
         
            +
                    version: 0.9.1
         
     | 
| 
      
 104 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 105 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 106 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 107 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 108 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 109 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 110 
     | 
    
         
            +
                    version: 0.9.1
         
     | 
| 
      
 111 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 112 
     | 
    
         
            +
              name: multi_json
         
     | 
| 
      
 113 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 114 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 115 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 116 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 117 
     | 
    
         
            +
                    version: 1.10.1
         
     | 
| 
      
 118 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 119 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 120 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 121 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 122 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 123 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 124 
     | 
    
         
            +
                    version: 1.10.1
         
     | 
| 
      
 125 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 126 
     | 
    
         
            +
              name: fastimage
         
     | 
| 
      
 127 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 128 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 129 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 130 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 131 
     | 
    
         
            +
                    version: 1.6.6
         
     | 
| 
      
 132 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 133 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 134 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 135 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 136 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 137 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 138 
     | 
    
         
            +
                    version: 1.6.6
         
     | 
| 
      
 139 
     | 
    
         
            +
            description: This is literally just Redd that can grab up to 1000 listing items.
         
     | 
| 
      
 140 
     | 
    
         
            +
            email:
         
     | 
| 
      
 141 
     | 
    
         
            +
            - sirneon618@gmail.com
         
     | 
| 
      
 142 
     | 
    
         
            +
            executables: []
         
     | 
| 
      
 143 
     | 
    
         
            +
            extensions: []
         
     | 
| 
      
 144 
     | 
    
         
            +
            extra_rdoc_files: []
         
     | 
| 
      
 145 
     | 
    
         
            +
            files:
         
     | 
| 
      
 146 
     | 
    
         
            +
            - Gemfile
         
     | 
| 
      
 147 
     | 
    
         
            +
            - LICENSE.md
         
     | 
| 
      
 148 
     | 
    
         
            +
            - README.md
         
     | 
| 
      
 149 
     | 
    
         
            +
            - Rakefile
         
     | 
| 
      
 150 
     | 
    
         
            +
            - Redd.LICENSE.md
         
     | 
| 
      
 151 
     | 
    
         
            +
            - RedditKit.LICENSE.md
         
     | 
| 
      
 152 
     | 
    
         
            +
            - lib/redd.rb
         
     | 
| 
      
 153 
     | 
    
         
            +
            - lib/redd/access.rb
         
     | 
| 
      
 154 
     | 
    
         
            +
            - lib/redd/clients/base.rb
         
     | 
| 
      
 155 
     | 
    
         
            +
            - lib/redd/clients/base/account.rb
         
     | 
| 
      
 156 
     | 
    
         
            +
            - lib/redd/clients/base/identity.rb
         
     | 
| 
      
 157 
     | 
    
         
            +
            - lib/redd/clients/base/none.rb
         
     | 
| 
      
 158 
     | 
    
         
            +
            - lib/redd/clients/base/privatemessages.rb
         
     | 
| 
      
 159 
     | 
    
         
            +
            - lib/redd/clients/base/read.rb
         
     | 
| 
      
 160 
     | 
    
         
            +
            - lib/redd/clients/base/stream.rb
         
     | 
| 
      
 161 
     | 
    
         
            +
            - lib/redd/clients/base/submit.rb
         
     | 
| 
      
 162 
     | 
    
         
            +
            - lib/redd/clients/base/utilities.rb
         
     | 
| 
      
 163 
     | 
    
         
            +
            - lib/redd/clients/base/wikiread.rb
         
     | 
| 
      
 164 
     | 
    
         
            +
            - lib/redd/clients/installed.rb
         
     | 
| 
      
 165 
     | 
    
         
            +
            - lib/redd/clients/script.rb
         
     | 
| 
      
 166 
     | 
    
         
            +
            - lib/redd/clients/userless.rb
         
     | 
| 
      
 167 
     | 
    
         
            +
            - lib/redd/clients/web.rb
         
     | 
| 
      
 168 
     | 
    
         
            +
            - lib/redd/error.rb
         
     | 
| 
      
 169 
     | 
    
         
            +
            - lib/redd/objects/base.rb
         
     | 
| 
      
 170 
     | 
    
         
            +
            - lib/redd/objects/comment.rb
         
     | 
| 
      
 171 
     | 
    
         
            +
            - lib/redd/objects/labeled_multi.rb
         
     | 
| 
      
 172 
     | 
    
         
            +
            - lib/redd/objects/listing.rb
         
     | 
| 
      
 173 
     | 
    
         
            +
            - lib/redd/objects/more_comments.rb
         
     | 
| 
      
 174 
     | 
    
         
            +
            - lib/redd/objects/private_message.rb
         
     | 
| 
      
 175 
     | 
    
         
            +
            - lib/redd/objects/submission.rb
         
     | 
| 
      
 176 
     | 
    
         
            +
            - lib/redd/objects/subreddit.rb
         
     | 
| 
      
 177 
     | 
    
         
            +
            - lib/redd/objects/thing.rb
         
     | 
| 
      
 178 
     | 
    
         
            +
            - lib/redd/objects/thing/editable.rb
         
     | 
| 
      
 179 
     | 
    
         
            +
            - lib/redd/objects/thing/hideable.rb
         
     | 
| 
      
 180 
     | 
    
         
            +
            - lib/redd/objects/thing/inboxable.rb
         
     | 
| 
      
 181 
     | 
    
         
            +
            - lib/redd/objects/thing/messageable.rb
         
     | 
| 
      
 182 
     | 
    
         
            +
            - lib/redd/objects/thing/moderatable.rb
         
     | 
| 
      
 183 
     | 
    
         
            +
            - lib/redd/objects/thing/refreshable.rb
         
     | 
| 
      
 184 
     | 
    
         
            +
            - lib/redd/objects/thing/saveable.rb
         
     | 
| 
      
 185 
     | 
    
         
            +
            - lib/redd/objects/thing/votable.rb
         
     | 
| 
      
 186 
     | 
    
         
            +
            - lib/redd/objects/user.rb
         
     | 
| 
      
 187 
     | 
    
         
            +
            - lib/redd/objects/wiki_page.rb
         
     | 
| 
      
 188 
     | 
    
         
            +
            - lib/redd/rate_limit.rb
         
     | 
| 
      
 189 
     | 
    
         
            +
            - lib/redd/response/parse_json.rb
         
     | 
| 
      
 190 
     | 
    
         
            +
            - lib/redd/response/raise_error.rb
         
     | 
| 
      
 191 
     | 
    
         
            +
            - lib/redd/version.rb
         
     | 
| 
      
 192 
     | 
    
         
            +
            - neonredd.gemspec
         
     | 
| 
      
 193 
     | 
    
         
            +
            - spec/redd/objects/base_spec.rb
         
     | 
| 
      
 194 
     | 
    
         
            +
            - spec/redd/response/raise_error_spec.rb
         
     | 
| 
      
 195 
     | 
    
         
            +
            - spec/redd_spec.rb
         
     | 
| 
      
 196 
     | 
    
         
            +
            - spec/spec_helper.rb
         
     | 
| 
      
 197 
     | 
    
         
            +
            homepage: https://gitlab.com/SirNeon/neonredd
         
     | 
| 
      
 198 
     | 
    
         
            +
            licenses:
         
     | 
| 
      
 199 
     | 
    
         
            +
            - MIT
         
     | 
| 
      
 200 
     | 
    
         
            +
            metadata: {}
         
     | 
| 
      
 201 
     | 
    
         
            +
            post_install_message: 
         
     | 
| 
      
 202 
     | 
    
         
            +
            rdoc_options: []
         
     | 
| 
      
 203 
     | 
    
         
            +
            require_paths:
         
     | 
| 
      
 204 
     | 
    
         
            +
            - lib
         
     | 
| 
      
 205 
     | 
    
         
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 206 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 207 
     | 
    
         
            +
              - - ">="
         
     | 
| 
      
 208 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 209 
     | 
    
         
            +
                  version: 2.1.0
         
     | 
| 
      
 210 
     | 
    
         
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 211 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 212 
     | 
    
         
            +
              - - ">="
         
     | 
| 
      
 213 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 214 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 215 
     | 
    
         
            +
            requirements: []
         
     | 
| 
      
 216 
     | 
    
         
            +
            rubyforge_project: 
         
     | 
| 
      
 217 
     | 
    
         
            +
            rubygems_version: 2.2.2
         
     | 
| 
      
 218 
     | 
    
         
            +
            signing_key: 
         
     | 
| 
      
 219 
     | 
    
         
            +
            specification_version: 4
         
     | 
| 
      
 220 
     | 
    
         
            +
            summary: A Reddit API Wrapper for Ruby.
         
     | 
| 
      
 221 
     | 
    
         
            +
            test_files:
         
     | 
| 
      
 222 
     | 
    
         
            +
            - spec/redd/objects/base_spec.rb
         
     | 
| 
      
 223 
     | 
    
         
            +
            - spec/redd/response/raise_error_spec.rb
         
     | 
| 
      
 224 
     | 
    
         
            +
            - spec/redd_spec.rb
         
     | 
| 
      
 225 
     | 
    
         
            +
            - spec/spec_helper.rb
         
     |