wordpress-client 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|