wordpress-client 0.0.6 → 0.1.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 +15 -0
- data/Rakefile +8 -0
- data/lib/faraday_middleware/gzip.rb +22 -0
- data/lib/wordpress-client.rb +2 -4
- data/lib/wordpress/api/comments.rb +6 -6
- 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 +6 -6
- data/lib/wordpress/api/utils.rb +12 -14
- data/lib/wordpress/base.rb +24 -1
- data/lib/wordpress/client.rb +29 -31
- data/lib/wordpress/configuration.rb +1 -2
- data/lib/wordpress/errors.rb +10 -0
- data/lib/wordpress/object/array.rb +29 -0
- data/lib/wordpress/object/base.rb +94 -0
- data/lib/wordpress/object/comment.rb +11 -0
- data/lib/wordpress/object/comments.rb +8 -0
- data/lib/wordpress/object/meta_object.rb +62 -0
- data/lib/wordpress/{post.rb → object/post.rb} +6 -8
- data/lib/wordpress/object/posts.rb +8 -0
- data/lib/wordpress/object/site.rb +8 -0
- data/lib/wordpress/{test.rb → object/test.rb} +3 -3
- data/lib/wordpress/object/user.rb +8 -0
- data/lib/wordpress/ostruct.rb +28 -36
- data/lib/wordpress/request.rb +24 -0
- data/lib/wordpress/version.rb +2 -2
- data/spec/spec_helper.rb +13 -0
- data/spec/wordpress-client_spec.rb +20 -2
- data/spec/wordpress/base_spec.rb +54 -11
- data/spec/wordpress/client_spec.rb +50 -0
- data/spec/wordpress/object/base_spec.rb +56 -0
- data/spec/wordpress/ostruct_spec.rb +15 -9
- data/spec/wordpress/request_spec.rb +5 -0
- data/wordpress-client.gemspec +4 -3
- metadata +42 -38
- data/lib/wordpress/array.rb +0 -30
- data/lib/wordpress/comment.rb +0 -14
- data/lib/wordpress/comment_array.rb +0 -10
- data/lib/wordpress/like_array.rb +0 -9
- data/lib/wordpress/like_result.rb +0 -9
- data/lib/wordpress/object.rb +0 -34
- data/lib/wordpress/post_array.rb +0 -10
- data/lib/wordpress/site.rb +0 -9
- data/lib/wordpress/user.rb +0 -9
- data/spec/wordpress/object_spec.rb +0 -31
@@ -1,4 +1,54 @@
|
|
1
1
|
require "spec_helper"
|
2
|
+
require 'faraday'
|
3
|
+
require 'wordpress/client'
|
4
|
+
require 'wordpress/request'
|
2
5
|
|
3
6
|
describe Wordpress::Client do
|
7
|
+
subject :client do
|
8
|
+
Wordpress::Client.new
|
9
|
+
end
|
10
|
+
|
11
|
+
context do
|
12
|
+
it "should call get request" do
|
13
|
+
req = Faraday::Request.new
|
14
|
+
req.stub(:headers).and_return({})
|
15
|
+
req.stub(:options).and_return({})
|
16
|
+
req.should_receive(:url).with(anything)
|
17
|
+
req.should_receive(:params=).with(anything)
|
18
|
+
Faraday::Connection.any_instance.should_receive(:get).and_yield(req).and_return(Faraday::Response.new)
|
19
|
+
|
20
|
+
request = Wordpress::Request.new(:get, 'url', {})
|
21
|
+
client.call(request)
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should call post request" do
|
25
|
+
req = Faraday::Request.new
|
26
|
+
req.stub(:headers).and_return({})
|
27
|
+
req.stub(:options).and_return({})
|
28
|
+
req.should_receive(:url).with(anything)
|
29
|
+
req.should_receive(:params=).with(anything)
|
30
|
+
req.should_receive(:body=).with(anything)
|
31
|
+
Faraday::Connection.any_instance.should_receive(:post).and_yield(req).and_return(Faraday::Response.new)
|
32
|
+
|
33
|
+
request = Wordpress::Request.new(:post, 'url', {}, {})
|
34
|
+
client.call(request)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
context "with bearer_token_request option" do
|
39
|
+
it "should call get request" do
|
40
|
+
req = Faraday::Request.new
|
41
|
+
req.stub(:headers).and_return({})
|
42
|
+
req.headers.should_receive(:[]=).with('Authorization', 'Bearer something').once
|
43
|
+
req.headers.should_receive(:[]=).with(any_args).at_least(:once)
|
44
|
+
req.stub(:options).and_return({})
|
45
|
+
req.should_receive(:url).with(anything)
|
46
|
+
req.should_receive(:params=).with(anything)
|
47
|
+
Faraday::Connection.any_instance.should_receive(:get).and_yield(req).and_return(Faraday::Response.new)
|
48
|
+
|
49
|
+
request = Wordpress::Request.new(:get, 'url', {})
|
50
|
+
client.access_token = 'something'
|
51
|
+
client.call(request, :bearer_token_request => true)
|
52
|
+
end
|
53
|
+
end
|
4
54
|
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require 'wordpress/object/base'
|
3
|
+
|
4
|
+
describe Wordpress::Object::Base do
|
5
|
+
describe "attr_parameter class method" do
|
6
|
+
it "should add parameter" do
|
7
|
+
klass = Class.new(Wordpress::Object::Base)
|
8
|
+
klass.send(:options).should_receive(:[]=).with('id', anything)
|
9
|
+
klass.class_eval do
|
10
|
+
attr_parameter :id
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should keep parameters per class" do
|
15
|
+
klass = Class.new(Wordpress::Object::Base)
|
16
|
+
klass.class_eval do
|
17
|
+
attr_parameter :id1
|
18
|
+
end
|
19
|
+
klass.options.should include('id1')
|
20
|
+
klass.options.should_not include('id2')
|
21
|
+
|
22
|
+
klass = Class.new(Wordpress::Object::Base)
|
23
|
+
klass.class_eval do
|
24
|
+
attr_parameter :id2
|
25
|
+
end
|
26
|
+
klass.options.should_not include('id1')
|
27
|
+
klass.options.should include('id2')
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
subject :base do
|
32
|
+
Class.new(Wordpress::Object::Base) {
|
33
|
+
attr_parameter :foo
|
34
|
+
}.new
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should delegate [] method to get_object" do
|
38
|
+
base.should_receive(:get_object).with('foo').once
|
39
|
+
base[:foo]
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should get object by getter" do
|
43
|
+
base.should_receive(:get_object).with('foo').once
|
44
|
+
base.foo
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should return nil for unknown method" do
|
48
|
+
base[:bar].should be_nil
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should raise no method error for unknown method" do
|
52
|
+
expect {
|
53
|
+
base.bar
|
54
|
+
}.to raise_error(NoMethodError)
|
55
|
+
end
|
56
|
+
end
|
@@ -2,18 +2,17 @@ require "spec_helper"
|
|
2
2
|
require 'wordpress/ostruct'
|
3
3
|
|
4
4
|
describe Wordpress::OpenStruct do
|
5
|
-
it 'should
|
5
|
+
it 'should not respond to known keys' do
|
6
6
|
o = Wordpress::OpenStruct.new({:a => 1})
|
7
7
|
o.should respond_to :a
|
8
|
-
o.should_not respond_to :b
|
9
8
|
end
|
10
9
|
|
11
10
|
it 'should not respond to unknown keys' do
|
12
|
-
o = Wordpress::OpenStruct.new({})
|
13
|
-
o.should_not respond_to :
|
14
|
-
|
15
|
-
o.
|
16
|
-
}.
|
11
|
+
o = Wordpress::OpenStruct.new({:a => 1})
|
12
|
+
o.should_not respond_to :b
|
13
|
+
expect {
|
14
|
+
o.b
|
15
|
+
}.to raise_error(NoMethodError)
|
17
16
|
end
|
18
17
|
|
19
18
|
it 'should work with accessor' do
|
@@ -25,8 +24,15 @@ describe Wordpress::OpenStruct do
|
|
25
24
|
|
26
25
|
it 'should parse hash recursively' do
|
27
26
|
o = Wordpress::OpenStruct.new({:a => {:b => {:c => :d}}})
|
28
|
-
o.a.should
|
29
|
-
o.a.b.should
|
27
|
+
o.a.should be_an(Wordpress::OpenStruct)
|
28
|
+
o.a.b.should be_an(Wordpress::OpenStruct)
|
30
29
|
o.a.b.c.should == :d
|
31
30
|
end
|
31
|
+
|
32
|
+
it 'should assign hash' do
|
33
|
+
o = Wordpress::OpenStruct.new({:a => 1})
|
34
|
+
o.a.should == 1
|
35
|
+
o.assign({:a => 2})
|
36
|
+
o.a.should == 2
|
37
|
+
end
|
32
38
|
end
|
data/wordpress-client.gemspec
CHANGED
@@ -16,10 +16,11 @@ Gem::Specification.new do |s|
|
|
16
16
|
s.require_paths = ["lib"]
|
17
17
|
s.license = "MIT"
|
18
18
|
|
19
|
-
s.add_runtime_dependency '
|
20
|
-
s.add_runtime_dependency 'logger', '
|
21
|
-
s.add_runtime_dependency 'multi_json', '
|
19
|
+
s.add_runtime_dependency 'faraday', '~> 0.8.8'
|
20
|
+
s.add_runtime_dependency 'logger', '>= 1.2'
|
21
|
+
s.add_runtime_dependency 'multi_json', '>= 1.7'
|
22
22
|
|
23
23
|
s.add_development_dependency 'rspec'
|
24
|
+
s.add_development_dependency 'simplecov'
|
24
25
|
s.add_development_dependency 'rake'
|
25
26
|
end
|
metadata
CHANGED
@@ -1,68 +1,60 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wordpress-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Daisuke Taniwaki
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-12-26 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
14
|
+
name: faraday
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.8.
|
19
|
+
version: 0.8.8
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0.8.
|
26
|
+
version: 0.8.8
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: logger
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - ! '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '1.2'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - ! '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '1.2'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: multi_json
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - ! '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '1.7'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - ! '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '1.7'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rspec
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ! '>='
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,20 @@ dependencies:
|
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
|
65
|
+
requirements:
|
66
|
+
- - ! '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: simplecov
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ! '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
79
|
requirements:
|
75
80
|
- - ! '>='
|
76
81
|
- !ruby/object:Gem::Version
|
@@ -78,7 +83,6 @@ dependencies:
|
|
78
83
|
- !ruby/object:Gem::Dependency
|
79
84
|
name: rake
|
80
85
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
86
|
requirements:
|
83
87
|
- - ! '>='
|
84
88
|
- !ruby/object:Gem::Version
|
@@ -86,7 +90,6 @@ dependencies:
|
|
86
90
|
type: :development
|
87
91
|
prerelease: false
|
88
92
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
93
|
requirements:
|
91
94
|
- - ! '>='
|
92
95
|
- !ruby/object:Gem::Version
|
@@ -104,6 +107,7 @@ files:
|
|
104
107
|
- LICENSE
|
105
108
|
- README.md
|
106
109
|
- Rakefile
|
110
|
+
- lib/faraday_middleware/gzip.rb
|
107
111
|
- lib/wordpress-client.rb
|
108
112
|
- lib/wordpress/api.rb
|
109
113
|
- lib/wordpress/api/comments.rb
|
@@ -112,60 +116,60 @@ files:
|
|
112
116
|
- lib/wordpress/api/sites.rb
|
113
117
|
- lib/wordpress/api/tests.rb
|
114
118
|
- lib/wordpress/api/utils.rb
|
115
|
-
- lib/wordpress/array.rb
|
116
119
|
- lib/wordpress/base.rb
|
117
120
|
- lib/wordpress/client.rb
|
118
|
-
- lib/wordpress/comment.rb
|
119
|
-
- lib/wordpress/comment_array.rb
|
120
121
|
- lib/wordpress/configuration.rb
|
121
122
|
- lib/wordpress/errors.rb
|
122
|
-
- lib/wordpress/
|
123
|
-
- lib/wordpress/
|
124
|
-
- lib/wordpress/object.rb
|
123
|
+
- lib/wordpress/object/array.rb
|
124
|
+
- lib/wordpress/object/base.rb
|
125
|
+
- lib/wordpress/object/comment.rb
|
126
|
+
- lib/wordpress/object/comments.rb
|
127
|
+
- lib/wordpress/object/meta_object.rb
|
128
|
+
- lib/wordpress/object/post.rb
|
129
|
+
- lib/wordpress/object/posts.rb
|
130
|
+
- lib/wordpress/object/site.rb
|
131
|
+
- lib/wordpress/object/test.rb
|
132
|
+
- lib/wordpress/object/user.rb
|
125
133
|
- lib/wordpress/ostruct.rb
|
126
|
-
- lib/wordpress/
|
127
|
-
- lib/wordpress/post_array.rb
|
128
|
-
- lib/wordpress/site.rb
|
129
|
-
- lib/wordpress/test.rb
|
130
|
-
- lib/wordpress/user.rb
|
134
|
+
- lib/wordpress/request.rb
|
131
135
|
- lib/wordpress/version.rb
|
132
136
|
- spec/spec_helper.rb
|
133
137
|
- spec/wordpress-client_spec.rb
|
134
138
|
- spec/wordpress/base_spec.rb
|
135
139
|
- spec/wordpress/client_spec.rb
|
136
|
-
- spec/wordpress/
|
140
|
+
- spec/wordpress/object/base_spec.rb
|
137
141
|
- spec/wordpress/ostruct_spec.rb
|
142
|
+
- spec/wordpress/request_spec.rb
|
138
143
|
- wordpress-client.gemspec
|
139
144
|
homepage: https://github.com/dtaniwaki/wordpress-client
|
140
145
|
licenses:
|
141
146
|
- MIT
|
147
|
+
metadata: {}
|
142
148
|
post_install_message:
|
143
149
|
rdoc_options: []
|
144
150
|
require_paths:
|
145
151
|
- lib
|
146
152
|
required_ruby_version: !ruby/object:Gem::Requirement
|
147
|
-
none: false
|
148
153
|
requirements:
|
149
154
|
- - ! '>='
|
150
155
|
- !ruby/object:Gem::Version
|
151
156
|
version: '0'
|
152
157
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
158
|
requirements:
|
155
159
|
- - ! '>='
|
156
160
|
- !ruby/object:Gem::Version
|
157
161
|
version: '0'
|
158
162
|
requirements: []
|
159
163
|
rubyforge_project:
|
160
|
-
rubygems_version: 1.8
|
164
|
+
rubygems_version: 2.1.8
|
161
165
|
signing_key:
|
162
|
-
specification_version:
|
166
|
+
specification_version: 4
|
163
167
|
summary: Wordpress API Wrapper.
|
164
168
|
test_files:
|
165
169
|
- spec/spec_helper.rb
|
166
170
|
- spec/wordpress-client_spec.rb
|
167
171
|
- spec/wordpress/base_spec.rb
|
168
172
|
- spec/wordpress/client_spec.rb
|
169
|
-
- spec/wordpress/
|
173
|
+
- spec/wordpress/object/base_spec.rb
|
170
174
|
- spec/wordpress/ostruct_spec.rb
|
171
|
-
|
175
|
+
- spec/wordpress/request_spec.rb
|
data/lib/wordpress/array.rb
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
require 'wordpress/object'
|
2
|
-
|
3
|
-
module Wordpress
|
4
|
-
class Array < Wordpress::Object
|
5
|
-
def_delegators :@posts, :method_missing, :respond_to_missing?
|
6
|
-
class << self
|
7
|
-
def array_delegator(name)
|
8
|
-
class_eval <<-EOS
|
9
|
-
private
|
10
|
-
|
11
|
-
def array_delegator
|
12
|
-
#{name}
|
13
|
-
end
|
14
|
-
EOS
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
def respond_to_missing?(method_name, include_private = false)
|
19
|
-
array_delegator.respod_to?(method_name, include_private)
|
20
|
-
end
|
21
|
-
|
22
|
-
def method_missing(method_name, *arguments, &block)
|
23
|
-
if array_delegator.respond_to?(method_name)
|
24
|
-
array_delegator.send(method_name, *arguments, &block)
|
25
|
-
else
|
26
|
-
super
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
data/lib/wordpress/comment.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
require 'wordpress/object'
|
2
|
-
require 'wordpress/user'
|
3
|
-
require 'wordpress/post'
|
4
|
-
require 'wordpress/ostruct'
|
5
|
-
|
6
|
-
module Wordpress
|
7
|
-
class Comment < Wordpress::Object
|
8
|
-
attr_parameter :id, :url, :short_url, :content, :status, :parent, :string
|
9
|
-
attr_parameter :date, :as => lambda { |t| DateTime.iso8601(t) }
|
10
|
-
attr_parameter :post, :as => Wordpress::Post
|
11
|
-
attr_parameter :author, :as => Wordpress::User
|
12
|
-
attr_parameter :meta, :as => Wordpress::OpenStruct
|
13
|
-
end
|
14
|
-
end
|
@@ -1,10 +0,0 @@
|
|
1
|
-
require 'wordpress/array'
|
2
|
-
require 'wordpress/comment'
|
3
|
-
|
4
|
-
module Wordpress
|
5
|
-
class CommentArray < Wordpress::Array
|
6
|
-
attr_parameter :found
|
7
|
-
attr_parameter :comments, :as => lambda { |array| array.nil? ? [] : array.map { |v| Wordpress::Comment.new(v) } }
|
8
|
-
array_delegator :@comments
|
9
|
-
end
|
10
|
-
end
|
data/lib/wordpress/like_array.rb
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
require 'wordpress/array'
|
2
|
-
|
3
|
-
module Wordpress
|
4
|
-
class LikeArray < Wordpress::Array
|
5
|
-
attr_parameter :found, :i_like
|
6
|
-
attr_parameter :likes, :as => lambda { |array| array.nil? ? [] : array.map { |v| Wordpress::User.new(v) } }
|
7
|
-
array_delegator :@likes
|
8
|
-
end
|
9
|
-
end
|