class FaradayMiddleware::Reddit::ForceJson

Request middleware to force reddit to provide JSON responses when available.

For GET requests that means adding ‘.json` to the ends of URLs. For POST requests that means adding `api_type=json` to sent requests.

Public Class Methods

new(app, options = nil) click to toggle source
Calls superclass method
# File lib/faraday_middleware/reddit/use/force_json.rb, line 13
def initialize(app, options = nil)
  super(app)
  @options = options || {}
end

Public Instance Methods

call(env) click to toggle source
# File lib/faraday_middleware/reddit/use/force_json.rb, line 18
def call(env)
  case env[:method].to_s
  when 'get'
    env[:url].path += '.json' unless env[:url].path.end_with?('.json')
  when 'post'
    env[:body] = (env[:body] || '') + 'api_type=json' unless env[:body] && env[:body].include?('api_type')
  end

  @app.call(env)
end