redd 0.7.7 → 0.7.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -0
- data/lib/redd/access.rb +1 -1
- data/lib/redd/clients/base/read.rb +1 -1
- data/lib/redd/clients/script.rb +3 -0
- data/lib/redd/error.rb +14 -2
- data/lib/redd/response/parse_json.rb +4 -3
- data/lib/redd/version.rb +1 -1
- data/redd.gemspec +1 -1
- metadata +5 -7
- data/spec/redd/response/parse_json_spec.rb +0 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1ed185709399c5e0bf0984f8323b710b977b8b24
|
4
|
+
data.tar.gz: 51d437dfc4f6d2477e33db31e5ef3c340f36e34c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 772c63c331ccfdb175ab743f36a994147d949f2cbc16179eede313b87985f2a0ed450498f6a170d6e69bda234cc610a23c4dd1ffc0b05aaa3908fc1b97e24bce
|
7
|
+
data.tar.gz: 86330606ecb14b4ec43d834af0f48bc47495761a9d3c5ae30e5411422ec7c10d0ddf66cd1dc8c8f404370d7e9dce5f12789399d53fc31a469fc71e95768a336e
|
data/README.md
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
<a href="https://rubygems.org/gems/redd"><img src="http://img.shields.io/gem/v/redd.svg?style=flat-square" alt="Gem Version"></a>
|
4
4
|
<a href="https://travis-ci.org/avidw/redd"><img src="http://img.shields.io/travis/avidw/redd.svg?style=flat-square" alt="Build Status"></a>
|
5
5
|
<a href="https://rubygems.org/gems/redd"><img src="http://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="MIT License"></a>
|
6
|
+
<a href="https://gitter.im/avidw/redd?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=body_badge"><img src="https://img.shields.io/badge/GITTER-JOIN%20CHAT%20%E2%86%92-1dce73.svg?style=flat-square" alt="Chat on Gitter"></a>
|
6
7
|
</p>
|
7
8
|
|
8
9
|
**redd** is an API wrapper for [reddit](http://www.reddit.com/dev/api) written in ruby that focuses on being consistent and extensible. **Check out the latest documentation on [RubyDoc](http://www.rubydoc.info/github/avidw/redd/master/frames/Redd.it).**
|
@@ -88,6 +89,7 @@ hot.each { |link| puts "#{link.title} by /u/#{link.author}" }
|
|
88
89
|
# Streaming
|
89
90
|
def stream_all!
|
90
91
|
r.stream :get_comments, "all" do |comment|
|
92
|
+
reddit.refresh_access! if reddit.access.expired? # for :web
|
91
93
|
comment.reply("World!") if comment.body == "Hello?"
|
92
94
|
end
|
93
95
|
end
|
data/lib/redd/access.rb
CHANGED
@@ -81,7 +81,7 @@ module Redd
|
|
81
81
|
# @param params [Hash] A list of params to send with the request.
|
82
82
|
# @option params [String] :after Return results after the given
|
83
83
|
# fullname.
|
84
|
-
# @option params [String :before Return results before the given
|
84
|
+
# @option params [String] :before Return results before the given
|
85
85
|
# fullname.
|
86
86
|
# @option params [Integer] :count The number of items already seen in
|
87
87
|
# the listing.
|
data/lib/redd/clients/script.rb
CHANGED
data/lib/redd/error.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
module Redd
|
2
2
|
# An error from reddit
|
3
|
+
# TODO: Move Error to an Errors module in next minor version?
|
3
4
|
class Error < StandardError
|
4
5
|
attr_reader :code
|
5
6
|
attr_reader :headers
|
@@ -27,7 +28,7 @@ module Redd
|
|
27
28
|
when /wrong_password/i then InvalidCredentials
|
28
29
|
when /bad_captcha/i then InvalidCaptcha
|
29
30
|
when /ratelimit/i then RateLimited
|
30
|
-
when /quota_filled/i then
|
31
|
+
when /quota_filled/i then QuotaFilled
|
31
32
|
when /bad_css_name/i then InvalidClassName
|
32
33
|
when /too_old/i then Archived
|
33
34
|
when /too_much_flair_css/i then TooManyClassNames
|
@@ -104,6 +105,9 @@ module Redd
|
|
104
105
|
# You don't have the proper scope to perform this request.
|
105
106
|
InvalidScope = Class.new(Error)
|
106
107
|
|
108
|
+
# Looks like we didn't get a JSON response. Raise this error.
|
109
|
+
JSONError = Class.new(Error)
|
110
|
+
|
107
111
|
# Four, oh four! The thing you're looking for wasn't found.
|
108
112
|
NotFound = Class.new(Error)
|
109
113
|
|
@@ -121,8 +125,16 @@ module Redd
|
|
121
125
|
attr_reader :time
|
122
126
|
|
123
127
|
def initialize(env)
|
124
|
-
@time = env[:body][:json][:ratelimit] || 60*60
|
125
128
|
super
|
129
|
+
@time = env[:body][:json][:ratelimit] || 3600
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
# This seems to be a more OAuth2-focused error.
|
134
|
+
class QuotaFilled < RateLimited
|
135
|
+
def initialize(env)
|
136
|
+
super
|
137
|
+
@time = 3600
|
126
138
|
end
|
127
139
|
end
|
128
140
|
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require "faraday/response"
|
2
|
+
require_relative "../error"
|
2
3
|
|
3
4
|
module Redd
|
4
5
|
# The module that contains middleware that alters the Faraday response.
|
@@ -7,10 +8,10 @@ module Redd
|
|
7
8
|
class ParseJson < Faraday::Response::Middleware
|
8
9
|
dependency "multi_json"
|
9
10
|
|
10
|
-
def
|
11
|
-
MultiJson.load(body, symbolize_keys: true)
|
11
|
+
def on_complete(env)
|
12
|
+
env[:body] = MultiJson.load(env[:body], symbolize_keys: true)
|
12
13
|
rescue MultiJson::ParseError
|
13
|
-
body
|
14
|
+
raise JSONError.new(env), env[:body]
|
14
15
|
end
|
15
16
|
end
|
16
17
|
end
|
data/lib/redd/version.rb
CHANGED
data/redd.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(/^(test|spec|features)\//)
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_development_dependency "bundler", "~> 1.
|
21
|
+
spec.add_development_dependency "bundler", "~> 1.10.6"
|
22
22
|
spec.add_development_dependency "rake", "~> 10.4.2"
|
23
23
|
spec.add_development_dependency "rspec", "~> 3.2.0"
|
24
24
|
spec.add_development_dependency "vcr", "~> 2.9.3"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Avinash Dwarapu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04
|
11
|
+
date: 2015-09-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: 1.10.6
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.
|
26
|
+
version: 1.10.6
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -194,7 +194,6 @@ files:
|
|
194
194
|
- lib/redd/version.rb
|
195
195
|
- redd.gemspec
|
196
196
|
- spec/redd/objects/base_spec.rb
|
197
|
-
- spec/redd/response/parse_json_spec.rb
|
198
197
|
- spec/redd/response/raise_error_spec.rb
|
199
198
|
- spec/redd_spec.rb
|
200
199
|
- spec/spec_helper.rb
|
@@ -218,13 +217,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
218
217
|
version: '0'
|
219
218
|
requirements: []
|
220
219
|
rubyforge_project:
|
221
|
-
rubygems_version: 2.4.
|
220
|
+
rubygems_version: 2.4.7
|
222
221
|
signing_key:
|
223
222
|
specification_version: 4
|
224
223
|
summary: A Reddit API Wrapper for Ruby.
|
225
224
|
test_files:
|
226
225
|
- spec/redd/objects/base_spec.rb
|
227
|
-
- spec/redd/response/parse_json_spec.rb
|
228
226
|
- spec/redd/response/raise_error_spec.rb
|
229
227
|
- spec/redd_spec.rb
|
230
228
|
- spec/spec_helper.rb
|
@@ -1,12 +0,0 @@
|
|
1
|
-
RSpec.describe Redd::Response::ParseJson do
|
2
|
-
it "parses valid JSON" do
|
3
|
-
parsed = subject.parse('{"hello": "world", "foo": {"bar": 2}}')
|
4
|
-
expect(parsed).to eq(hello: "world", foo: {bar: 2})
|
5
|
-
end
|
6
|
-
|
7
|
-
it "returns the JSON string if it's invalid" do
|
8
|
-
error = "comparision with banana failed."
|
9
|
-
parsed = subject.parse(error)
|
10
|
-
expect(parsed).to eq(error)
|
11
|
-
end
|
12
|
-
end
|