pocket-ruby 0.4.0 → 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
  SHA256:
3
- metadata.gz: f83cad90dd723c6fca321e9c1851141faac117ecf3e34dba0880c93494485f15
4
- data.tar.gz: 1458858158eb2ddfbe63bb732bbe07af2d15aeab6fe93f4bd015ab74641fa5b4
3
+ metadata.gz: 4d5d9cc7d714e363b5d185ab6c83f9c60c7650dca3bb80942d490342c1b296f1
4
+ data.tar.gz: 895f07cc0c151ab089fbd02a41776894ce94a4a87f5e35e2f3597f3321d531ab
5
5
  SHA512:
6
- metadata.gz: 7e1b0318db4819e83719397f4cd3c67f2aa66a62d9e0305f93ab782fe5537d1130c0a6298b360e486554826086f9bda48a49c76ddd63923b9f9fdf9960010ba1
7
- data.tar.gz: 355774840e30cd2841360c15725c019afdd2ad284ca1de05f028339369a9761ba83162f17a9c510b2696be5bebf253fae6a682e1e11f851e0e23dd9e3742b2c8
6
+ metadata.gz: 17946cffbd9fdab7faac7e635e2611f0715525f5ad17aa731e0c03c2449bb5f8c1f7bea9d59803bfa81369b55df271cd580106a7aad04ad5cee7d52c0b657e08
7
+ data.tar.gz: 5fcd4d7e3bede834b735ec8efe4e3a024576f358c599f2028e325acf1bd3dc986b1bb60ea42a4c72a886c872c6ff13571fbed792d60326ff28c5495334cae121
data/.yardopts CHANGED
@@ -1,9 +1,6 @@
1
1
  --no-private
2
2
  --protected
3
- --tag format:"Supported formats"
4
- --tag authenticated:"Requires Authentication"
5
- --tag rate_limited:"Rate Limited"
6
3
  --markup markdown
4
+ --output-dir doc/yard
7
5
  -
8
- HISTORY.mkd
9
- LICENSE.mkd
6
+ LICENSE.md
data/CHANGELOG.md CHANGED
@@ -1,6 +1,15 @@
1
1
  ## [Unreleased]
2
2
 
3
- ## [0.3.0] - 2021-04-18
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.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.3.0)
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 (1.6.13)
35
- rack-protection (1.5.5)
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.4)
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.3.6)
64
- rack (~> 1.4)
65
- rack-protection (~> 1.3)
66
- tilt (~> 1.3, >= 1.3.3)
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 (1.4.1)
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 (~> 1.3.3)
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
- namespace :doc do
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
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Pocket
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.0"
3
3
  end
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", "~> 1.3.3")
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")
@@ -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.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-04-18 00:00:00.000000000 Z
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: 1.3.3
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: 1.3.3
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.0.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