pocket-ruby 0.4.0 → 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 +4 -4
- data/.yardopts +2 -5
- data/CHANGELOG.md +10 -1
- data/Gemfile.lock +22 -12
- data/Rakefile +3 -14
- data/lib/pocket-ruby.rb +3 -0
- data/lib/pocket/client.rb +8 -0
- data/lib/pocket/image.rb +21 -0
- data/lib/pocket/version.rb +1 -1
- data/pocket-ruby.gemspec +2 -1
- data/test/pocket/client_test.rb +38 -2
- metadata +26 -11
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4d5d9cc7d714e363b5d185ab6c83f9c60c7650dca3bb80942d490342c1b296f1
|
|
4
|
+
data.tar.gz: 895f07cc0c151ab089fbd02a41776894ce94a4a87f5e35e2f3597f3321d531ab
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 17946cffbd9fdab7faac7e635e2611f0715525f5ad17aa731e0c03c2449bb5f8c1f7bea9d59803bfa81369b55df271cd580106a7aad04ad5cee7d52c0b657e08
|
|
7
|
+
data.tar.gz: 5fcd4d7e3bede834b735ec8efe4e3a024576f358c599f2028e325acf1bd3dc986b1bb60ea42a4c72a886c872c6ff13571fbed792d60326ff28c5495334cae121
|
data/.yardopts
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
## [Unreleased]
|
|
2
2
|
|
|
3
|
-
## [0.
|
|
3
|
+
## [0.5.0] - 2021-05-15
|
|
4
|
+
|
|
5
|
+
- Use Sinatra 2. ([#92](https://github.com/turadg/pocket-ruby/pull/92))
|
|
6
|
+
- Add `Pocket::Image` class. ([#90](https://github.com/turadg/pocket-ruby/pull/90))
|
|
7
|
+
- Fix demo server. ([#93](https://github.com/turadg/pocket-ruby/pull/33))
|
|
8
|
+
- Fix docs generation. ([#89](https://github.com/turadg/pocket-ruby/pull/89))
|
|
9
|
+
- Add `unfavorite` operation. ([#87](https://github.com/turadg/pocket-ruby/pull/87))
|
|
10
|
+
- Add `favorite` operation. ([#86](https://github.com/turadg/pocket-ruby/pull/86))
|
|
11
|
+
|
|
12
|
+
## [0.4.0] - 2021-04-18
|
|
4
13
|
|
|
5
14
|
- Fix Faraday error handling. ([#81](https://github.com/turadg/pocket-ruby/pull/81))
|
|
6
15
|
- Don't assume `is_article` is present ([#78](https://github.com/turadg/pocket-ruby/pull/78)).
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
pocket-ruby (0.
|
|
4
|
+
pocket-ruby (0.5.0)
|
|
5
5
|
faraday (>= 1.0)
|
|
6
6
|
faraday_middleware
|
|
7
7
|
multi_json (~> 1.0, >= 1.0.3)
|
|
@@ -15,29 +15,35 @@ GEM
|
|
|
15
15
|
crack (0.4.5)
|
|
16
16
|
rexml
|
|
17
17
|
docile (1.3.5)
|
|
18
|
-
faraday (1.
|
|
18
|
+
faraday (1.4.1)
|
|
19
|
+
faraday-excon (~> 1.1)
|
|
19
20
|
faraday-net_http (~> 1.0)
|
|
21
|
+
faraday-net_http_persistent (~> 1.1)
|
|
20
22
|
multipart-post (>= 1.2, < 3)
|
|
21
|
-
ruby2_keywords
|
|
23
|
+
ruby2_keywords (>= 0.0.4)
|
|
24
|
+
faraday-excon (1.1.0)
|
|
22
25
|
faraday-net_http (1.0.1)
|
|
26
|
+
faraday-net_http_persistent (1.1.0)
|
|
23
27
|
faraday_middleware (1.0.0)
|
|
24
28
|
faraday (~> 1.0)
|
|
25
29
|
hashdiff (1.0.1)
|
|
26
30
|
multi_json (1.15.0)
|
|
27
31
|
multi_xml (0.6.0)
|
|
28
32
|
multipart-post (2.1.1)
|
|
33
|
+
mustermann (1.1.1)
|
|
34
|
+
ruby2_keywords (~> 0.0.1)
|
|
29
35
|
parallel (1.20.1)
|
|
30
36
|
parser (3.0.0.0)
|
|
31
37
|
ast (~> 2.4.1)
|
|
32
38
|
power_assert (2.0.0)
|
|
33
39
|
public_suffix (4.0.6)
|
|
34
|
-
rack (
|
|
35
|
-
rack-protection (1.
|
|
40
|
+
rack (2.2.3)
|
|
41
|
+
rack-protection (2.1.0)
|
|
36
42
|
rack
|
|
37
43
|
rainbow (3.0.0)
|
|
38
44
|
rake (13.0.3)
|
|
39
45
|
regexp_parser (2.1.1)
|
|
40
|
-
rexml (3.2.
|
|
46
|
+
rexml (3.2.5)
|
|
41
47
|
rubocop (1.11.0)
|
|
42
48
|
parallel (~> 1.10)
|
|
43
49
|
parser (>= 3.0.0.0)
|
|
@@ -60,24 +66,27 @@ GEM
|
|
|
60
66
|
simplecov_json_formatter (~> 0.1)
|
|
61
67
|
simplecov-html (0.12.3)
|
|
62
68
|
simplecov_json_formatter (0.1.2)
|
|
63
|
-
sinatra (1.
|
|
64
|
-
|
|
65
|
-
rack
|
|
66
|
-
|
|
69
|
+
sinatra (2.1.0)
|
|
70
|
+
mustermann (~> 1.0)
|
|
71
|
+
rack (~> 2.2)
|
|
72
|
+
rack-protection (= 2.1.0)
|
|
73
|
+
tilt (~> 2.0)
|
|
67
74
|
standard (1.0.4)
|
|
68
75
|
rubocop (= 1.11.0)
|
|
69
76
|
rubocop-performance (= 1.10.1)
|
|
70
77
|
test-unit (3.4.0)
|
|
71
78
|
power_assert
|
|
72
|
-
tilt (
|
|
79
|
+
tilt (2.0.10)
|
|
73
80
|
unicode-display_width (2.0.0)
|
|
74
81
|
webmock (3.12.1)
|
|
75
82
|
addressable (>= 2.3.6)
|
|
76
83
|
crack (>= 0.3.2)
|
|
77
84
|
hashdiff (>= 0.4.0, < 2.0.0)
|
|
85
|
+
yard (0.9.26)
|
|
78
86
|
|
|
79
87
|
PLATFORMS
|
|
80
88
|
x86_64-darwin-19
|
|
89
|
+
x86_64-darwin-20
|
|
81
90
|
x86_64-linux
|
|
82
91
|
|
|
83
92
|
DEPENDENCIES
|
|
@@ -85,10 +94,11 @@ DEPENDENCIES
|
|
|
85
94
|
pocket-ruby!
|
|
86
95
|
rake
|
|
87
96
|
simplecov
|
|
88
|
-
sinatra (~>
|
|
97
|
+
sinatra (~> 2)
|
|
89
98
|
standard
|
|
90
99
|
test-unit
|
|
91
100
|
webmock
|
|
101
|
+
yard
|
|
92
102
|
|
|
93
103
|
BUNDLED WITH
|
|
94
104
|
2.2.8
|
data/Rakefile
CHANGED
|
@@ -10,22 +10,11 @@ Rake::TestTask.new(:test) do |t|
|
|
|
10
10
|
t.test_files = FileList["test/**/*_test.rb"]
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
task default: [:test, :standard]
|
|
13
|
+
task default: [:test, :standard, :yard]
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
begin
|
|
16
16
|
require "yard"
|
|
17
|
+
YARD::Rake::YardocTask.new
|
|
17
18
|
rescue LoadError
|
|
18
19
|
# ignore
|
|
19
|
-
else
|
|
20
|
-
YARD::Rake::YardocTask.new do |task|
|
|
21
|
-
task.files = ["HISTORY.mkd", "LICENSE.mkd", "lib/**/*.rb"]
|
|
22
|
-
task.options = [
|
|
23
|
-
"--protected",
|
|
24
|
-
"--output-dir", "doc/yard",
|
|
25
|
-
"--tag", "format:Supported formats",
|
|
26
|
-
"--tag", "authenticated:Requires Authentication",
|
|
27
|
-
"--tag", "rate_limited:Rate Limited",
|
|
28
|
-
"--markup", "markdown"
|
|
29
|
-
]
|
|
30
|
-
end
|
|
31
20
|
end
|
data/lib/pocket-ruby.rb
CHANGED
|
@@ -5,9 +5,12 @@ require File.expand_path("../pocket/client", __FILE__)
|
|
|
5
5
|
require File.expand_path("../pocket/article", __FILE__)
|
|
6
6
|
require File.expand_path("../pocket/author", __FILE__)
|
|
7
7
|
require File.expand_path("../pocket/domain_metadata", __FILE__)
|
|
8
|
+
require File.expand_path("../pocket/image", __FILE__)
|
|
8
9
|
|
|
9
10
|
module Pocket
|
|
10
11
|
extend Configuration
|
|
12
|
+
extend Connection
|
|
13
|
+
extend OAuth
|
|
11
14
|
|
|
12
15
|
# Alias for Pocket::Client.new
|
|
13
16
|
#
|
data/lib/pocket/client.rb
CHANGED
|
@@ -21,5 +21,13 @@ module Pocket
|
|
|
21
21
|
response = connection.post("/v3/get", params)
|
|
22
22
|
response.body
|
|
23
23
|
end
|
|
24
|
+
|
|
25
|
+
def favorite(item_id)
|
|
26
|
+
modify([action: "favorite", item_id: item_id])
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def unfavorite(item_id)
|
|
30
|
+
modify([action: "unfavorite", item_id: item_id])
|
|
31
|
+
end
|
|
24
32
|
end
|
|
25
33
|
end
|
data/lib/pocket/image.rb
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module Pocket
|
|
2
|
+
class Image
|
|
3
|
+
attr_reader :response
|
|
4
|
+
|
|
5
|
+
def initialize(response)
|
|
6
|
+
@response = response
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def src
|
|
10
|
+
response.fetch("src")
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def caption
|
|
14
|
+
response.fetch("caption")
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def image_id
|
|
18
|
+
Integer(response.fetch("image_id"))
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
data/lib/pocket/version.rb
CHANGED
data/pocket-ruby.gemspec
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
require File.expand_path("../lib/pocket/version", __FILE__)
|
|
2
2
|
|
|
3
3
|
Gem::Specification.new do |s|
|
|
4
|
-
s.add_development_dependency("sinatra", "~>
|
|
4
|
+
s.add_development_dependency("sinatra", "~> 2")
|
|
5
5
|
s.add_development_dependency("multi_xml")
|
|
6
6
|
s.add_development_dependency("rake")
|
|
7
7
|
s.add_development_dependency("standard")
|
|
8
8
|
s.add_development_dependency("test-unit")
|
|
9
9
|
s.add_development_dependency("simplecov")
|
|
10
10
|
s.add_development_dependency("webmock")
|
|
11
|
+
s.add_development_dependency("yard")
|
|
11
12
|
s.add_runtime_dependency("faraday", ">= 1.0")
|
|
12
13
|
s.add_runtime_dependency("faraday_middleware")
|
|
13
14
|
s.add_runtime_dependency("multi_json", ">= 1.0.3", "~> 1.0")
|
data/test/pocket/client_test.rb
CHANGED
|
@@ -7,8 +7,6 @@ class ClientTest < Test::Unit::TestCase
|
|
|
7
7
|
.with(
|
|
8
8
|
body: "{\"detailType\":\"complete\",\"count\":1,\"consumer_key\":null,\"access_token\":\"access_token\"}",
|
|
9
9
|
headers: {
|
|
10
|
-
"Accept" => "*/*",
|
|
11
|
-
"Accept-Encoding" => "gzip;q=1.0,deflate;q=0.6,identity;q=0.3",
|
|
12
10
|
"Content-Type" => "application/json",
|
|
13
11
|
"User-Agent" => "Pocket Ruby Gem #{Pocket::VERSION}"
|
|
14
12
|
}
|
|
@@ -20,4 +18,42 @@ class ClientTest < Test::Unit::TestCase
|
|
|
20
18
|
|
|
21
19
|
assert_equal "body response", result
|
|
22
20
|
end
|
|
21
|
+
|
|
22
|
+
test "favorite" do
|
|
23
|
+
success_response = '{"action_results":[true],"status":1}'
|
|
24
|
+
|
|
25
|
+
stub_request(:post, "https://getpocket.com/v3/send")
|
|
26
|
+
.with(
|
|
27
|
+
body: "{\"actions\":[{\"action\":\"favorite\",\"item_id\":\"123456\"}],\"consumer_key\":null,\"access_token\":\"access_token\"}",
|
|
28
|
+
headers: {
|
|
29
|
+
"Content-Type" => "application/json",
|
|
30
|
+
"User-Agent" => "Pocket Ruby Gem #{Pocket::VERSION}"
|
|
31
|
+
}
|
|
32
|
+
)
|
|
33
|
+
.to_return(status: 200, body: success_response, headers: {})
|
|
34
|
+
client = Pocket.client(access_token: "access_token")
|
|
35
|
+
|
|
36
|
+
result = client.favorite("123456")
|
|
37
|
+
|
|
38
|
+
assert_equal success_response, result
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
test "unfavorite" do
|
|
42
|
+
success_response = '{"action_results":[true],"status":1}'
|
|
43
|
+
|
|
44
|
+
stub_request(:post, "https://getpocket.com/v3/send")
|
|
45
|
+
.with(
|
|
46
|
+
body: "{\"actions\":[{\"action\":\"unfavorite\",\"item_id\":\"123456\"}],\"consumer_key\":null,\"access_token\":\"access_token\"}",
|
|
47
|
+
headers: {
|
|
48
|
+
"Content-Type" => "application/json",
|
|
49
|
+
"User-Agent" => "Pocket Ruby Gem #{Pocket::VERSION}"
|
|
50
|
+
}
|
|
51
|
+
)
|
|
52
|
+
.to_return(status: 200, body: success_response, headers: {})
|
|
53
|
+
client = Pocket.client(access_token: "access_token")
|
|
54
|
+
|
|
55
|
+
result = client.unfavorite("123456")
|
|
56
|
+
|
|
57
|
+
assert_equal success_response, result
|
|
58
|
+
end
|
|
23
59
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pocket-ruby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Turadg Aleahmad
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date: 2021-
|
|
13
|
+
date: 2021-05-15 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: sinatra
|
|
@@ -18,14 +18,14 @@ dependencies:
|
|
|
18
18
|
requirements:
|
|
19
19
|
- - "~>"
|
|
20
20
|
- !ruby/object:Gem::Version
|
|
21
|
-
version:
|
|
21
|
+
version: '2'
|
|
22
22
|
type: :development
|
|
23
23
|
prerelease: false
|
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
25
|
requirements:
|
|
26
26
|
- - "~>"
|
|
27
27
|
- !ruby/object:Gem::Version
|
|
28
|
-
version:
|
|
28
|
+
version: '2'
|
|
29
29
|
- !ruby/object:Gem::Dependency
|
|
30
30
|
name: multi_xml
|
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -110,6 +110,20 @@ dependencies:
|
|
|
110
110
|
- - ">="
|
|
111
111
|
- !ruby/object:Gem::Version
|
|
112
112
|
version: '0'
|
|
113
|
+
- !ruby/object:Gem::Dependency
|
|
114
|
+
name: yard
|
|
115
|
+
requirement: !ruby/object:Gem::Requirement
|
|
116
|
+
requirements:
|
|
117
|
+
- - ">="
|
|
118
|
+
- !ruby/object:Gem::Version
|
|
119
|
+
version: '0'
|
|
120
|
+
type: :development
|
|
121
|
+
prerelease: false
|
|
122
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
123
|
+
requirements:
|
|
124
|
+
- - ">="
|
|
125
|
+
- !ruby/object:Gem::Version
|
|
126
|
+
version: '0'
|
|
113
127
|
- !ruby/object:Gem::Dependency
|
|
114
128
|
name: faraday
|
|
115
129
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -142,22 +156,22 @@ dependencies:
|
|
|
142
156
|
name: multi_json
|
|
143
157
|
requirement: !ruby/object:Gem::Requirement
|
|
144
158
|
requirements:
|
|
145
|
-
- - "~>"
|
|
146
|
-
- !ruby/object:Gem::Version
|
|
147
|
-
version: '1.0'
|
|
148
159
|
- - ">="
|
|
149
160
|
- !ruby/object:Gem::Version
|
|
150
161
|
version: 1.0.3
|
|
162
|
+
- - "~>"
|
|
163
|
+
- !ruby/object:Gem::Version
|
|
164
|
+
version: '1.0'
|
|
151
165
|
type: :runtime
|
|
152
166
|
prerelease: false
|
|
153
167
|
version_requirements: !ruby/object:Gem::Requirement
|
|
154
168
|
requirements:
|
|
155
|
-
- - "~>"
|
|
156
|
-
- !ruby/object:Gem::Version
|
|
157
|
-
version: '1.0'
|
|
158
169
|
- - ">="
|
|
159
170
|
- !ruby/object:Gem::Version
|
|
160
171
|
version: 1.0.3
|
|
172
|
+
- - "~>"
|
|
173
|
+
- !ruby/object:Gem::Version
|
|
174
|
+
version: '1.0'
|
|
161
175
|
description: A Ruby wrapper for the Pocket API v3 (Add, Modify and Retrieve)
|
|
162
176
|
email:
|
|
163
177
|
- turadg@aleahmad.net
|
|
@@ -188,6 +202,7 @@ files:
|
|
|
188
202
|
- lib/pocket/connection.rb
|
|
189
203
|
- lib/pocket/domain_metadata.rb
|
|
190
204
|
- lib/pocket/error.rb
|
|
205
|
+
- lib/pocket/image.rb
|
|
191
206
|
- lib/pocket/oauth.rb
|
|
192
207
|
- lib/pocket/version.rb
|
|
193
208
|
- pocket-ruby.gemspec
|
|
@@ -214,7 +229,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
214
229
|
- !ruby/object:Gem::Version
|
|
215
230
|
version: 1.3.6
|
|
216
231
|
requirements: []
|
|
217
|
-
rubygems_version: 3.
|
|
232
|
+
rubygems_version: 3.1.6
|
|
218
233
|
signing_key:
|
|
219
234
|
specification_version: 4
|
|
220
235
|
summary: Ruby wrapper for the Pocket API v3
|