Class: Reddit::Base::Client

Inherits:
BasicClient show all
Defined in:
lib/reddit/base/client.rb

Overview

Client that does everything BasicClient does but also attempts to coerce and parse JSON.

Constant Summary

Constants inherited from BasicClient

BasicClient::DEFAULT_OPTIONS, BasicClient::DEFAULT_URL, BasicClient::DEFAULT_URL_SECURE

Instance Attribute Summary

Attributes inherited from BasicClient

#connection, #options

Instance Method Summary collapse

Methods inherited from BasicClient

#build_connection

Constructor Details

#initialize(options) ⇒ Client

Returns a new instance of Client.



6
7
8
9
10
11
12
13
# File 'lib/reddit/base/client.rb', line 6

def initialize(options)
  super(options)

  connection.builder.insert_before FaradayMiddleware::FollowRedirects, FaradayMiddleware::ParseJson
  connection.builder.insert_before FaradayMiddleware::ParseJson, FaradayMiddleware::Mashify
  connection.builder.insert_before FaradayMiddleware::Reddit::Modhash, Faraday::ManualCache, expires_in: 30
  connection.builder.insert_before Faraday::ManualCache, FaradayMiddleware::Reddit::ForceJson
end

Instance Method Details

#delete(url, options = {}) ⇒ Object



15
16
17
18
19
# File 'lib/reddit/base/client.rb', line 15

def delete(url, options = {})
  nocache = options.delete(:nocache)

  connection.delete(url, options)
end

#get(url, options = {}) ⇒ Object



21
22
23
24
25
26
27
28
29
# File 'lib/reddit/base/client.rb', line 21

def get(url, options = {})
  nocache = options.delete(:nocache)

  connection.get do |req|
    req.url url
    req.headers['x-faraday-manual-cache'] = 'NOCACHE' if nocache
    req.params = options
  end
end

#post(url, options = {}) ⇒ Object



31
32
33
34
35
# File 'lib/reddit/base/client.rb', line 31

def post(url, options = {})
  nocache = options.delete(:nocache)

  connection.post(url, options)
end

#put(url, options = {}) ⇒ Object



37
38
39
40
41
# File 'lib/reddit/base/client.rb', line 37

def put(url, options = {})
  nocache = options.delete(:nocache)

  connection.put(url, options)
end