reddit-base 0.4.1 → 0.5.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f6ff8043719bfbb7cd23f56630cd6f7784f24573
4
- data.tar.gz: eb4830bb62dd6ceb9f4ecd7507e4e2d8bd073b3e
3
+ metadata.gz: b3050b7e6d6b2a676067d35bc9a5027fc4f27e4b
4
+ data.tar.gz: a88430d27af49335827efe29d4118a8bfb28e0bb
5
5
  SHA512:
6
- metadata.gz: b7a81bb58236bd6364940e7ae8b776b6fd45bd34e3d985c2cce50df053eb36d78de7034b91b376fbac5abe0ba2c93dc0b1a45ad647aeaadeffa4a265e4194f18
7
- data.tar.gz: 5f289caf0c6689e56cb25d76384a0cea42773711d27f8ba5a3df6dbbe1d9c74346b2bb18a0c4f46e7c439a9f7627c2483b57e1f06aea1369ae2f7a2e7b35e9aa
6
+ metadata.gz: e354d7e5b264c18eb5e6a6181ae7023fc42a3571dfc5c2bb59537fc32480a189208c2627221cc452ac8832b82fa5a40e169d3425d15bcc3aea2eb7a0d7695b28
7
+ data.tar.gz: f6e90de8c1dba0a229139ed42207eb6b9a20c3c84c2421a4ebf3529f4bb8f4595263f35b8f29489ab31b9e0ede496743588702dc8c6318acf7bf9fdfbd9f430e
data/README.md CHANGED
@@ -40,9 +40,10 @@ What it Does
40
40
  * Rate limiting.
41
41
  * Modhash handling (reddit's CSRF protection).
42
42
  * JSON coersion.
43
- * Forwarding..
43
+ * Forwarding.
44
44
  * Multipart POST.
45
45
  * Reddit error wrapping.
46
+ * Retries for common errors (e.g. Gateway Timeout).
46
47
 
47
48
  What it Doesn't
48
49
  ---------------
@@ -14,28 +14,39 @@ module Reddit
14
14
  DEFAULT_OPTIONS = {
15
15
  headers: {'User-Agent' => "reddit-base, a reddit client for ruby by /u/dobs (v#{VERSION})"},
16
16
  rem: true,
17
- url: DEFAULT_URL
17
+ retries: 3,
18
+ secure: false
18
19
  }.freeze
19
20
 
20
21
  attr_reader :connection, :options
21
22
 
22
23
  def_delegators :connection, :get, :post, :params, :headers
23
24
 
24
- def initialize(options)
25
- @secure = options.delete(:secure)
26
-
25
+ def build_connection(options)
27
26
  @options = DEFAULT_OPTIONS.merge(options)
28
- @options[:url] = DEFAULT_URL_SECURE if @secure
29
- @connection = Faraday.new(url: @options[:url], headers: @options[:headers]) do |builder|
30
- builder.request :multipart
27
+
28
+ @headers = @options.delete(:headers)
29
+ @retries = @options.delete(:retries)
30
+ @secure = @options.delete(:secure)
31
+
32
+ @url = @options[:url] || (@secure ? DEFAULT_URL_SECURE : DEFAULT_URL)
33
+
34
+ @connection = Faraday.new(url: @url, headers: @headers) do |builder|
35
+ builder.request :multipart
31
36
  builder.request :url_encoded
32
37
  builder.request :reddit_authentication, @options
38
+ builder.request :retry, max: @retries, interval: 2, exceptions: FaradayMiddleware::Reddit::RETRIABLE_ERRORS
33
39
  builder.response :follow_redirects
34
- builder.use :reddit_rate_limit
35
- builder.use :reddit_modhash
40
+ builder.response :reddit_raise_error
41
+ builder.use :reddit_rate_limit
42
+ builder.use :reddit_modhash
36
43
  builder.adapter Faraday.default_adapter
37
44
  end
38
45
  end
46
+
47
+ def initialize(options)
48
+ build_connection(options)
49
+ end
39
50
  end
40
51
  end
41
52
  end
@@ -1,5 +1,5 @@
1
1
  module Reddit
2
2
  module Base
3
- VERSION = '0.4.1'
3
+ VERSION = '0.5.0'
4
4
  end
5
5
  end
data/reddit-base.gemspec CHANGED
@@ -24,6 +24,6 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency "bundler", "~> 1.5"
25
25
  spec.add_development_dependency "rake", '~> 0'
26
26
 
27
- spec.add_dependency 'faraday_middleware-reddit', '0.3.2'
27
+ spec.add_dependency 'faraday_middleware-reddit', '0.4.0'
28
28
  spec.add_dependency 'hashie', '~> 2.1'
29
29
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reddit-base
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel O'Brien
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-28 00:00:00.000000000 Z
11
+ date: 2014-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 0.3.2
47
+ version: 0.4.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: 0.3.2
54
+ version: 0.4.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: hashie
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -109,9 +109,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
109
109
  version: '0'
110
110
  requirements: []
111
111
  rubyforge_project:
112
- rubygems_version: 2.2.2
112
+ rubygems_version: 2.0.3
113
113
  signing_key:
114
114
  specification_version: 4
115
115
  summary: A minimal reddit API client for Ruby.
116
116
  test_files: []
117
- has_rdoc: