wordpress-client 0.1.3 → 0.1.4
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 +8 -8
- data/{CONTRIBUTING → CONTRIBUTING.md} +0 -0
- data/README.md +56 -3
- data/lib/wordpress/api.rb +2 -0
- data/lib/wordpress/api/comments.rb +7 -7
- data/lib/wordpress/api/me.rb +2 -2
- data/lib/wordpress/api/posts.rb +12 -12
- data/lib/wordpress/api/sites.rb +1 -1
- data/lib/wordpress/api/tests.rb +8 -2
- data/lib/wordpress/api/utils.rb +10 -4
- data/lib/wordpress/client.rb +2 -2
- data/lib/wordpress/errors.rb +16 -5
- data/lib/wordpress/ostruct.rb +2 -2
- data/lib/wordpress/version.rb +1 -1
- data/spec/wordpress/api_spec.rb +45 -0
- data/spec/wordpress/client_spec.rb +14 -1
- data/spec/wordpress/ostruct_spec.rb +20 -0
- data/spec/wordpress/request_spec.rb +10 -0
- metadata +5 -3
checksums.yaml
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
!binary "U0hBMQ==":
|
|
3
3
|
metadata.gz: !binary |-
|
|
4
|
-
|
|
4
|
+
Y2Y4ZTExNTEwZTYwOGFhYTEyMmFkNGNiNDVmYmIyM2QyM2QwMjZkMw==
|
|
5
5
|
data.tar.gz: !binary |-
|
|
6
|
-
|
|
6
|
+
MzgwMjkyOWQ4OTUxODQ4M2YyMWQ5MzBmZWViZjc3YWU0NjE3OTFkOQ==
|
|
7
7
|
SHA512:
|
|
8
8
|
metadata.gz: !binary |-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
MTFiZWQxODg0YWNlMzU4NjA0M2ZhYTQ2ZWYyNDFlZmJmM2RhYjMxZDQ2NWUw
|
|
10
|
+
NjgyNjQ3YTJmOWM2ZDE0ODEwZWFhOGEyNDgxZmY2OGM2NGQ5YjVhYTUwZjlh
|
|
11
|
+
N2VjZjg0MGU1ODJjNjkyMzhjYTU0NGQxYjMzMTg5ZDQ5YTBmYmI=
|
|
12
12
|
data.tar.gz: !binary |-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
NDRiODQ4ZmQ2NWMzZjQyZDBkNGJkOTQxMDUyMGJlZTJjZTVjMDI3ODA3ZTAy
|
|
14
|
+
ZDY2ZDI3MzU5NDE2OGEyYzZmZGVlZGI1MzdhYTUwZTI1NjA0NmJkYWIzZjcy
|
|
15
|
+
MGM2NjVlZjRiNmZjN2I5OTE4ZGYwMDY2NTAzMzBjNGMzM2VjZDQ=
|
|
File without changes
|
data/README.md
CHANGED
|
@@ -1,4 +1,57 @@
|
|
|
1
|
-
wordpress
|
|
2
|
-
=========
|
|
1
|
+
# wordpress-client
|
|
3
2
|
|
|
4
|
-
Wordpress API Wrapper
|
|
3
|
+
wordpress-client is a [Wordpress Rest API Wrapper](http://developer.wordpress.com/docs/api/).
|
|
4
|
+
|
|
5
|
+
## Getting started
|
|
6
|
+
|
|
7
|
+
Add wordpress-client to your `Gemfile` and `bundle install`:
|
|
8
|
+
|
|
9
|
+
```ruby
|
|
10
|
+
gem 'wordpress-client'
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
```ruby
|
|
16
|
+
require 'wordpress-client'
|
|
17
|
+
|
|
18
|
+
# Get user by access token
|
|
19
|
+
client = Wordpress.client
|
|
20
|
+
client.access_token = 'YOUR_ACCESS_TOKEN' # if you have any
|
|
21
|
+
user = client.me
|
|
22
|
+
site = user.site
|
|
23
|
+
posts = site.posts
|
|
24
|
+
|
|
25
|
+
# Get posts of a specific domain without access token
|
|
26
|
+
client = Wordpress::Client.new
|
|
27
|
+
posts = client.get_posts('wordpress-site-domain')
|
|
28
|
+
posts.each do |post|
|
|
29
|
+
# Do something
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Get all the posts of a specific domain without access token
|
|
33
|
+
client = Wordpress::Client.new
|
|
34
|
+
page = 1
|
|
35
|
+
loop do
|
|
36
|
+
posts = client.get_posts('wordpress-site-domain', :page => page)
|
|
37
|
+
posts.each do |post|
|
|
38
|
+
# Do something
|
|
39
|
+
end
|
|
40
|
+
break if posts.size == 0
|
|
41
|
+
page += 1
|
|
42
|
+
end
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## TODO
|
|
46
|
+
- Complete spec test
|
|
47
|
+
- Support all the apis
|
|
48
|
+
- Support create/update/delete from Wordpress::Object
|
|
49
|
+
- Add oauth method
|
|
50
|
+
|
|
51
|
+
## Contributing
|
|
52
|
+
|
|
53
|
+
See the [contributing guide](https://github.com/dtaniwaki/wordpress-client/blob/master/CONTRIBUTING.md).
|
|
54
|
+
|
|
55
|
+
## Copyright
|
|
56
|
+
|
|
57
|
+
Copyright (c) 2010-2013 Daisuke Taniwaki. See LICENSE for details.
|
data/lib/wordpress/api.rb
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
require 'wordpress/api/me'
|
|
2
2
|
require 'wordpress/api/sites'
|
|
3
3
|
require 'wordpress/api/posts'
|
|
4
|
+
require 'wordpress/api/comments'
|
|
4
5
|
require 'wordpress/api/tests'
|
|
5
6
|
|
|
6
7
|
module Wordpress
|
|
@@ -10,6 +11,7 @@ module Wordpress
|
|
|
10
11
|
include Wordpress::API::Me
|
|
11
12
|
include Wordpress::API::Sites
|
|
12
13
|
include Wordpress::API::Posts
|
|
14
|
+
include Wordpress::API::Comments
|
|
13
15
|
include Wordpress::API::Tests
|
|
14
16
|
end
|
|
15
17
|
end
|
|
@@ -2,36 +2,36 @@ require 'wordpress/api/utils'
|
|
|
2
2
|
|
|
3
3
|
module Wordpress
|
|
4
4
|
module API
|
|
5
|
-
module
|
|
5
|
+
module Comments
|
|
6
6
|
include Wordpress::API::Utils
|
|
7
7
|
|
|
8
8
|
def get_comments(site, params = {})
|
|
9
|
-
validate_params! params, [:context, :type, :status]
|
|
9
|
+
validate_params! params, [:context, :type, :status] + default_keys + search_keys
|
|
10
10
|
object_from_response Wordpress::Object::Comments.new(self), Wordpress::Request.new(:get, "/rest/v1/sites/#{site}/comments", params)
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
def get_post_comments(site, post_id, params = {})
|
|
14
|
-
validate_params! params, [:context]
|
|
14
|
+
validate_params! params, [:context] + default_keys
|
|
15
15
|
object_from_response Wordpress::Object::Comments.new(self), Wordpress::Request.new(:get, "/rest/v1/sites/#{site}/posts/#{post_id}/replies", params)
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
def get_comment(site, comment_id, params = {})
|
|
19
|
-
validate_params! params, [:context]
|
|
19
|
+
validate_params! params, [:context] + default_keys
|
|
20
20
|
object_from_response Wordpress::Object::Comment.new(self), Wordpress::Request.new(:get, "/rest/v1/sites/#{site}/comments/#{comment_id}", params)
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
def update_comment(site, comment_id, data, params = {})
|
|
24
|
-
validate_params! params, [:context]
|
|
24
|
+
validate_params! params, [:context] + default_keys
|
|
25
25
|
object_from_response Wordpress::Object::Comment.new(self), Wordpress::Request.new(:post, "/rest/v1/sites/#{site}/comments/#{comment_id}", params, data)
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def create_comment(site, post_id, data, params = {})
|
|
29
|
-
validate_params! params, [:context]
|
|
29
|
+
validate_params! params, [:context] + default_keys
|
|
30
30
|
object_from_response Wordpress::Object::Comment.new(self), Wordpress::Request.new(:post, "/rest/v1/sites/#{site}/posts/#{post_id}/replies/new", params, data)
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
def delete_comment(site, comment_id, params = {})
|
|
34
|
-
validate_params! params, [:context]
|
|
34
|
+
validate_params! params, [:context] + default_keys
|
|
35
35
|
object_from_response Wordpress::Object::Comment.new(self), Wordpress::Request.new(:post, "/rest/v1/sites/#{site}/comments/#{comment_id}/delete", params)
|
|
36
36
|
end
|
|
37
37
|
end
|
data/lib/wordpress/api/me.rb
CHANGED
|
@@ -6,12 +6,12 @@ module Wordpress
|
|
|
6
6
|
include Wordpress::API::Utils
|
|
7
7
|
|
|
8
8
|
def me(params = {})
|
|
9
|
-
validate_params! params
|
|
9
|
+
validate_params! params, default_keys
|
|
10
10
|
object_from_response Wordpress::Object::User.new(self), Wordpress::Request.new(:get, "/rest/v1/me", params)
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
def get_my_likes(params = {})
|
|
14
|
-
validate_params! params
|
|
14
|
+
validate_params! params, default_keys
|
|
15
15
|
object_from_response Wordpress::OpenStruct.new, Wordpress::Request.new(:get, "/rest/v1/me/likes", params)
|
|
16
16
|
end
|
|
17
17
|
end
|
data/lib/wordpress/api/posts.rb
CHANGED
|
@@ -6,62 +6,62 @@ module Wordpress
|
|
|
6
6
|
include Wordpress::API::Utils
|
|
7
7
|
|
|
8
8
|
def get_posts(site, params = {})
|
|
9
|
-
validate_params! params, [:context, :tag, :category, :type, :status, :sticky, :author, :search, :meta_key, :meta_value]
|
|
9
|
+
validate_params! params, [:context, :tag, :category, :type, :status, :sticky, :author, :search, :meta_key, :meta_value] + default_keys + search_keys
|
|
10
10
|
object_from_response Wordpress::Object::Posts.new(self), Wordpress::Request.new(:get, "/rest/v1/sites/#{site}/posts", params)
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
def get_post(site, post_id, params = {})
|
|
14
|
-
validate_params! params, [:context]
|
|
14
|
+
validate_params! params, [:context] + default_keys
|
|
15
15
|
object_from_response Wordpress::Object::Post.new(self), Wordpress::Request.new(:get, "/rest/v1/sites/#{site}/posts/#{post_id}", params)
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
def update_post(site, post_id, data, params = {})
|
|
19
|
-
validate_params! params, [:context]
|
|
19
|
+
validate_params! params, [:context] + default_keys
|
|
20
20
|
object_from_response Wordpress::Object::Post.new(self), Wordpress::Request.new(:post, "/rest/v1/sites/#{site}/posts/#{post_id}", params, data)
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
def get_post_by_slug(site, post_slug, params = {})
|
|
24
|
-
validate_params! params, [:context]
|
|
24
|
+
validate_params! params, [:context] + default_keys
|
|
25
25
|
object_from_response Wordpress::Object::Post.new(self), Wordpress::Request.new(:get, "/rest/v1/sites/#{site}/posts/slug:#{post_slug}", params)
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def create_post(site, post_id, data, params = {})
|
|
29
|
-
validate_params! params, [:context]
|
|
29
|
+
validate_params! params, [:context], default_keys
|
|
30
30
|
object_from_response Wordpress::Object::Post.new(self), Wordpress::Request.new(:post, "/rest/v1/sites/#{site}/posts/new", params, data)
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
def delete_post(site, post_id, params = {})
|
|
34
|
-
validate_params! params, [:context]
|
|
34
|
+
validate_params! params, [:context], default_keys
|
|
35
35
|
object_from_response Wordpress::Object::Post.new(self), Wordpress::Request.new(:post, "/rest/v1/sites/#{site}/posts/#{post_id}/delete", params)
|
|
36
36
|
end
|
|
37
37
|
|
|
38
38
|
def get_likes(site, post_id, params = {})
|
|
39
|
-
validate_params! params
|
|
39
|
+
validate_params! params, default_keys
|
|
40
40
|
object_from_response Wordpress::OpenStruct.new, Wordpress::Request.new(:get, "/rest/v1/sites/#{site}/posts/#{post_id}/likes", params)
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
def create_like(site, post_id, params = {})
|
|
44
|
-
validate_params! params
|
|
44
|
+
validate_params! params, default_keys
|
|
45
45
|
object_from_response Wordpress::OpenStruct.new, Wordpress::Request.new(:post, "/rest/v1/sites/#{site}/posts/#{post_id}/likes/new", params)
|
|
46
46
|
end
|
|
47
47
|
|
|
48
48
|
def delete_like(site, post_id, params = {})
|
|
49
|
-
validate_params! params
|
|
49
|
+
validate_params! params, default_keys
|
|
50
50
|
object_from_response Wordpress::OpenStruct.new, Wordpress::Request.new(:post, "/rest/v1/sites/#{site}/posts/#{post_id}/likes/mine/delete", params)
|
|
51
51
|
end
|
|
52
52
|
|
|
53
53
|
def get_like_status(site, post_id, params = {})
|
|
54
|
-
validate_params! params
|
|
54
|
+
validate_params! params, default_keys
|
|
55
55
|
object_from_response Wordpress::OpenStruct.new, Wordpress::Request.new(:get, "/rest/v1/sites/#{site}/posts/#{post_id}/likes/mine", params)
|
|
56
56
|
end
|
|
57
57
|
|
|
58
58
|
def get_reblog_status(site, post_id, params = {})
|
|
59
|
-
validate_params! params
|
|
59
|
+
validate_params! params, default_keys
|
|
60
60
|
object_from_response Wordpress::OpenStruct.new, Wordpress::Request.new(:get, "/rest/v1/sites/#{site}/posts/#{post_id}/reblogs/mine", params)
|
|
61
61
|
end
|
|
62
62
|
|
|
63
63
|
def create_reblog(site, post_id, data, params = {})
|
|
64
|
-
validate_params! params
|
|
64
|
+
validate_params! params, default_keys
|
|
65
65
|
object_from_response Wordpress::OpenStruct.new, Wordpress::Request.new(:post, "/rest/v1/sites/#{site}/posts/#{post_id}/reblogs/new", params, data)
|
|
66
66
|
end
|
|
67
67
|
end
|
data/lib/wordpress/api/sites.rb
CHANGED
|
@@ -6,7 +6,7 @@ module Wordpress
|
|
|
6
6
|
include Wordpress::API::Utils
|
|
7
7
|
|
|
8
8
|
def get_site(site, params = {})
|
|
9
|
-
validate_params! params
|
|
9
|
+
validate_params! params, default_keys
|
|
10
10
|
object_from_response Wordpress::Object::Site.new(self), Wordpress::Request.new(:get, "/rest/v1/sites/#{site}", params)
|
|
11
11
|
end
|
|
12
12
|
end
|
data/lib/wordpress/api/tests.rb
CHANGED
|
@@ -6,14 +6,20 @@ module Wordpress
|
|
|
6
6
|
include Wordpress::API::Utils
|
|
7
7
|
|
|
8
8
|
def get_test(id, params = {})
|
|
9
|
-
validate_params! params,
|
|
9
|
+
validate_params! params, test_keys
|
|
10
10
|
object_from_response Wordpress::Object::Test.new(self), Wordpress::Request.new(:get, "/rest/v1/test/#{id}", params)
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
def post_test(id, params = {})
|
|
14
|
-
validate_params! params,
|
|
14
|
+
validate_params! params, test_keys
|
|
15
15
|
object_from_response Wordpress::Object::Test.new(self), Wordpress::Request.new(:post, "/rest/v1/test/#{id}", params)
|
|
16
16
|
end
|
|
17
|
+
|
|
18
|
+
private
|
|
19
|
+
|
|
20
|
+
def test_keys
|
|
21
|
+
[:id, :default_string, :default_int, :boolean_whitelist_defaults_to_false, :boolean_whitelist_defaults_to_true, :string_whitelist_defaults_to_foo, :url, :datetime]
|
|
22
|
+
end
|
|
17
23
|
end
|
|
18
24
|
end
|
|
19
25
|
end
|
data/lib/wordpress/api/utils.rb
CHANGED
|
@@ -26,11 +26,17 @@ module Wordpress
|
|
|
26
26
|
|
|
27
27
|
private
|
|
28
28
|
|
|
29
|
-
def
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
def default_keys
|
|
30
|
+
[:http_envelope, :pretty, :callback]
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def search_keys
|
|
34
|
+
[:number, :offset, :page, :order, :order_by, :after, :before]
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def validate_params!(params, valid_keys = [])
|
|
32
38
|
params.keys.each do |key|
|
|
33
|
-
raise
|
|
39
|
+
raise Wordpress::ArgumentError, "#{key} is not valid for this method." unless valid_keys.include?(key)
|
|
34
40
|
end
|
|
35
41
|
end
|
|
36
42
|
end
|
data/lib/wordpress/client.rb
CHANGED
|
@@ -27,7 +27,7 @@ module Wordpress
|
|
|
27
27
|
req.url request.url
|
|
28
28
|
req.params = request.params
|
|
29
29
|
req.body = request.body.to_s
|
|
30
|
-
if options
|
|
30
|
+
if options[:bearer_token_request] && !bearer_auth_header.nil?
|
|
31
31
|
req.headers['Authorization'] = bearer_auth_header
|
|
32
32
|
end
|
|
33
33
|
req.headers['Accept-Encoding'] = 'gzip,deflate'
|
|
@@ -44,7 +44,7 @@ module Wordpress
|
|
|
44
44
|
private
|
|
45
45
|
|
|
46
46
|
def bearer_auth_header
|
|
47
|
-
"Bearer #{access_token}"
|
|
47
|
+
access_token.nil? ? nil : "Bearer #{access_token}"
|
|
48
48
|
end
|
|
49
49
|
end
|
|
50
50
|
end
|
data/lib/wordpress/errors.rb
CHANGED
|
@@ -1,14 +1,25 @@
|
|
|
1
1
|
module Wordpress
|
|
2
|
-
class
|
|
3
|
-
attr_reader :
|
|
2
|
+
class Error < ::StandardError
|
|
3
|
+
attr_reader :message
|
|
4
4
|
|
|
5
|
-
def initialize(
|
|
6
|
-
@
|
|
7
|
-
@message = json['message']
|
|
5
|
+
def initialize(message = nil)
|
|
6
|
+
@message = message
|
|
8
7
|
end
|
|
9
8
|
|
|
10
9
|
def to_s
|
|
11
10
|
@message
|
|
12
11
|
end
|
|
13
12
|
end
|
|
13
|
+
|
|
14
|
+
class ResponseError < Error
|
|
15
|
+
attr_reader :error
|
|
16
|
+
|
|
17
|
+
def initialize(json = {})
|
|
18
|
+
@error = json['error'] || 'unknown'
|
|
19
|
+
super json['message']
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
class ArgumentError < Error
|
|
24
|
+
end
|
|
14
25
|
end
|
data/lib/wordpress/ostruct.rb
CHANGED
|
@@ -2,7 +2,7 @@ require 'wordpress/base'
|
|
|
2
2
|
|
|
3
3
|
module Wordpress
|
|
4
4
|
class OpenStruct < Base
|
|
5
|
-
def_delegators :@hash, :map, :each
|
|
5
|
+
def_delegators :@hash, :map, :each, :any?, :all?, :size
|
|
6
6
|
|
|
7
7
|
def initialize(hash = {})
|
|
8
8
|
assign(hash)
|
|
@@ -19,7 +19,7 @@ module Wordpress
|
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
def to_s
|
|
22
|
-
"#<#{self.class.name} #{map
|
|
22
|
+
"#<#{self.class.name} #{@hash.keys.map{ |k| "#{k}=#{send(k).to_s}" }.join(" ")}>"
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
def [](k)
|
data/lib/wordpress/version.rb
CHANGED
|
@@ -2,7 +2,7 @@ module Wordpress
|
|
|
2
2
|
class Version
|
|
3
3
|
MAJOR = 0 unless defined? Wordpress::Version::MAJOR
|
|
4
4
|
MINOR = 1 unless defined? Wordpress::Version::MINOR
|
|
5
|
-
PATCH =
|
|
5
|
+
PATCH = 4 unless defined? Wordpress::Version::PATCH
|
|
6
6
|
PRE = nil unless defined? Wordpress::Version::PRE
|
|
7
7
|
|
|
8
8
|
class << self
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
require 'wordpress/api'
|
|
3
|
+
|
|
4
|
+
describe Wordpress::API do
|
|
5
|
+
let :client do
|
|
6
|
+
Wordpress::Client.new
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
# Get methods
|
|
10
|
+
{
|
|
11
|
+
'me' => {:args => [], :method => :get, :url => '/rest/v1/me', :response => Wordpress::Object::User},
|
|
12
|
+
'get_my_likes' => {:args => [], :method => :get, :url => '/rest/v1/me/likes', :response => Wordpress::OpenStruct},
|
|
13
|
+
'get_posts' => {:args => ['sitename'], :method => :get, :url => '/rest/v1/sites/sitename/posts', :response => Wordpress::Object::Posts},
|
|
14
|
+
'get_post' => {:args => ['sitename', 1], :method => :get, :url => '/rest/v1/sites/sitename/posts/1', :response => Wordpress::Object::Post},
|
|
15
|
+
'get_post_by_slug' => {:args => ['sitename', 1], :method => :get, :url => '/rest/v1/sites/sitename/posts/slug:1', :response => Wordpress::Object::Post},
|
|
16
|
+
'get_likes' => {:args => ['sitename', 1], :method => :get, :url => '/rest/v1/sites/sitename/posts/1/likes', :response => Wordpress::OpenStruct},
|
|
17
|
+
'get_like_status' => {:args => ['sitename', 1], :method => :get, :url => '/rest/v1/sites/sitename/posts/1/likes/mine', :response => Wordpress::OpenStruct},
|
|
18
|
+
'get_reblog_status' => {:args => ['sitename', 1], :method => :get, :url => '/rest/v1/sites/sitename/posts/1/reblogs/mine', :response => Wordpress::OpenStruct},
|
|
19
|
+
'get_site' => {:args => ['sitename'], :method => :get, :url => '/rest/v1/sites/sitename', :response => Wordpress::Object::Site},
|
|
20
|
+
'get_comments' => {:args => ['sitename'], :method => :get, :url => '/rest/v1/sites/sitename/comments', :response => Wordpress::Object::Comments},
|
|
21
|
+
'get_post_comments' => {:args => ['sitename', 1], :method => :get, :url => '/rest/v1/sites/sitename/posts/1/replies', :response => Wordpress::Object::Comments},
|
|
22
|
+
'get_comment' => {:args => ['sitename', 1], :method => :get, :url => '/rest/v1/sites/sitename/comments/1', :response => Wordpress::Object::Comment},
|
|
23
|
+
'get_test' => {:args => [1], :method => :get, :url => '/rest/v1/test/1', :response => Wordpress::Object::Test},
|
|
24
|
+
}.each do |method, params|
|
|
25
|
+
describe "\##{method}" do
|
|
26
|
+
it "should return #{params[:response].name}" do
|
|
27
|
+
request = Wordpress::Request.new(params[:method], params[:url])
|
|
28
|
+
client.stub(:call).and_return('{}')
|
|
29
|
+
client.should_receive(:call).with do |*args|
|
|
30
|
+
req = args.shift
|
|
31
|
+
req.method.should == request.method
|
|
32
|
+
req.url.should == request.url
|
|
33
|
+
end
|
|
34
|
+
obj = client.send(method, *params[:args])
|
|
35
|
+
obj.should be_an(params[:response])
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
it "should raise error with invalid parameter" do
|
|
39
|
+
expect {
|
|
40
|
+
obj = client.send(method, *params[:args], :invalid_key => 1)
|
|
41
|
+
}.to raise_error(Wordpress::ArgumentError)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -36,7 +36,7 @@ describe Wordpress::Client do
|
|
|
36
36
|
end
|
|
37
37
|
|
|
38
38
|
context "with bearer_token_request option" do
|
|
39
|
-
it "should call get request" do
|
|
39
|
+
it "should call get request with Authorization header" do
|
|
40
40
|
req = Faraday::Request.new
|
|
41
41
|
req.stub(:headers).and_return({})
|
|
42
42
|
req.headers.should_receive(:[]=).with('Authorization', 'Bearer something').once
|
|
@@ -50,5 +50,18 @@ describe Wordpress::Client do
|
|
|
50
50
|
client.access_token = 'something'
|
|
51
51
|
client.call(request, :bearer_token_request => true)
|
|
52
52
|
end
|
|
53
|
+
|
|
54
|
+
it "should call get request without Authorization header for no access_token" do
|
|
55
|
+
req = Faraday::Request.new
|
|
56
|
+
req.stub(:headers).and_return({})
|
|
57
|
+
req.headers.should_not_receive(:[]=).with('Authorization', 'Bearer something')
|
|
58
|
+
req.stub(:options).and_return({})
|
|
59
|
+
req.should_receive(:url).with(anything)
|
|
60
|
+
req.should_receive(:params=).with(anything)
|
|
61
|
+
Faraday::Connection.any_instance.should_receive(:get).and_yield(req).and_return(Faraday::Response.new)
|
|
62
|
+
|
|
63
|
+
request = Wordpress::Request.new(:get, 'url', {})
|
|
64
|
+
client.call(request, :bearer_token_request => true)
|
|
65
|
+
end
|
|
53
66
|
end
|
|
54
67
|
end
|
|
@@ -22,6 +22,16 @@ describe Wordpress::OpenStruct do
|
|
|
22
22
|
o.a.should == 2
|
|
23
23
|
end
|
|
24
24
|
|
|
25
|
+
it 'should work with []' do
|
|
26
|
+
o = Wordpress::OpenStruct.new({:a => 1})
|
|
27
|
+
o[:a].should == 1
|
|
28
|
+
o[:a] = 2
|
|
29
|
+
o[:a].should == 2
|
|
30
|
+
o['a'].should == 2
|
|
31
|
+
o['a'] = 3
|
|
32
|
+
o['a'].should == 3
|
|
33
|
+
end
|
|
34
|
+
|
|
25
35
|
it 'should parse hash recursively' do
|
|
26
36
|
o = Wordpress::OpenStruct.new({:a => {:b => {:c => :d}}})
|
|
27
37
|
o.a.should be_an(Wordpress::OpenStruct)
|
|
@@ -35,4 +45,14 @@ describe Wordpress::OpenStruct do
|
|
|
35
45
|
o.assign({:a => 2})
|
|
36
46
|
o.a.should == 2
|
|
37
47
|
end
|
|
48
|
+
|
|
49
|
+
it 'should return custom string for to_s method' do
|
|
50
|
+
o = Wordpress::OpenStruct.new({:a => {:b => 1}})
|
|
51
|
+
o.to_s.should == "#<Wordpress::OpenStruct a=#<Wordpress::OpenStruct b=1>>"
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
it 'should return original hash' do
|
|
55
|
+
o = Wordpress::OpenStruct.new({:a => 1})
|
|
56
|
+
o.to_hash.should == {'a' => 1}
|
|
57
|
+
end
|
|
38
58
|
end
|
|
@@ -2,4 +2,14 @@ require "spec_helper"
|
|
|
2
2
|
require 'wordpress/request'
|
|
3
3
|
|
|
4
4
|
describe Wordpress::Request do
|
|
5
|
+
let :request do
|
|
6
|
+
Wordpress::Request.new(:get, 'url')
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it "should deep clone" do
|
|
10
|
+
new_request = request.dup
|
|
11
|
+
new_request.should_not equal request
|
|
12
|
+
new_request.params.should_not equal request.params
|
|
13
|
+
new_request.body.should_not equal request.body
|
|
14
|
+
end
|
|
5
15
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: wordpress-client
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Daisuke Taniwaki
|
|
@@ -102,7 +102,7 @@ extensions: []
|
|
|
102
102
|
extra_rdoc_files: []
|
|
103
103
|
files:
|
|
104
104
|
- .gitignore
|
|
105
|
-
- CONTRIBUTING
|
|
105
|
+
- CONTRIBUTING.md
|
|
106
106
|
- Gemfile
|
|
107
107
|
- LICENSE
|
|
108
108
|
- README.md
|
|
@@ -135,6 +135,7 @@ files:
|
|
|
135
135
|
- lib/wordpress/version.rb
|
|
136
136
|
- spec/spec_helper.rb
|
|
137
137
|
- spec/wordpress-client_spec.rb
|
|
138
|
+
- spec/wordpress/api_spec.rb
|
|
138
139
|
- spec/wordpress/base_spec.rb
|
|
139
140
|
- spec/wordpress/client_spec.rb
|
|
140
141
|
- spec/wordpress/object/base_spec.rb
|
|
@@ -161,13 +162,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
161
162
|
version: '0'
|
|
162
163
|
requirements: []
|
|
163
164
|
rubyforge_project:
|
|
164
|
-
rubygems_version: 2.1.
|
|
165
|
+
rubygems_version: 2.1.11
|
|
165
166
|
signing_key:
|
|
166
167
|
specification_version: 4
|
|
167
168
|
summary: Wordpress API Wrapper.
|
|
168
169
|
test_files:
|
|
169
170
|
- spec/spec_helper.rb
|
|
170
171
|
- spec/wordpress-client_spec.rb
|
|
172
|
+
- spec/wordpress/api_spec.rb
|
|
171
173
|
- spec/wordpress/base_spec.rb
|
|
172
174
|
- spec/wordpress/client_spec.rb
|
|
173
175
|
- spec/wordpress/object/base_spec.rb
|