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 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