reddit-base 0.6.3 → 0.7.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 +4 -4
- data/README.md +2 -9
- data/lib/reddit/base.rb +0 -1
- data/lib/reddit/base/client.rb +5 -25
- data/lib/reddit/base/version.rb +1 -1
- data/reddit-base.gemspec +2 -3
- metadata +5 -20
- data/lib/reddit/base/mash.rb +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 22cf96662f97d08874eaca33478a1eea082a5b67
|
4
|
+
data.tar.gz: 5bcabd1ae1d1949aaa1bf5faf2b208e334b8343a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1fc583f852ff640970db260a09ffdf54ce52f2891cf738fdec8c3ff2236fafef73c14a48b698e1cd64009c1e140e52176da31bb14b3dcdd068c25d5450c3f144
|
7
|
+
data.tar.gz: b6a25e569393e30b88cb9fa0d3e378b2efd13e25842461589d0347e99832dd62e2b454ea7434faf3c4cef504b63a2cd57c6b1558f796eebd5d78cbfc86c4c931
|
data/README.md
CHANGED
@@ -104,20 +104,13 @@ client.post('/api/upload_sr_img.json', r: SUBREDDIT, file: image_upload, header:
|
|
104
104
|
`Client` returns a type of `Hashie::Mash` so instead of:
|
105
105
|
|
106
106
|
```ruby
|
107
|
-
client.get('/r/AskReddit')['data']['children']
|
107
|
+
client.get('/r/AskReddit').body['data']['children']
|
108
108
|
```
|
109
109
|
|
110
110
|
You can do:
|
111
111
|
|
112
112
|
```ruby
|
113
|
-
client.get('/r/AskReddit').data.children
|
114
|
-
```
|
115
|
-
|
116
|
-
As a bonus it also forwards any missed methods along to its `data` attribute,
|
117
|
-
so you can take it a step further and just do:
|
118
|
-
|
119
|
-
```ruby
|
120
|
-
client.get('/r/AskReddit').children
|
113
|
+
client.get('/r/AskReddit').body.data.children
|
121
114
|
```
|
122
115
|
|
123
116
|
### Caching
|
data/lib/reddit/base.rb
CHANGED
data/lib/reddit/base/client.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'hashie'
|
2
|
-
|
3
1
|
module Reddit
|
4
2
|
module Base
|
5
3
|
# Client that does everything BasicClient does but also attempts to
|
@@ -9,6 +7,7 @@ module Reddit
|
|
9
7
|
super(options)
|
10
8
|
|
11
9
|
connection.builder.insert_before FaradayMiddleware::FollowRedirects, FaradayMiddleware::ParseJson
|
10
|
+
connection.builder.insert_before FaradayMiddleware::ParseJson, FaradayMiddleware::Mashify
|
12
11
|
connection.builder.insert_before FaradayMiddleware::Reddit::Modhash, Faraday::ManualCache, expires_in: 30
|
13
12
|
connection.builder.insert_before Faraday::ManualCache, FaradayMiddleware::Reddit::ForceJson
|
14
13
|
end
|
@@ -16,48 +15,29 @@ module Reddit
|
|
16
15
|
def delete(url, **options)
|
17
16
|
nocache = options.delete(:nocache)
|
18
17
|
|
19
|
-
|
20
|
-
mashify response
|
18
|
+
connection.delete(url, **options)
|
21
19
|
end
|
22
20
|
|
23
21
|
def get(url, **options)
|
24
22
|
nocache = options.delete(:nocache)
|
25
23
|
|
26
|
-
|
24
|
+
connection.get do |req|
|
27
25
|
req.url url
|
28
26
|
req.headers['x-faraday-manual-cache'] = 'NOCACHE' if nocache
|
29
27
|
req.params = options
|
30
28
|
end
|
31
|
-
|
32
|
-
mashify response
|
33
29
|
end
|
34
30
|
|
35
31
|
def post(url, **options)
|
36
32
|
nocache = options.delete(:nocache)
|
37
33
|
|
38
|
-
|
39
|
-
mashify response
|
34
|
+
connection.post(url, **options)
|
40
35
|
end
|
41
36
|
|
42
37
|
def put(url, **options)
|
43
38
|
nocache = options.delete(:nocache)
|
44
39
|
|
45
|
-
|
46
|
-
mashify response
|
47
|
-
end
|
48
|
-
|
49
|
-
def mashify(response)
|
50
|
-
if response.body.is_a? Array
|
51
|
-
response.body.map do |x|
|
52
|
-
output = Mash.new x
|
53
|
-
output.response = response
|
54
|
-
output
|
55
|
-
end
|
56
|
-
else
|
57
|
-
output = Mash.new response.body
|
58
|
-
output.response = response
|
59
|
-
output
|
60
|
-
end
|
40
|
+
connection.put(url, **options)
|
61
41
|
end
|
62
42
|
end
|
63
43
|
end
|
data/lib/reddit/base/version.rb
CHANGED
data/reddit-base.gemspec
CHANGED
@@ -24,7 +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-manual-cache', '~> 0.1
|
28
|
-
spec.add_dependency 'faraday_middleware-reddit', '~> 0.4
|
29
|
-
spec.add_dependency 'hashie', '~> 2.1'
|
27
|
+
spec.add_dependency 'faraday-manual-cache', '~> 0.1'
|
28
|
+
spec.add_dependency 'faraday_middleware-reddit', '~> 0.4'
|
30
29
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: reddit-base
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel O'Brien
|
@@ -44,42 +44,28 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.1
|
47
|
+
version: '0.1'
|
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.1
|
54
|
+
version: '0.1'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: faraday_middleware-reddit
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.4
|
61
|
+
version: '0.4'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.4
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: hashie
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ~>
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '2.1'
|
76
|
-
type: :runtime
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ~>
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '2.1'
|
68
|
+
version: '0.4'
|
83
69
|
description: |-
|
84
70
|
A minimal reddit API client for Ruby that
|
85
71
|
simplifies concerns such as authentication, rate limiting and extracting
|
@@ -99,7 +85,6 @@ files:
|
|
99
85
|
- lib/reddit/base/basic_client.rb
|
100
86
|
- lib/reddit/base/client.rb
|
101
87
|
- lib/reddit/base/helpers.rb
|
102
|
-
- lib/reddit/base/mash.rb
|
103
88
|
- lib/reddit/base/upload_io.rb
|
104
89
|
- lib/reddit/base/version.rb
|
105
90
|
- reddit-base.gemspec
|
data/lib/reddit/base/mash.rb
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
module Reddit
|
2
|
-
module Base
|
3
|
-
class Mash < Hashie::Mash
|
4
|
-
include Hashie::Extensions::DeepFetch
|
5
|
-
|
6
|
-
def method_missing(method, *args, &block)
|
7
|
-
if self['data'] && self['data'].has_key?(method)
|
8
|
-
self['data'].send(method, *args, &block)
|
9
|
-
else
|
10
|
-
super
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
def respond_to?(method)
|
15
|
-
(self.respond_to?(:data) && self.data.respond_to?(method)) || super
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|