rest-graph 1.5.0 → 1.6.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.
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