redd 0.7.7 → 0.7.8
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 +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
|