rest-core 0.2.3 → 0.3.0.pre.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +8 -4
- data/CHANGES.md +20 -0
- data/Gemfile +4 -3
- data/README.md +8 -8
- data/Rakefile +42 -2
- data/example/rails2/Gemfile +13 -0
- data/example/rails2/README +4 -0
- data/example/rails2/Rakefile +11 -0
- data/example/rails2/app/controllers/application_controller.rb +119 -0
- data/example/rails2/app/views/application/helper.html.erb +1 -0
- data/example/rails2/config/boot.rb +130 -0
- data/example/rails2/config/environment.rb +15 -0
- data/example/rails2/config/environments/development.rb +17 -0
- data/example/rails2/config/environments/production.rb +28 -0
- data/example/rails2/config/environments/test.rb +30 -0
- data/example/rails2/config/initializers/cookie_verification_secret.rb +7 -0
- data/example/rails2/config/initializers/new_rails_defaults.rb +21 -0
- data/example/rails2/config/initializers/session_store.rb +15 -0
- data/example/rails2/config/preinitializer.rb +23 -0
- data/example/rails2/config/rest-core.yaml +12 -0
- data/example/rails2/config/routes.rb +43 -0
- data/example/rails2/log +0 -0
- data/example/rails2/test/functional/application_controller_test.rb +183 -0
- data/example/rails2/test/test_helper.rb +18 -0
- data/example/rails2/test/unit/rails_util_test.rb +44 -0
- data/example/rails3/Gemfile +13 -0
- data/example/rails3/README +4 -0
- data/example/rails3/Rakefile +7 -0
- data/example/rails3/app/controllers/application_controller.rb +119 -0
- data/example/rails3/app/views/application/helper.html.erb +1 -0
- data/example/rails3/config/application.rb +23 -0
- data/example/rails3/config/environment.rb +5 -0
- data/example/rails3/config/environments/development.rb +26 -0
- data/example/rails3/config/environments/production.rb +49 -0
- data/example/rails3/config/environments/test.rb +30 -0
- data/example/rails3/config/initializers/secret_token.rb +7 -0
- data/example/rails3/config/initializers/session_store.rb +8 -0
- data/example/rails3/config/rest-core.yaml +12 -0
- data/example/rails3/config/routes.rb +5 -0
- data/example/rails3/config.ru +4 -0
- data/example/rails3/test/functional/application_controller_test.rb +183 -0
- data/example/rails3/test/test_helper.rb +18 -0
- data/example/rails3/test/unit/rails_util_test.rb +44 -0
- data/example/sinatra/config.ru +16 -0
- data/lib/rest-core/app/ask.rb +0 -2
- data/lib/rest-core/client/facebook/rails_util.rb +342 -0
- data/lib/rest-core/client/{rest-graph.rb → facebook.rb} +21 -28
- data/lib/rest-core/client/github.rb +1 -1
- data/lib/rest-core/client/linkedin.rb +3 -1
- data/lib/rest-core/client/twitter.rb +2 -2
- data/lib/rest-core/client.rb +2 -2
- data/lib/rest-core/client_oauth1.rb +3 -3
- data/lib/rest-core/middleware/oauth2_query.rb +3 -3
- data/{test/common.rb → lib/rest-core/test.rb} +7 -3
- data/lib/rest-core/util/config.rb +22 -17
- data/lib/rest-core/util/vendor.rb +31 -0
- data/lib/rest-core/version.rb +1 -1
- data/lib/rest-core.rb +5 -0
- data/rest-core.gemspec +135 -108
- data/test/client/facebook/config/rest-core.yaml +8 -0
- data/test/{test_api.rb → client/facebook/test_api.rb} +22 -23
- data/test/{test_cache.rb → client/facebook/test_cache.rb} +4 -8
- data/test/{test_default.rb → client/facebook/test_default.rb} +6 -10
- data/test/client/facebook/test_error.rb +65 -0
- data/test/{test_handler.rb → client/facebook/test_handler.rb} +12 -15
- data/test/{test_load_config.rb → client/facebook/test_load_config.rb} +6 -9
- data/test/{test_misc.rb → client/facebook/test_misc.rb} +15 -18
- data/test/{test_oauth.rb → client/facebook/test_oauth.rb} +4 -8
- data/test/{test_old.rb → client/facebook/test_old.rb} +16 -18
- data/test/{test_page.rb → client/facebook/test_page.rb} +5 -9
- data/test/{test_parse.rb → client/facebook/test_parse.rb} +13 -16
- data/test/client/facebook/test_serialize.rb +42 -0
- data/test/client/facebook/test_timeout.rb +22 -0
- data/test/test_oauth1_header.rb +1 -5
- metadata +99 -58
- data/test/config/rest-core.yaml +0 -7
- data/test/test_error.rb +0 -66
- data/test/test_serialize.rb +0 -44
- data/test/test_timeout.rb +0 -25
@@ -1,14 +1,10 @@
|
|
1
1
|
|
2
|
-
|
3
|
-
require_relative 'common'
|
4
|
-
else
|
5
|
-
require File.dirname(__FILE__) + '/common'
|
6
|
-
end
|
2
|
+
require 'rest-core/test'
|
7
3
|
|
8
|
-
describe
|
4
|
+
describe RestCore::Facebook do
|
9
5
|
|
10
6
|
should 'return nil if parse error, but not when call data directly' do
|
11
|
-
rg =
|
7
|
+
rg = RestCore::Facebook.new
|
12
8
|
rg.parse_cookies!({}).should == nil
|
13
9
|
rg.data .should == {}
|
14
10
|
end
|
@@ -17,7 +13,7 @@ describe RestGraph do
|
|
17
13
|
algorithm = 'HMAC-SHA256'
|
18
14
|
user = '{"country"=>"us", "age"=>{"min"=>21}}'
|
19
15
|
data = {'algorithm' => algorithm, 'user' => user}
|
20
|
-
rg =
|
16
|
+
rg = RestCore::Facebook.new(:data => data, :secret => 'secret')
|
21
17
|
sig = rg.send(:calculate_sig, data)
|
22
18
|
rg.parse_fbs!("\"#{rg.fbs}\"").should == data.merge('sig' => sig)
|
23
19
|
end
|
@@ -35,7 +31,7 @@ describe RestGraph do
|
|
35
31
|
"__utma=123; __utmz=456.utmcsr=(d)|utmccn=(d)|utmcmd=(n); " \
|
36
32
|
"fbs_#{app_id}=#{fbs}"
|
37
33
|
|
38
|
-
rg =
|
34
|
+
rg = RestCore::Facebook.new(:app_id => app_id, :secret => secret)
|
39
35
|
rg.parse_rack_env!('HTTP_COOKIE' => http_cookie).
|
40
36
|
should.kind_of?(token ? Hash : NilClass)
|
41
37
|
rg.access_token.should == token
|
@@ -59,20 +55,20 @@ describe RestGraph do
|
|
59
55
|
end
|
60
56
|
|
61
57
|
should 'not pass if there is no secret, prevent from forgery' do
|
62
|
-
rg =
|
58
|
+
rg = RestCore::Facebook.new
|
63
59
|
rg.parse_fbs!('"feed=me&sig=bddd192cf27f22c05f61c8bea24fa4b7"').
|
64
60
|
should == nil
|
65
61
|
end
|
66
62
|
|
67
63
|
should 'parse json correctly' do
|
68
|
-
rg =
|
64
|
+
rg = RestCore::Facebook.new
|
69
65
|
|
70
66
|
rg.parse_json!('bad json') .should == nil
|
71
67
|
rg.parse_json!('{"no":"sig"}').should == nil
|
72
68
|
rg.parse_json!('{"feed":"me","sig":"bddd192cf27f22c05f61c8bea24fa4b7"}').
|
73
69
|
should == nil
|
74
70
|
|
75
|
-
rg =
|
71
|
+
rg = RestCore::Facebook.new(:secret => 'bread')
|
76
72
|
rg.parse_json!('{"feed":"me","sig":"20393e7823730308938a86ecf1c88b14"}').
|
77
73
|
should == {'feed' => 'me', 'sig' => "20393e7823730308938a86ecf1c88b14"}
|
78
74
|
rg.data.empty?.should == false
|
@@ -90,7 +86,7 @@ describe RestGraph do
|
|
90
86
|
sig = OpenSSL::HMAC.digest('sha256', secret, json_encoded)
|
91
87
|
signed_request = "#{encode[sig]}.#{json_encoded}"
|
92
88
|
|
93
|
-
rg =
|
89
|
+
rg = RestCore::Facebook.new(:secret => secret)
|
94
90
|
rg.parse_signed_request!(signed_request)
|
95
91
|
rg.data['ooh'].should == 'dir'
|
96
92
|
rg.data['moo'].should == 'bar'
|
@@ -108,12 +104,13 @@ describe RestGraph do
|
|
108
104
|
end
|
109
105
|
|
110
106
|
should 'generate correct fbs with correct sig' do
|
111
|
-
|
107
|
+
RestCore::Facebook.new(:access_token => 'fake', :secret => 's').fbs.
|
108
|
+
should.eq \
|
112
109
|
"access_token=fake&sig=#{Digest::MD5.hexdigest('access_token=fakes')}"
|
113
110
|
end
|
114
111
|
|
115
112
|
should 'parse fbs from facebook response which lacks sig...' do
|
116
|
-
rg =
|
113
|
+
rg = RestCore::Facebook.new(:access_token => 'a', :secret => 'z')
|
117
114
|
rg.parse_fbs!(rg.fbs) .should.kind_of?(Hash)
|
118
115
|
rg.data.empty?.should == false
|
119
116
|
rg.parse_fbs!(rg.fbs.sub(/sig\=\w+/, 'sig=abc')).should == nil
|
@@ -121,7 +118,7 @@ describe RestGraph do
|
|
121
118
|
end
|
122
119
|
|
123
120
|
should 'generate correct fbs with additional parameters' do
|
124
|
-
rg =
|
121
|
+
rg = RestCore::Facebook.new(:access_token => 'a', :secret => 'z')
|
125
122
|
rg.data['expires'] = '1234'
|
126
123
|
rg.parse_fbs!(rg.fbs).should.kind_of?(Hash)
|
127
124
|
rg.access_token .should == 'a'
|
@@ -0,0 +1,42 @@
|
|
1
|
+
|
2
|
+
require 'rest-core/test'
|
3
|
+
|
4
|
+
describe RestCore::Facebook do
|
5
|
+
after do
|
6
|
+
WebMock.reset!
|
7
|
+
RR.verify
|
8
|
+
end
|
9
|
+
|
10
|
+
should 'be serialized with lighten' do
|
11
|
+
engines = begin
|
12
|
+
require 'psych'
|
13
|
+
YAML::ENGINE.yamler = 'psych' # TODO: probably a bug?
|
14
|
+
[Psych, YAML, Marshal]
|
15
|
+
rescue LoadError
|
16
|
+
[YAML, Marshal]
|
17
|
+
end
|
18
|
+
|
19
|
+
# sorry, it is marshal in 1.8 is broken
|
20
|
+
if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'ruby' &&
|
21
|
+
RUBY_VERSION == '1.8.7'
|
22
|
+
engines.pop # REE 1.8.7
|
23
|
+
else
|
24
|
+
engines.pop # MRI 1.8.7
|
25
|
+
end
|
26
|
+
|
27
|
+
engines.each{ |engine|
|
28
|
+
test = lambda{ |obj| engine.load(engine.dump(obj)) }
|
29
|
+
rg = RestCore::Facebook.new(:log_handler => lambda{})
|
30
|
+
lambda{ test[rg] }.should.raise(TypeError)
|
31
|
+
test[rg.lighten].should == rg.lighten
|
32
|
+
lambda{ test[rg] }.should.raise(TypeError)
|
33
|
+
rg.lighten!
|
34
|
+
test[rg.lighten].should == rg
|
35
|
+
}
|
36
|
+
end
|
37
|
+
|
38
|
+
should 'lighten takes options to change attributes' do
|
39
|
+
RestCore::Facebook.new.lighten(:timeout => 100 ).timeout.should.eq 100
|
40
|
+
RestCore::Facebook.new.lighten(:lang => 'zh-TW').lang.should.eq 'zh-TW'
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
|
2
|
+
require 'rest-core/test'
|
3
|
+
|
4
|
+
describe RestCore::Facebook do
|
5
|
+
after do
|
6
|
+
WebMock.reset!
|
7
|
+
RR.verify
|
8
|
+
end
|
9
|
+
|
10
|
+
should 'respect timeout' do
|
11
|
+
stub_request(:get, 'https://graph.facebook.com/me').
|
12
|
+
to_return(:body => '{}')
|
13
|
+
mock.proxy(Timeout).timeout(numeric)
|
14
|
+
RestCore::Facebook.new.get('me').should.eq({})
|
15
|
+
end
|
16
|
+
|
17
|
+
should 'override timeout' do
|
18
|
+
mock(Timeout).timeout(99){ {RestCore::Facebook::RESPONSE_BODY => true} }
|
19
|
+
RestCore::Facebook.new(:timeout => 1).get('me', {}, :timeout => 99).
|
20
|
+
should.eq true
|
21
|
+
end
|
22
|
+
end
|
data/test/test_oauth1_header.rb
CHANGED
metadata
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rest-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.0.pre.0
|
5
|
+
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Cardinal Blue
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-09-02 00:00:00.000000000Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rest-client
|
17
|
-
requirement: &
|
17
|
+
requirement: &2154406600 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,21 +22,21 @@ dependencies:
|
|
22
22
|
version: '0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *2154406600
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
|
-
name:
|
28
|
-
requirement: &
|
27
|
+
name: yajl-ruby
|
28
|
+
requirement: &2154405920 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
|
-
type: :
|
34
|
+
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *2154405920
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
|
-
name:
|
39
|
-
requirement: &
|
38
|
+
name: rack
|
39
|
+
requirement: &2154399520 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: '0'
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *2154399520
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: json
|
50
|
-
requirement: &
|
50
|
+
requirement: &2154398840 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ! '>='
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: '0'
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *2154398840
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: json_pure
|
61
|
-
requirement: &
|
61
|
+
requirement: &2154398100 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ! '>='
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: '0'
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *2154398100
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: ruby-hmac
|
72
|
-
requirement: &
|
72
|
+
requirement: &2154397380 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ! '>='
|
@@ -77,10 +77,10 @@ dependencies:
|
|
77
77
|
version: '0'
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *2154397380
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: webmock
|
83
|
-
requirement: &
|
83
|
+
requirement: &2154396860 !ruby/object:Gem::Requirement
|
84
84
|
none: false
|
85
85
|
requirements:
|
86
86
|
- - ! '>='
|
@@ -88,10 +88,10 @@ dependencies:
|
|
88
88
|
version: '0'
|
89
89
|
type: :development
|
90
90
|
prerelease: false
|
91
|
-
version_requirements: *
|
91
|
+
version_requirements: *2154396860
|
92
92
|
- !ruby/object:Gem::Dependency
|
93
93
|
name: bacon
|
94
|
-
requirement: &
|
94
|
+
requirement: &2154396080 !ruby/object:Gem::Requirement
|
95
95
|
none: false
|
96
96
|
requirements:
|
97
97
|
- - ! '>='
|
@@ -99,10 +99,10 @@ dependencies:
|
|
99
99
|
version: '0'
|
100
100
|
type: :development
|
101
101
|
prerelease: false
|
102
|
-
version_requirements: *
|
102
|
+
version_requirements: *2154396080
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: rr
|
105
|
-
requirement: &
|
105
|
+
requirement: &2154395380 !ruby/object:Gem::Requirement
|
106
106
|
none: false
|
107
107
|
requirements:
|
108
108
|
- - ! '>='
|
@@ -110,10 +110,10 @@ dependencies:
|
|
110
110
|
version: '0'
|
111
111
|
type: :development
|
112
112
|
prerelease: false
|
113
|
-
version_requirements: *
|
113
|
+
version_requirements: *2154395380
|
114
114
|
- !ruby/object:Gem::Dependency
|
115
115
|
name: rake
|
116
|
-
requirement: &
|
116
|
+
requirement: &2154394440 !ruby/object:Gem::Requirement
|
117
117
|
none: false
|
118
118
|
requirements:
|
119
119
|
- - ! '>='
|
@@ -121,7 +121,7 @@ dependencies:
|
|
121
121
|
version: '0'
|
122
122
|
type: :development
|
123
123
|
prerelease: false
|
124
|
-
version_requirements: *
|
124
|
+
version_requirements: *2154394440
|
125
125
|
description: ! 'A modular Ruby REST client collection/infrastructure.
|
126
126
|
|
127
127
|
|
@@ -168,15 +168,55 @@ files:
|
|
168
168
|
- example/facebook.rb
|
169
169
|
- example/github.rb
|
170
170
|
- example/linkedin.rb
|
171
|
+
- example/rails2/Gemfile
|
172
|
+
- example/rails2/README
|
173
|
+
- example/rails2/Rakefile
|
174
|
+
- example/rails2/app/controllers/application_controller.rb
|
175
|
+
- example/rails2/app/views/application/helper.html.erb
|
176
|
+
- example/rails2/config/boot.rb
|
177
|
+
- example/rails2/config/environment.rb
|
178
|
+
- example/rails2/config/environments/development.rb
|
179
|
+
- example/rails2/config/environments/production.rb
|
180
|
+
- example/rails2/config/environments/test.rb
|
181
|
+
- example/rails2/config/initializers/cookie_verification_secret.rb
|
182
|
+
- example/rails2/config/initializers/new_rails_defaults.rb
|
183
|
+
- example/rails2/config/initializers/session_store.rb
|
184
|
+
- example/rails2/config/preinitializer.rb
|
185
|
+
- example/rails2/config/rest-core.yaml
|
186
|
+
- example/rails2/config/routes.rb
|
187
|
+
- example/rails2/log
|
188
|
+
- example/rails2/test/functional/application_controller_test.rb
|
189
|
+
- example/rails2/test/test_helper.rb
|
190
|
+
- example/rails2/test/unit/rails_util_test.rb
|
191
|
+
- example/rails3/Gemfile
|
192
|
+
- example/rails3/README
|
193
|
+
- example/rails3/Rakefile
|
194
|
+
- example/rails3/app/controllers/application_controller.rb
|
195
|
+
- example/rails3/app/views/application/helper.html.erb
|
196
|
+
- example/rails3/config.ru
|
197
|
+
- example/rails3/config/application.rb
|
198
|
+
- example/rails3/config/environment.rb
|
199
|
+
- example/rails3/config/environments/development.rb
|
200
|
+
- example/rails3/config/environments/production.rb
|
201
|
+
- example/rails3/config/environments/test.rb
|
202
|
+
- example/rails3/config/initializers/secret_token.rb
|
203
|
+
- example/rails3/config/initializers/session_store.rb
|
204
|
+
- example/rails3/config/rest-core.yaml
|
205
|
+
- example/rails3/config/routes.rb
|
206
|
+
- example/rails3/test/functional/application_controller_test.rb
|
207
|
+
- example/rails3/test/test_helper.rb
|
208
|
+
- example/rails3/test/unit/rails_util_test.rb
|
209
|
+
- example/sinatra/config.ru
|
171
210
|
- example/twitter.rb
|
172
211
|
- lib/rest-core.rb
|
173
212
|
- lib/rest-core/app/ask.rb
|
174
213
|
- lib/rest-core/app/rest-client.rb
|
175
214
|
- lib/rest-core/builder.rb
|
176
215
|
- lib/rest-core/client.rb
|
216
|
+
- lib/rest-core/client/facebook.rb
|
217
|
+
- lib/rest-core/client/facebook/rails_util.rb
|
177
218
|
- lib/rest-core/client/github.rb
|
178
219
|
- lib/rest-core/client/linkedin.rb
|
179
|
-
- lib/rest-core/client/rest-graph.rb
|
180
220
|
- lib/rest-core/client/twitter.rb
|
181
221
|
- lib/rest-core/client_oauth1.rb
|
182
222
|
- lib/rest-core/event.rb
|
@@ -194,8 +234,10 @@ files:
|
|
194
234
|
- lib/rest-core/middleware/oauth1_header.rb
|
195
235
|
- lib/rest-core/middleware/oauth2_query.rb
|
196
236
|
- lib/rest-core/middleware/timeout.rb
|
237
|
+
- lib/rest-core/test.rb
|
197
238
|
- lib/rest-core/util/config.rb
|
198
239
|
- lib/rest-core/util/hmac.rb
|
240
|
+
- lib/rest-core/util/vendor.rb
|
199
241
|
- lib/rest-core/version.rb
|
200
242
|
- lib/rest-core/wrapper.rb
|
201
243
|
- pending/test_multi.rb
|
@@ -203,22 +245,21 @@ files:
|
|
203
245
|
- rest-core.gemspec
|
204
246
|
- task/.gitignore
|
205
247
|
- task/gemgem.rb
|
206
|
-
- test/
|
207
|
-
- test/
|
208
|
-
- test/
|
209
|
-
- test/
|
210
|
-
- test/
|
211
|
-
- test/
|
212
|
-
- test/
|
213
|
-
- test/
|
214
|
-
- test/
|
215
|
-
- test/
|
248
|
+
- test/client/facebook/config/rest-core.yaml
|
249
|
+
- test/client/facebook/test_api.rb
|
250
|
+
- test/client/facebook/test_cache.rb
|
251
|
+
- test/client/facebook/test_default.rb
|
252
|
+
- test/client/facebook/test_error.rb
|
253
|
+
- test/client/facebook/test_handler.rb
|
254
|
+
- test/client/facebook/test_load_config.rb
|
255
|
+
- test/client/facebook/test_misc.rb
|
256
|
+
- test/client/facebook/test_oauth.rb
|
257
|
+
- test/client/facebook/test_old.rb
|
258
|
+
- test/client/facebook/test_page.rb
|
259
|
+
- test/client/facebook/test_parse.rb
|
260
|
+
- test/client/facebook/test_serialize.rb
|
261
|
+
- test/client/facebook/test_timeout.rb
|
216
262
|
- test/test_oauth1_header.rb
|
217
|
-
- test/test_old.rb
|
218
|
-
- test/test_page.rb
|
219
|
-
- test/test_parse.rb
|
220
|
-
- test/test_serialize.rb
|
221
|
-
- test/test_timeout.rb
|
222
263
|
homepage: https://github.com/cardinalblue/rest-core
|
223
264
|
licenses: []
|
224
265
|
post_install_message:
|
@@ -234,27 +275,27 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
234
275
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
235
276
|
none: false
|
236
277
|
requirements:
|
237
|
-
- - ! '
|
278
|
+
- - ! '>'
|
238
279
|
- !ruby/object:Gem::Version
|
239
|
-
version:
|
280
|
+
version: 1.3.1
|
240
281
|
requirements: []
|
241
282
|
rubyforge_project:
|
242
|
-
rubygems_version: 1.8.
|
283
|
+
rubygems_version: 1.8.10
|
243
284
|
signing_key:
|
244
285
|
specification_version: 3
|
245
286
|
summary: A modular Ruby REST client collection/infrastructure.
|
246
287
|
test_files:
|
247
|
-
- test/test_api.rb
|
248
|
-
- test/test_cache.rb
|
249
|
-
- test/test_default.rb
|
250
|
-
- test/test_error.rb
|
251
|
-
- test/test_handler.rb
|
252
|
-
- test/test_load_config.rb
|
253
|
-
- test/test_misc.rb
|
254
|
-
- test/test_oauth.rb
|
288
|
+
- test/client/facebook/test_api.rb
|
289
|
+
- test/client/facebook/test_cache.rb
|
290
|
+
- test/client/facebook/test_default.rb
|
291
|
+
- test/client/facebook/test_error.rb
|
292
|
+
- test/client/facebook/test_handler.rb
|
293
|
+
- test/client/facebook/test_load_config.rb
|
294
|
+
- test/client/facebook/test_misc.rb
|
295
|
+
- test/client/facebook/test_oauth.rb
|
296
|
+
- test/client/facebook/test_old.rb
|
297
|
+
- test/client/facebook/test_page.rb
|
298
|
+
- test/client/facebook/test_parse.rb
|
299
|
+
- test/client/facebook/test_serialize.rb
|
300
|
+
- test/client/facebook/test_timeout.rb
|
255
301
|
- test/test_oauth1_header.rb
|
256
|
-
- test/test_old.rb
|
257
|
-
- test/test_page.rb
|
258
|
-
- test/test_parse.rb
|
259
|
-
- test/test_serialize.rb
|
260
|
-
- test/test_timeout.rb
|
data/test/config/rest-core.yaml
DELETED
data/test/test_error.rb
DELETED
@@ -1,66 +0,0 @@
|
|
1
|
-
|
2
|
-
if respond_to?(:require_relative, true)
|
3
|
-
require_relative 'common'
|
4
|
-
else
|
5
|
-
require File.dirname(__FILE__) + '/common'
|
6
|
-
end
|
7
|
-
|
8
|
-
describe RestGraph::Error do
|
9
|
-
after do
|
10
|
-
WebMock.reset!
|
11
|
-
RR.verify
|
12
|
-
end
|
13
|
-
|
14
|
-
should 'have the right ancestors' do
|
15
|
-
RestGraph::Error::AccessToken .should < RestGraph::Error
|
16
|
-
|
17
|
-
RestGraph::Error::InvalidAccessToken.should <
|
18
|
-
RestGraph::Error::AccessToken
|
19
|
-
|
20
|
-
RestGraph::Error::MissingAccessToken.should <
|
21
|
-
RestGraph::Error::AccessToken
|
22
|
-
end
|
23
|
-
|
24
|
-
def error2env hash
|
25
|
-
{RestCore::RESPONSE_BODY => hash,
|
26
|
-
RestCore::REQUEST_PATH => '/' ,
|
27
|
-
RestCore::REQUEST_QUERY => {}}
|
28
|
-
end
|
29
|
-
|
30
|
-
should 'parse right' do
|
31
|
-
%w[OAuthInvalidTokenException OAuthException].each{ |type|
|
32
|
-
RestGraph::Error.call(error2env('error' => {'type' => type})).
|
33
|
-
should.kind_of?(RestGraph::Error::InvalidAccessToken)
|
34
|
-
}
|
35
|
-
|
36
|
-
RestGraph::Error.call(error2env('error'=>{'type'=>'QueryParseException',
|
37
|
-
'message'=>'An active access token..'})).
|
38
|
-
should.kind_of?(RestGraph::Error::MissingAccessToken)
|
39
|
-
|
40
|
-
RestGraph::Error.call(error2env('error'=>{'type'=>'QueryParseException',
|
41
|
-
'message'=>'Oh active access token..'})).
|
42
|
-
should.not.kind_of?(RestGraph::Error::MissingAccessToken)
|
43
|
-
|
44
|
-
RestGraph::Error.call(error2env('error_code' => 190)).
|
45
|
-
should.kind_of?(RestGraph::Error::InvalidAccessToken)
|
46
|
-
|
47
|
-
RestGraph::Error.call(error2env('error_code' => 104)).
|
48
|
-
should.kind_of?(RestGraph::Error::MissingAccessToken)
|
49
|
-
|
50
|
-
RestGraph::Error.call(error2env('error_code' => 999)).
|
51
|
-
should.not.kind_of?(RestGraph::Error::AccessToken)
|
52
|
-
|
53
|
-
error = RestGraph::Error.call(error2env(['not a hash']))
|
54
|
-
error.should.not.kind_of?(RestGraph::Error::AccessToken)
|
55
|
-
error.should .kind_of?(RestGraph::Error)
|
56
|
-
end
|
57
|
-
|
58
|
-
should 'nuke cache upon errors' do
|
59
|
-
stub_request(:get, 'https://graph.facebook.com/me').
|
60
|
-
to_return(:body => '{"error":"wrong"}').times(2)
|
61
|
-
|
62
|
-
rg = RestGraph.new(:cache => {}, :error_handler => lambda{|env|env})
|
63
|
-
rg.get('me'); rg.get('me')
|
64
|
-
rg.cache.values.should == []
|
65
|
-
end
|
66
|
-
end
|
data/test/test_serialize.rb
DELETED
@@ -1,44 +0,0 @@
|
|
1
|
-
|
2
|
-
if respond_to?(:require_relative, true)
|
3
|
-
require_relative 'common'
|
4
|
-
else
|
5
|
-
require File.dirname(__FILE__) + '/common'
|
6
|
-
end
|
7
|
-
|
8
|
-
describe RestGraph do
|
9
|
-
after do
|
10
|
-
WebMock.reset!
|
11
|
-
RR.verify
|
12
|
-
end
|
13
|
-
|
14
|
-
should 'be serialized with lighten' do
|
15
|
-
engines = if RUBY_VERSION >= '1.9.2'
|
16
|
-
begin
|
17
|
-
require 'psych'
|
18
|
-
YAML::ENGINE.yamler = 'psych' # TODO: probably a bug?
|
19
|
-
[Marshal, YAML, Psych]
|
20
|
-
rescue LoadError
|
21
|
-
[Marshal, YAML]
|
22
|
-
end
|
23
|
-
elsif defined?(RUBY_ENGINE) && RUBY_ENGINE == 'rbx'
|
24
|
-
[Marshal]
|
25
|
-
else
|
26
|
-
[YAML]
|
27
|
-
end
|
28
|
-
|
29
|
-
engines.each{ |engine|
|
30
|
-
test = lambda{ |obj| engine.load(engine.dump(obj)) }
|
31
|
-
rg = RestGraph.new(:log_handler => lambda{})
|
32
|
-
lambda{ test[rg] }.should.raise(TypeError)
|
33
|
-
test[rg.lighten].should == rg.lighten
|
34
|
-
lambda{ test[rg] }.should.raise(TypeError)
|
35
|
-
rg.lighten!
|
36
|
-
test[rg.lighten].should == rg
|
37
|
-
}
|
38
|
-
end
|
39
|
-
|
40
|
-
should 'lighten takes options to change attributes' do
|
41
|
-
RestGraph.new.lighten(:timeout => 100 ).timeout.should == 100
|
42
|
-
RestGraph.new.lighten(:lang => 'zh-TW').lang .should == 'zh-TW'
|
43
|
-
end
|
44
|
-
end
|
data/test/test_timeout.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
|
2
|
-
if respond_to?(:require_relative, true)
|
3
|
-
require_relative 'common'
|
4
|
-
else
|
5
|
-
require File.dirname(__FILE__) + '/common'
|
6
|
-
end
|
7
|
-
|
8
|
-
describe RestGraph do
|
9
|
-
after do
|
10
|
-
WebMock.reset!
|
11
|
-
RR.verify
|
12
|
-
end
|
13
|
-
|
14
|
-
should 'respect timeout' do
|
15
|
-
stub_request(:get, 'https://graph.facebook.com/me').
|
16
|
-
to_return(:body => '{}')
|
17
|
-
mock.proxy(Timeout).timeout(numeric)
|
18
|
-
RestGraph.new.get('me').should == {}
|
19
|
-
end
|
20
|
-
|
21
|
-
should 'override timeout' do
|
22
|
-
mock(Timeout).timeout(99){ {RestCore::RESPONSE_BODY => true} }
|
23
|
-
RestGraph.new(:timeout => 1).get('me', {}, :timeout => 99).should == true
|
24
|
-
end
|
25
|
-
end
|