rest-graph 1.5.0 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
data/test/test_oauth.rb CHANGED
@@ -12,16 +12,16 @@ describe RestGraph do
12
12
  end
13
13
 
14
14
  after do
15
- reset_webmock
15
+ WebMock.reset_webmock
16
16
  end
17
17
 
18
- it 'would return correct oauth url' do
18
+ should 'return correct oauth url' do
19
19
  TestHelper.normalize_url(@rg.authorize_url(:redirect_uri => @uri)).
20
20
  should == 'https://graph.facebook.com/oauth/authorize?' \
21
21
  'client_id=29&redirect_uri=http%3A%2F%2Fzzz.tw'
22
22
  end
23
23
 
24
- it 'would do authorizing and parse result and save it in data' do
24
+ should 'do authorizing and parse result and save it in data' do
25
25
  stub_request(:get, 'https://graph.facebook.com/oauth/access_token?' \
26
26
  'client_id=29&client_secret=18&code=zzz&' \
27
27
  'redirect_uri=http%3A%2F%2Fzzz.tw').
@@ -34,7 +34,7 @@ describe RestGraph do
34
34
  @rg.data.should == result
35
35
  end
36
36
 
37
- it 'would not append access_token in authorize_url even presented' do
37
+ should 'not append access_token in authorize_url even presented' do
38
38
  RestGraph.new(:access_token => 'do not use me').authorize_url.
39
39
  should == 'https://graph.facebook.com/oauth/authorize'
40
40
  end
data/test/test_old.rb CHANGED
@@ -7,11 +7,11 @@ end
7
7
 
8
8
  describe RestGraph do
9
9
  after do
10
- reset_webmock
10
+ WebMock.reset_webmock
11
11
  RR.verify
12
12
  end
13
13
 
14
- it 'would do fql query with/without access_token' do
14
+ should 'do fql query with/without access_token' do
15
15
  fql = 'SELECT name FROM likes where id="123"'
16
16
  query = "format=json&query=#{CGI.escape(fql)}"
17
17
  stub_request(:get, "https://api.facebook.com/method/fql.query?#{query}").
@@ -27,7 +27,7 @@ describe RestGraph do
27
27
  RestGraph.new(:access_token => token).fql(fql).should == []
28
28
  end
29
29
 
30
- it 'would do fql.mutilquery correctly' do
30
+ should 'do fql.mutilquery correctly' do
31
31
  f0 = 'SELECT display_name FROM application WHERE app_id="233082465238"'
32
32
  f1 = 'SELECT display_name FROM application WHERE app_id="110225210740"'
33
33
  f0q, f1q = "\"#{f0.gsub('"', '\\"')}\"", "\"#{f1.gsub('"', '\\"')}\""
@@ -48,7 +48,7 @@ describe RestGraph do
48
48
  RestGraph.new.fql_multi(:f0 => f0, :f1 => f1).should == []
49
49
  end
50
50
 
51
- it 'would do facebook old rest api' do
51
+ should 'do facebook old rest api' do
52
52
  body = 'hate facebook inconsistent'
53
53
  stub_request(:get,
54
54
  'https://api.facebook.com/method/notes.create?format=json').
@@ -58,7 +58,7 @@ describe RestGraph do
58
58
  should == body
59
59
  end
60
60
 
61
- it 'would exchange sessions for access token' do
61
+ should 'exchange sessions for access token' do
62
62
  stub_request(:post,
63
63
  'https://graph.facebook.com/oauth/exchange_sessions?' \
64
64
  'type=client_cred&client_id=id&client_secret=di&' \
@@ -71,7 +71,7 @@ describe RestGraph do
71
71
  first['access_token'].should == 'bogus'
72
72
  end
73
73
 
74
- it 'returns broken json' do
74
+ should 'broken json' do
75
75
  stub_request(:get,
76
76
  'https://api.facebook.com/method/admin.getAppProperties?' \
77
77
  'access_token=123%7Cs&format=json&properties=app_id'
@@ -82,7 +82,7 @@ describe RestGraph do
82
82
  should == {'app_id' => '123'}
83
83
  end
84
84
 
85
- it 'uses an secret access_token' do
85
+ should 'use an secret access_token' do
86
86
  stub_request(:get,
87
87
  'https://api.facebook.com/method/admin.getAppProperties?' \
88
88
  'access_token=123%7Cs&format=json&properties=app_id'
@@ -93,7 +93,7 @@ describe RestGraph do
93
93
  should == {'app_id' => '123'}
94
94
  end
95
95
 
96
- it 'would not parse twice in strict mode' do
96
+ should 'not parse twice in strict mode' do
97
97
  stub_request(:get,
98
98
  'https://api.facebook.com/method/admin.getAppProperties?' \
99
99
  'access_token=123%7Cs&format=json&properties=app_id'
data/test/test_page.rb CHANGED
@@ -7,11 +7,11 @@ end
7
7
 
8
8
  describe RestGraph do
9
9
  after do
10
- reset_webmock
10
+ WebMock.reset_webmock
11
11
  RR.verify
12
12
  end
13
13
 
14
- it 'would get the next/prev page' do
14
+ should 'get the next/prev page' do
15
15
  rg = RestGraph.new
16
16
  %w[next previous].each{ |type|
17
17
  kind = "#{type}_page"
@@ -19,12 +19,12 @@ describe RestGraph do
19
19
  rg.send(kind, {'paging' => []}).should == nil
20
20
  rg.send(kind, {'paging' => {}}).should == nil
21
21
 
22
- mock(rg).request(:get, 'zzz', {}){ 'ok' }
23
- rg.send(kind, {'paging' => {type => 'zzz'}}).should == 'ok'
22
+ stub_request(:get, 'zzz').to_return(:body => '["ok"]')
23
+ rg.send(kind, {'paging' => {type => 'zzz'}}).should == ['ok']
24
24
  }
25
25
  end
26
26
 
27
- it 'would merge all pages into one' do
27
+ should 'merge all pages into one' do
28
28
  rg = RestGraph.new
29
29
  %w[next previous].each{ |type|
30
30
  kind = "#{type}_page"
@@ -32,23 +32,79 @@ describe RestGraph do
32
32
 
33
33
  # invalid pages or just the page itself
34
34
  (-1..1).each{ |page|
35
- rg.for_pages(data, page, kind).should == data
35
+ rg.for_pages(data, page, {}, kind).should == data
36
36
  }
37
37
 
38
38
  (2..4).each{ |pages|
39
39
  # merge data
40
- mock(rg).request(:get, 'zzz', {}){ {'data' => ['y']} }
41
- rg.for_pages(data, pages, kind).should == {'data' => %w[z y]}
40
+ stub_request(:get, 'zzz').to_return(:body => '{"data":["y"]}')
41
+ rg.for_pages(data, pages, {}, kind).should == {'data' => %w[z y]}
42
42
 
43
43
  # this data cannot be merged
44
- mock(rg).request(:get, 'zzz', {}){ {'data' => 'y'} }
45
- rg.for_pages(data, pages, kind).should == {'data' => %w[z]}
44
+ stub_request(:get, 'zzz').to_return(:body => '{"data":"y"}')
45
+ rg.for_pages(data, pages, {}, kind).should == {'data' => %w[z]}
46
46
  }
47
47
 
48
- mock(rg).request(:get, 'zzz', {}){ {'paging' => {type => 'yyy'},
49
- 'data' => ['y']} }
50
- mock(rg).request(:get, 'yyy', {}){ {'data' => ['x']} }
51
- rg.for_pages(data, 3, kind).should == {'data' => %w[z y x]}
48
+ stub_request(:get, 'zzz').to_return(:body =>
49
+ '{"paging":{"'+type+'":"yyy"},"data":["y"]}')
50
+ stub_request(:get, 'yyy').to_return(:body => '{"data":["x"]}')
51
+
52
+ rg.for_pages(data, 3, {}, kind).should == {'data' => %w[z y x]}
53
+ }
54
+ end
55
+
56
+ should 'for_pages with callback' do
57
+ rg = RestGraph.new
58
+ %w[next previous].each{ |type|
59
+ kind = "#{type}_page"
60
+ data = {'paging' => {type => 'zzz'}, 'data' => ['z']}
61
+
62
+ # invalid pages or just the page itself
63
+ nils = 0
64
+ ranges = -1..1
65
+ ranges.each{ |page|
66
+ rg.for_pages(data, page, {}, kind){ |r|
67
+ if r
68
+ r.should == data
69
+ else
70
+ nils += 1
71
+ end
72
+ }.should == data
73
+ }
74
+ nils.should == ranges.to_a.size
75
+
76
+ (2..4).each{ |pages|
77
+ # merge data
78
+ stub_request(:get, 'zzz').to_return(:body => '{"data":["y"]}')
79
+ expects = [{'data' => %w[y]}, nil]
80
+ rg.for_pages(data, pages, {}, kind){ |r|
81
+ r.should == expects.shift
82
+ }.should == {'data' => %w[z y]}
83
+ expects.empty?.should == true
84
+
85
+ # this data cannot be merged
86
+ stub_request(:get, 'zzz').to_return(:body => '{"data":"y"}')
87
+ expects = [{'data' => 'y'}, nil]
88
+ rg.for_pages(data, pages, {}, kind){ |r|
89
+ r.should == expects.shift
90
+ }.should == {'data' => %w[z]}
91
+ expects.empty?.should == true
92
+ }
93
+
94
+ stub_request(:get, 'zzz').to_return(:body =>
95
+ '{"paging":{"'+type+'":"yyy"},"data":["y"]}')
96
+ stub_request(:get, 'yyy').to_return(:body => '{"data":["x"]}')
97
+
98
+ expects = [{'data' => %w[y]}, {'data' => %w[x]}, nil]
99
+ rg.for_pages(data, 3, {}, kind){ |rr|
100
+ if rr
101
+ r = rr.dup
102
+ r.delete('paging')
103
+ else
104
+ r = rr
105
+ end
106
+ r.should == expects.shift
107
+ }.should == {'data' => %w[z y x]}
52
108
  }
53
109
  end
54
110
  end
data/test/test_parse.rb CHANGED
@@ -7,13 +7,13 @@ end
7
7
 
8
8
  describe RestGraph do
9
9
 
10
- it 'would return nil if parse error, but not when call data directly' do
10
+ should 'return nil if parse error, but not when call data directly' do
11
11
  rg = RestGraph.new
12
12
  rg.parse_cookies!({}).should == nil
13
13
  rg.data .should == {}
14
14
  end
15
15
 
16
- it 'would extract correct access_token or fail checking sig' do
16
+ should 'extract correct access_token or fail checking sig' do
17
17
  access_token = '1|2-5|f.'
18
18
  app_id = '1829'
19
19
  secret = app_id.reverse
@@ -49,13 +49,13 @@ describe RestGraph do
49
49
  check.call(nil, "\"#{fbs}\"")
50
50
  end
51
51
 
52
- it 'would not pass if there is no secret, prevent from forgery' do
52
+ should 'not pass if there is no secret, prevent from forgery' do
53
53
  rg = RestGraph.new
54
54
  rg.parse_fbs!('"feed=me&sig=bddd192cf27f22c05f61c8bea24fa4b7"').
55
55
  should == nil
56
56
  end
57
57
 
58
- it 'would parse json correctly' do
58
+ should 'parse json correctly' do
59
59
  rg = RestGraph.new
60
60
 
61
61
  rg.parse_json!('bad json').should == nil
@@ -68,7 +68,7 @@ describe RestGraph do
68
68
  should == {'feed' => 'me', 'sig' => "20393e7823730308938a86ecf1c88b14"}
69
69
  end
70
70
 
71
- it 'would parse signed_request' do
71
+ should 'parse signed_request' do
72
72
  secret = 'aloha'
73
73
  json = RestGraph.json_encode('ooh' => 'dir', 'moo' => 'bar')
74
74
  encode = lambda{ |str|
@@ -87,25 +87,25 @@ describe RestGraph do
87
87
  rg.parse_signed_request!(signed_request).should == nil
88
88
  end
89
89
 
90
- it 'would fallback to ruby-hmac if Digest.new raise an runtime error' do
90
+ should 'fallback to ruby-hmac if Digest.new raise an runtime error' do
91
91
  key, data = 'top', 'secret'
92
92
  mock(OpenSSL::Digest::Digest).new('sha256'){ raise 'boom' }
93
93
  RestGraph.hmac_sha256(key, data).should ==
94
94
  OpenSSL::HMAC.digest('sha256', key, data)
95
95
  end
96
96
 
97
- it 'would generate correct fbs with correct sig' do
97
+ should 'generate correct fbs with correct sig' do
98
98
  RestGraph.new(:access_token => 'fake', :secret => 's').fbs.should ==
99
99
  "access_token=fake&sig=#{Digest::MD5.hexdigest('access_token=fakes')}"
100
100
  end
101
101
 
102
- it 'could parse fbs from facebook response which lacks sig...' do
102
+ should 'parse fbs from facebook response which lacks sig...' do
103
103
  rg = RestGraph.new(:access_token => 'a', :secret => 'z')
104
104
  rg.parse_fbs!(rg.fbs) .should.kind_of?(Hash)
105
105
  rg.parse_fbs!(rg.fbs.sub(/sig\=\w+/, 'sig=abc')).should == nil
106
106
  end
107
107
 
108
- it 'could generate correct fbs with additional parameters' do
108
+ should 'generate correct fbs with additional parameters' do
109
109
  rg = RestGraph.new(:access_token => 'a', :secret => 'z')
110
110
  rg.data['expires'] = '1234'
111
111
  rg.parse_fbs!(rg.fbs) .should.kind_of?(Hash)
@@ -7,13 +7,22 @@ end
7
7
 
8
8
  describe RestGraph do
9
9
  after do
10
- reset_webmock
10
+ WebMock.reset_webmock
11
11
  RR.verify
12
12
  end
13
13
 
14
- it 'could be serialized with lighten' do
15
- marshal = RUBY_VERSION >= '1.9' ? Marshal : nil
16
- [YAML, marshal].compact.each{ |engine|
14
+ should 'be serialized with lighten' do
15
+ engines = if RUBY_VERSION >= '1.9.2'
16
+ require 'psych'
17
+ YAML::ENGINE.yamler = 'syck' # TODO: probably a bug?
18
+ [Marshal, YAML, Psych]
19
+ elsif defined?(RUBY_ENGINE) && RUBY_ENGINE == 'rbx'
20
+ [Marshal]
21
+ else
22
+ [YAML]
23
+ end
24
+
25
+ engines.each{ |engine|
17
26
  test = lambda{ |obj| engine.load(engine.dump(obj)) }
18
27
  rg = RestGraph.new(:log_handler => lambda{})
19
28
  lambda{ test[rg] }.should.raise(TypeError)
@@ -0,0 +1,74 @@
1
+
2
+ if respond_to?(:require_relative, true)
3
+ require_relative 'common'
4
+ else
5
+ require File.dirname(__FILE__) + '/common'
6
+ end
7
+
8
+ require 'rest-graph/test_util'
9
+
10
+ describe RestGraph::TestUtil do
11
+ before do
12
+ RestGraph::TestUtil.setup
13
+ end
14
+
15
+ after do
16
+ RestGraph::TestUtil.teardown
17
+ end
18
+
19
+ should 'stub requests and store result and teardown do cleanup' do
20
+ RestGraph.new.get('me') .should == {'data' => []}
21
+ RestGraph::TestUtil.history .should ==
22
+ [[:get, "https://graph.facebook.com/me", nil]]
23
+
24
+ RestGraph::TestUtil.teardown
25
+
26
+ RestGraph::TestUtil.history.should == []
27
+ begin
28
+ RestGraph.new.get('me')
29
+ rescue => e
30
+ e.should.kind_of?(WebMock::NetConnectNotAllowedError)
31
+ end
32
+ end
33
+
34
+ should 'have default response' do
35
+ default = {'meta' => []}
36
+ RestGraph::TestUtil.default_response = default
37
+ RestGraph.new.get('me') .should == default
38
+ end
39
+
40
+ should 'have default data' do
41
+ rg = RestGraph.new
42
+ rg.data['uid'] .should == '1234'
43
+ RestGraph::TestUtil.default_data = {'uid' => '4321'}
44
+ rg.data['uid'] .should == '4321'
45
+ RestGraph.new.data['uid'].should == '4321'
46
+ end
47
+
48
+ should 'be easy to stub data' do
49
+ response = {'data' => 'me'}
50
+ RestGraph::TestUtil.get('me'){ response }
51
+ RestGraph.new.get('me').should == response
52
+ RestGraph.new.get('he').should == RestGraph::TestUtil.default_response
53
+ end
54
+
55
+ should 'emulate login' do
56
+ RestGraph::TestUtil.login(1829)
57
+ rg = RestGraph.new
58
+ rg.data['uid'].should == '1829'
59
+ rg.authorized?.should == true
60
+ rg.get('me').should == RestGraph::TestUtil.user('1829')
61
+ end
62
+
63
+ should 'reset before login' do
64
+ RestGraph::TestUtil.login(1234).login(1829)
65
+ rg = RestGraph.new
66
+ rg.data['uid'].should == '1829'
67
+ rg.authorized?.should == true
68
+ rg.get('me').should == RestGraph::TestUtil.user('1829')
69
+ RestGraph::TestUtil.login(1234)
70
+ rg.data['uid'].should == '1234'
71
+ rg.authorized?.should == true
72
+ rg.get('me').should == RestGraph::TestUtil.user('1234')
73
+ end
74
+ end
@@ -0,0 +1,20 @@
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
+ should 'respect timeout' do
10
+ stub_request(:get, 'https://graph.facebook.com/me').to_return(
11
+ lambda{ |r| sleep(0.05); '{}' })
12
+ e = nil
13
+ begin
14
+ RestGraph.new(:timeout => 0.01).get('me')
15
+ nil.should == 'timeout must be thrown'
16
+ rescue Timeout::Error => e
17
+ end
18
+ e.should.kind_of?(Timeout::Error)
19
+ end
20
+ end
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 1
7
- - 5
7
+ - 6
8
8
  - 0
9
- version: 1.5.0
9
+ version: 1.6.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Cardinal Blue
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-10-11 00:00:00 +08:00
18
+ date: 2010-11-19 00:00:00 +08:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -31,12 +31,27 @@ dependencies:
31
31
  - 6
32
32
  - 1
33
33
  version: 1.6.1
34
- type: :runtime
34
+ type: :development
35
35
  version_requirements: *id001
36
36
  - !ruby/object:Gem::Dependency
37
- name: rack
37
+ name: em-http-request
38
38
  prerelease: false
39
39
  requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ segments:
45
+ - 0
46
+ - 2
47
+ - 15
48
+ version: 0.2.15
49
+ type: :development
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ name: rack
53
+ prerelease: false
54
+ requirement: &id003 !ruby/object:Gem::Requirement
40
55
  none: false
41
56
  requirements:
42
57
  - - ">="
@@ -47,11 +62,11 @@ dependencies:
47
62
  - 1
48
63
  version: 1.2.1
49
64
  type: :development
50
- version_requirements: *id002
65
+ version_requirements: *id003
51
66
  - !ruby/object:Gem::Dependency
52
67
  name: yajl-ruby
53
68
  prerelease: false
54
- requirement: &id003 !ruby/object:Gem::Requirement
69
+ requirement: &id004 !ruby/object:Gem::Requirement
55
70
  none: false
56
71
  requirements:
57
72
  - - ">="
@@ -62,11 +77,11 @@ dependencies:
62
77
  - 8
63
78
  version: 0.7.8
64
79
  type: :development
65
- version_requirements: *id003
80
+ version_requirements: *id004
66
81
  - !ruby/object:Gem::Dependency
67
82
  name: json
68
83
  prerelease: false
69
- requirement: &id004 !ruby/object:Gem::Requirement
84
+ requirement: &id005 !ruby/object:Gem::Requirement
70
85
  none: false
71
86
  requirements:
72
87
  - - ">="
@@ -77,11 +92,11 @@ dependencies:
77
92
  - 6
78
93
  version: 1.4.6
79
94
  type: :development
80
- version_requirements: *id004
95
+ version_requirements: *id005
81
96
  - !ruby/object:Gem::Dependency
82
97
  name: json_pure
83
98
  prerelease: false
84
- requirement: &id005 !ruby/object:Gem::Requirement
99
+ requirement: &id006 !ruby/object:Gem::Requirement
85
100
  none: false
86
101
  requirements:
87
102
  - - ">="
@@ -92,11 +107,11 @@ dependencies:
92
107
  - 6
93
108
  version: 1.4.6
94
109
  type: :development
95
- version_requirements: *id005
110
+ version_requirements: *id006
96
111
  - !ruby/object:Gem::Dependency
97
112
  name: ruby-hmac
98
113
  prerelease: false
99
- requirement: &id006 !ruby/object:Gem::Requirement
114
+ requirement: &id007 !ruby/object:Gem::Requirement
100
115
  none: false
101
116
  requirements:
102
117
  - - ">="
@@ -107,11 +122,11 @@ dependencies:
107
122
  - 0
108
123
  version: 0.4.0
109
124
  type: :development
110
- version_requirements: *id006
125
+ version_requirements: *id007
111
126
  - !ruby/object:Gem::Dependency
112
127
  name: rr
113
128
  prerelease: false
114
- requirement: &id007 !ruby/object:Gem::Requirement
129
+ requirement: &id008 !ruby/object:Gem::Requirement
115
130
  none: false
116
131
  requirements:
117
132
  - - ">="
@@ -119,29 +134,29 @@ dependencies:
119
134
  segments:
120
135
  - 1
121
136
  - 0
122
- - 0
123
- version: 1.0.0
137
+ - 2
138
+ version: 1.0.2
124
139
  type: :development
125
- version_requirements: *id007
140
+ version_requirements: *id008
126
141
  - !ruby/object:Gem::Dependency
127
142
  name: webmock
128
143
  prerelease: false
129
- requirement: &id008 !ruby/object:Gem::Requirement
144
+ requirement: &id009 !ruby/object:Gem::Requirement
130
145
  none: false
131
146
  requirements:
132
147
  - - ">="
133
148
  - !ruby/object:Gem::Version
134
149
  segments:
135
150
  - 1
136
- - 3
137
- - 5
138
- version: 1.3.5
151
+ - 6
152
+ - 1
153
+ version: 1.6.1
139
154
  type: :development
140
- version_requirements: *id008
155
+ version_requirements: *id009
141
156
  - !ruby/object:Gem::Dependency
142
157
  name: bacon
143
158
  prerelease: false
144
- requirement: &id009 !ruby/object:Gem::Requirement
159
+ requirement: &id010 !ruby/object:Gem::Requirement
145
160
  none: false
146
161
  requirements:
147
162
  - - ">="
@@ -152,22 +167,22 @@ dependencies:
152
167
  - 0
153
168
  version: 1.1.0
154
169
  type: :development
155
- version_requirements: *id009
170
+ version_requirements: *id010
156
171
  - !ruby/object:Gem::Dependency
157
172
  name: bones
158
173
  prerelease: false
159
- requirement: &id010 !ruby/object:Gem::Requirement
174
+ requirement: &id011 !ruby/object:Gem::Requirement
160
175
  none: false
161
176
  requirements:
162
177
  - - ">="
163
178
  - !ruby/object:Gem::Version
164
179
  segments:
165
180
  - 3
166
- - 4
167
- - 7
168
- version: 3.4.7
181
+ - 5
182
+ - 1
183
+ version: 3.5.1
169
184
  type: :development
170
- version_requirements: *id010
185
+ version_requirements: *id011
171
186
  description: A super simple Facebook Open Graph API client
172
187
  email: dev (XD) cardinalblue.com
173
188
  executables: []
@@ -175,6 +190,7 @@ executables: []
175
190
  extensions: []
176
191
 
177
192
  extra_rdoc_files:
193
+ - .specification
178
194
  - CHANGES
179
195
  - CONTRIBUTORS
180
196
  - Gemfile
@@ -184,6 +200,7 @@ extra_rdoc_files:
184
200
  - TODO
185
201
  - rest-graph.gemspec
186
202
  files:
203
+ - .specification
187
204
  - CHANGES
188
205
  - CONTRIBUTORS
189
206
  - Gemfile
@@ -193,6 +210,8 @@ files:
193
210
  - README.rdoc
194
211
  - Rakefile
195
212
  - TODO
213
+ - example/multi/config.ru
214
+ - example/multi/rainbows.rb
196
215
  - example/rails2/README
197
216
  - example/rails2/Rakefile
198
217
  - example/rails2/app/controllers/application_controller.rb
@@ -217,6 +236,7 @@ files:
217
236
  - lib/rest-graph/auto_load.rb
218
237
  - lib/rest-graph/load_config.rb
219
238
  - lib/rest-graph/rails_util.rb
239
+ - lib/rest-graph/test_util.rb
220
240
  - lib/rest-graph/version.rb
221
241
  - rest-graph.gemspec
222
242
  - test/common.rb
@@ -228,12 +248,15 @@ files:
228
248
  - test/test_handler.rb
229
249
  - test/test_load_config.rb
230
250
  - test/test_misc.rb
251
+ - test/test_multi.rb
231
252
  - test/test_oauth.rb
232
253
  - test/test_old.rb
233
254
  - test/test_page.rb
234
255
  - test/test_parse.rb
235
256
  - test/test_rest-graph.rb
236
257
  - test/test_serialize.rb
258
+ - test/test_test_util.rb
259
+ - test/test_timeout.rb
237
260
  has_rdoc: true
238
261
  homepage: http://github.com/cardinalblue/rest-graph
239
262
  licenses: []
@@ -275,9 +298,12 @@ test_files:
275
298
  - test/test_handler.rb
276
299
  - test/test_load_config.rb
277
300
  - test/test_misc.rb
301
+ - test/test_multi.rb
278
302
  - test/test_oauth.rb
279
303
  - test/test_old.rb
280
304
  - test/test_page.rb
281
305
  - test/test_parse.rb
282
306
  - test/test_rest-graph.rb
283
307
  - test/test_serialize.rb
308
+ - test/test_test_util.rb
309
+ - test/test_timeout.rb