reddit-base 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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: