rest-graph 1.7.0 → 1.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. data/.gitignore +6 -0
  2. data/CHANGES +44 -0
  3. data/CONTRIBUTORS +1 -0
  4. data/README +221 -191
  5. data/README.md +367 -0
  6. data/Rakefile +28 -43
  7. data/TODO +1 -0
  8. data/doc/ToC.md +10 -0
  9. data/doc/dependency.md +78 -0
  10. data/doc/design.md +206 -0
  11. data/doc/rails.md +12 -0
  12. data/doc/test.md +46 -0
  13. data/doc/tutorial.md +142 -0
  14. data/example/rails2/Gemfile +13 -0
  15. data/example/rails2/app/controllers/application_controller.rb +10 -8
  16. data/example/rails2/app/views/application/helper.html.erb +1 -0
  17. data/example/rails2/config/boot.rb +16 -0
  18. data/example/rails2/config/environment.rb +3 -30
  19. data/example/rails2/config/preinitializer.rb +23 -0
  20. data/example/rails2/test/functional/application_controller_test.rb +72 -32
  21. data/example/rails2/test/test_helper.rb +10 -6
  22. data/example/rails3/Gemfile +13 -0
  23. data/example/rails3/Rakefile +7 -0
  24. data/example/rails3/app/controllers/application_controller.rb +118 -0
  25. data/example/rails3/app/views/application/helper.html.erb +1 -0
  26. data/example/rails3/config.ru +4 -0
  27. data/example/rails3/config/application.rb +23 -0
  28. data/example/rails3/config/environment.rb +5 -0
  29. data/example/rails3/config/environments/development.rb +26 -0
  30. data/example/rails3/config/environments/production.rb +49 -0
  31. data/example/rails3/config/environments/test.rb +30 -0
  32. data/example/rails3/config/initializers/secret_token.rb +7 -0
  33. data/example/rails3/config/initializers/session_store.rb +8 -0
  34. data/example/rails3/config/rest-graph.yaml +11 -0
  35. data/example/rails3/config/routes.rb +5 -0
  36. data/example/rails3/test/functional/application_controller_test.rb +183 -0
  37. data/example/rails3/test/test_helper.rb +18 -0
  38. data/example/rails3/test/unit/rails_util_test.rb +44 -0
  39. data/init.rb +1 -1
  40. data/lib/rest-graph.rb +5 -571
  41. data/lib/rest-graph/auto_load.rb +3 -3
  42. data/lib/rest-graph/autoload.rb +3 -3
  43. data/lib/rest-graph/config_util.rb +43 -0
  44. data/lib/rest-graph/core.rb +608 -0
  45. data/lib/rest-graph/facebook_util.rb +74 -0
  46. data/lib/rest-graph/rails_util.rb +85 -37
  47. data/lib/rest-graph/test_util.rb +18 -2
  48. data/lib/rest-graph/version.rb +2 -2
  49. data/rest-graph.gemspec +42 -47
  50. data/task/gemgem.rb +155 -0
  51. data/test/test_api.rb +16 -0
  52. data/test/test_cache.rb +28 -8
  53. data/test/test_error.rb +9 -0
  54. data/test/test_facebook.rb +36 -0
  55. data/test/test_load_config.rb +16 -14
  56. data/test/test_misc.rb +4 -4
  57. data/test/test_parse.rb +10 -4
  58. metadata +146 -186
  59. data/Gemfile.lock +0 -45
  60. data/README.rdoc +0 -337
  61. data/example/rails2/script/console +0 -3
  62. data/example/rails2/script/server +0 -3
  63. data/lib/rest-graph/load_config.rb +0 -41
data/test/test_api.rb CHANGED
@@ -33,6 +33,22 @@ describe RestGraph do
33
33
  :accept => 'text/plain').get('me').should == {'data' => []}
34
34
  end
35
35
 
36
+ should 'pass custom headers' do
37
+ stub_request(:get, 'http://example.com/').with(
38
+ :headers => {'Accept' => 'text/javascript',
39
+ 'Accept-Language' => 'en-us',
40
+ 'Accept-Encoding' => 'gzip, deflate', # this is by ruby
41
+ 'X-Forwarded-For' => '127.0.0.1',
42
+ }.merge(RUBY_VERSION < '1.9.2' ?
43
+ {} :
44
+ {'User-Agent' => 'Ruby'})). # this is by ruby
45
+ to_return(:body => '{"data": []}')
46
+
47
+ RestGraph.new.request({:headers => {'X-Forwarded-For' => '127.0.0.1'}},
48
+ [:get, 'http://example.com']).
49
+ should == {'data' => []}
50
+ end
51
+
36
52
  should 'post right' do
37
53
  stub_request(:post, 'https://graph.facebook.com/feed/me').
38
54
  with(:body => 'message=hi%20there').to_return(:body => 'ok')
data/test/test_cache.rb CHANGED
@@ -11,14 +11,34 @@ describe RestGraph do
11
11
  RR.verify
12
12
  end
13
13
 
14
- should 'enable cache if passing cache' do
15
- url, body = "https://graph.facebook.com/cache", '{"message":"ok"}'
16
- stub_request(:get, url).to_return(:body => body).times(1)
17
-
18
- cache = {}
19
- rg = RestGraph.new(:cache => cache, :auto_decode => false)
20
- 3.times{ rg.get('cache').should == body }
21
- cache.should == {rg.send(:cache_key, url) => body}
14
+ describe 'cache' do
15
+ before do
16
+ @url, @body = "https://graph.facebook.com/cache", '{"message":"ok"}'
17
+ @cache = {}
18
+ @rg = RestGraph.new(:cache => @cache, :auto_decode => false)
19
+ stub_request(:get, @url).to_return(:body => @body).times(1)
20
+ end
21
+
22
+ should 'enable cache if passing cache' do
23
+ 3.times{ @rg.get('cache').should == @body }
24
+ @cache.should == {@rg.send(:cache_key, @url) => @body}
25
+ end
26
+
27
+ should 'respect expires_in' do
28
+ mock(@cache).method(:store){ mock!.arity{ -3 } }
29
+ mock(@cache).store(@rg.send(:cache_key, @url), @body, :expires_in => 3)
30
+ @rg.get('cache', {}, :expires_in => 3).should == @body
31
+ end
32
+
33
+ should 'update cache if there is cache option set to false' do
34
+ @rg.get('cache') .should == @body
35
+ stub_request(:get, @url).to_return(:body => @body.reverse).times(2)
36
+ @rg.get('cache') .should == @body
37
+ @rg.get('cache', {}, :cache => false).should == @body.reverse
38
+ @rg.get('cache') .should == @body.reverse
39
+ @rg.cache = nil
40
+ @rg.get('cache', {}, :cache => false).should == @body.reverse
41
+ end
22
42
  end
23
43
 
24
44
  should 'not cache post/put/delete' do
data/test/test_error.rb CHANGED
@@ -48,4 +48,13 @@ describe RestGraph::Error do
48
48
  error.should.not.kind_of?(RestGraph::Error::AccessToken)
49
49
  error.should .kind_of?(RestGraph::Error)
50
50
  end
51
+
52
+ should 'nuke cache upon errors' do
53
+ stub_request(:get, 'https://graph.facebook.com/me').
54
+ to_return(:body => '{"error":"wrong"}').times(2)
55
+
56
+ rg = RestGraph.new(:cache => {}, :error_handler => lambda{|e,u|})
57
+ rg.get('me'); rg.get('me')
58
+ rg.cache.values.should == [nil]
59
+ end
51
60
  end
@@ -0,0 +1,36 @@
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/facebook_util'
9
+
10
+ describe RestGraph::FacebookUtil do
11
+ after do
12
+ RR.verify
13
+ end
14
+
15
+ before do
16
+ @res = [{'publish_stream' => 1, 'email' => 0}]
17
+ end
18
+
19
+ should 'fix_permission' do
20
+ RestGraph.new.fix_permissions(@res).should == %w[publish_stream]
21
+ end
22
+
23
+ should 'fix_fql_multi' do
24
+ RestGraph.new.fix_fql_multi([{'name'=>'a', 'fql_result_set'=> @res}]).
25
+ should == {'a' => @res}
26
+ end
27
+
28
+ should 'permissions' do
29
+ mock(rg = RestGraph.new).fql(
30
+ rg.permissions_fql(1234,
31
+ RestGraph::FacebookUtil::PERMISSIONS), {}, :secret => true
32
+ ){ @res }
33
+
34
+ rg.permissions(1234).should == %w[publish_stream]
35
+ end
36
+ end
@@ -5,9 +5,9 @@ else
5
5
  require File.dirname(__FILE__) + '/common'
6
6
  end
7
7
 
8
- require 'rest-graph/load_config'
8
+ require 'rest-graph/config_util'
9
9
 
10
- describe RestGraph::LoadConfig do
10
+ describe RestGraph::ConfigUtil do
11
11
 
12
12
  after do
13
13
  RR.verify
@@ -15,8 +15,8 @@ describe RestGraph::LoadConfig do
15
15
 
16
16
  should 'honor rails config' do
17
17
  ::Rails = Object.new
18
- mock(Rails).env { 'test' }
19
- mock(Rails).root{ File.dirname(__FILE__) }
18
+ mock(Rails).env { 'test' }.times(2)
19
+ mock(Rails).root{ File.dirname(__FILE__) }.times(2)
20
20
 
21
21
  check = lambda{
22
22
  RestGraph.default_app_id.should == 41829
@@ -25,16 +25,18 @@ describe RestGraph::LoadConfig do
25
25
  RestGraph.default_lang.should == 'zh-tw'
26
26
  }
27
27
 
28
- TestHelper.ensure_rollback{
29
- RestGraph::LoadConfig.load_if_rails!
30
- check
31
- }
32
-
33
- TestHelper.ensure_rollback{
34
- RestGraph::LoadConfig.load_config!(
35
- "#{File.dirname(__FILE__)}/config/rest-graph.yaml",
36
- 'test')
37
- check
28
+ [RestGraph::ConfigUtil, RestGraph].each{ |const|
29
+ TestHelper.ensure_rollback{
30
+ const.load_config_for_rails
31
+ check.call
32
+ }
33
+
34
+ TestHelper.ensure_rollback{
35
+ const.load_config(
36
+ "#{File.dirname(__FILE__)}/config/rest-graph.yaml",
37
+ 'test')
38
+ check.call
39
+ }
38
40
  }
39
41
  end
40
42
  end
data/test/test_misc.rb CHANGED
@@ -53,13 +53,13 @@ describe RestGraph do
53
53
  end
54
54
 
55
55
  should 'auto decode json' do
56
- RestGraph.new(:auto_decode => true).send(:post_request, '[]').
57
- should == []
56
+ RestGraph.new(:auto_decode => true).
57
+ send(:post_request, '[]', '', {}).should == []
58
58
  end
59
59
 
60
60
  should 'not auto decode json' do
61
- RestGraph.new(:auto_decode => false).send(:post_request, '[]').
62
- should == '[]'
61
+ RestGraph.new(:auto_decode => false).
62
+ send(:post_request, '[]', '', {}).should == '[]'
63
63
  end
64
64
 
65
65
  should 'give better inspect string' do
data/test/test_parse.rb CHANGED
@@ -58,7 +58,7 @@ describe RestGraph do
58
58
  should 'parse json correctly' do
59
59
  rg = RestGraph.new
60
60
 
61
- rg.parse_json!('bad json').should == nil
61
+ rg.parse_json!('bad json') .should == nil
62
62
  rg.parse_json!('{"no":"sig"}').should == nil
63
63
  rg.parse_json!('{"feed":"me","sig":"bddd192cf27f22c05f61c8bea24fa4b7"}').
64
64
  should == nil
@@ -66,6 +66,9 @@ describe RestGraph do
66
66
  rg = RestGraph.new(:secret => 'bread')
67
67
  rg.parse_json!('{"feed":"me","sig":"20393e7823730308938a86ecf1c88b14"}').
68
68
  should == {'feed' => 'me', 'sig' => "20393e7823730308938a86ecf1c88b14"}
69
+ rg.data.empty?.should == false
70
+ rg.parse_json!('bad json')
71
+ rg.data.empty?.should == true
69
72
  end
70
73
 
71
74
  should 'parse signed_request' do
@@ -85,13 +88,14 @@ describe RestGraph do
85
88
 
86
89
  signed_request = "#{encode[sig[0..-4]+'bad']}.#{json_encoded}"
87
90
  rg.parse_signed_request!(signed_request).should == nil
91
+ rg.data .should == {}
88
92
  end
89
93
 
90
94
  should 'fallback to ruby-hmac if Digest.new raise an runtime error' do
91
95
  key, data = 'top', 'secret'
92
- mock(OpenSSL::Digest::Digest).new('sha256'){ raise 'boom' }
93
- RestGraph.hmac_sha256(key, data).should ==
94
- OpenSSL::HMAC.digest('sha256', key, data)
96
+ digest = OpenSSL::HMAC.digest('sha256', key, data)
97
+ mock(OpenSSL::HMAC).digest('sha256', key, data){ raise 'boom' }
98
+ RestGraph.hmac_sha256(key, data).should == digest
95
99
  end
96
100
 
97
101
  should 'generate correct fbs with correct sig' do
@@ -102,7 +106,9 @@ describe RestGraph do
102
106
  should 'parse fbs from facebook response which lacks sig...' do
103
107
  rg = RestGraph.new(:access_token => 'a', :secret => 'z')
104
108
  rg.parse_fbs!(rg.fbs) .should.kind_of?(Hash)
109
+ rg.data.empty?.should == false
105
110
  rg.parse_fbs!(rg.fbs.sub(/sig\=\w+/, 'sig=abc')).should == nil
111
+ rg.data.empty?.should == true
106
112
  end
107
113
 
108
114
  should 'generate correct fbs with additional parameters' do
metadata CHANGED
@@ -1,218 +1,162 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rest-graph
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 1
7
- - 7
8
- - 0
9
- version: 1.7.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.8.0
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Cardinal Blue
13
- - "Lin Jen-Shin (aka godfat \xE7\x9C\x9F\xE5\xB8\xB8)"
9
+ - Lin Jen-Shin (godfat)
14
10
  autorequire:
15
11
  bindir: bin
16
12
  cert_chain: []
17
-
18
- date: 2010-12-30 00:00:00 +08:00
13
+ date: 2011-03-08 00:00:00.000000000 +08:00
19
14
  default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
22
17
  name: rest-client
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
18
+ requirement: &2153148340 !ruby/object:Gem::Requirement
25
19
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- segments:
30
- - 1
31
- - 6
32
- - 1
33
- version: 1.6.1
20
+ requirements:
21
+ - - ! '>='
22
+ - !ruby/object:Gem::Version
23
+ version: '0'
34
24
  type: :development
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: em-http-request
38
25
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
26
+ version_requirements: *2153148340
27
+ - !ruby/object:Gem::Dependency
28
+ name: em-http-request
29
+ requirement: &2153314520 !ruby/object:Gem::Requirement
40
30
  none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- segments:
45
- - 0
46
- - 2
47
- - 15
48
- version: 0.2.15
31
+ requirements:
32
+ - - ! '>='
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
49
35
  type: :development
50
- version_requirements: *id002
51
- - !ruby/object:Gem::Dependency
52
- name: rack
53
36
  prerelease: false
54
- requirement: &id003 !ruby/object:Gem::Requirement
37
+ version_requirements: *2153314520
38
+ - !ruby/object:Gem::Dependency
39
+ name: rack
40
+ requirement: &2153544440 !ruby/object:Gem::Requirement
55
41
  none: false
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- segments:
60
- - 1
61
- - 2
62
- - 1
63
- version: 1.2.1
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
64
46
  type: :development
65
- version_requirements: *id003
66
- - !ruby/object:Gem::Dependency
67
- name: yajl-ruby
68
47
  prerelease: false
69
- requirement: &id004 !ruby/object:Gem::Requirement
48
+ version_requirements: *2153544440
49
+ - !ruby/object:Gem::Dependency
50
+ name: yajl-ruby
51
+ requirement: &2153635780 !ruby/object:Gem::Requirement
70
52
  none: false
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- segments:
75
- - 0
76
- - 7
77
- - 8
78
- version: 0.7.8
53
+ requirements:
54
+ - - ! '>='
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
79
57
  type: :development
80
- version_requirements: *id004
81
- - !ruby/object:Gem::Dependency
82
- name: json
83
58
  prerelease: false
84
- requirement: &id005 !ruby/object:Gem::Requirement
59
+ version_requirements: *2153635780
60
+ - !ruby/object:Gem::Dependency
61
+ name: json
62
+ requirement: &2153767440 !ruby/object:Gem::Requirement
85
63
  none: false
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- segments:
90
- - 1
91
- - 4
92
- - 6
93
- version: 1.4.6
64
+ requirements:
65
+ - - ! '>='
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
94
68
  type: :development
95
- version_requirements: *id005
96
- - !ruby/object:Gem::Dependency
97
- name: json_pure
98
69
  prerelease: false
99
- requirement: &id006 !ruby/object:Gem::Requirement
70
+ version_requirements: *2153767440
71
+ - !ruby/object:Gem::Dependency
72
+ name: json_pure
73
+ requirement: &2153853200 !ruby/object:Gem::Requirement
100
74
  none: false
101
- requirements:
102
- - - ">="
103
- - !ruby/object:Gem::Version
104
- segments:
105
- - 1
106
- - 4
107
- - 6
108
- version: 1.4.6
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
109
79
  type: :development
110
- version_requirements: *id006
111
- - !ruby/object:Gem::Dependency
112
- name: ruby-hmac
113
80
  prerelease: false
114
- requirement: &id007 !ruby/object:Gem::Requirement
81
+ version_requirements: *2153853200
82
+ - !ruby/object:Gem::Dependency
83
+ name: ruby-hmac
84
+ requirement: &2153871880 !ruby/object:Gem::Requirement
115
85
  none: false
116
- requirements:
117
- - - ">="
118
- - !ruby/object:Gem::Version
119
- segments:
120
- - 0
121
- - 4
122
- - 0
123
- version: 0.4.0
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
124
90
  type: :development
125
- version_requirements: *id007
126
- - !ruby/object:Gem::Dependency
127
- name: rr
128
91
  prerelease: false
129
- requirement: &id008 !ruby/object:Gem::Requirement
130
- none: false
131
- requirements:
132
- - - ">="
133
- - !ruby/object:Gem::Version
134
- segments:
135
- - 1
136
- - 0
137
- - 2
138
- version: 1.0.2
139
- type: :development
140
- version_requirements: *id008
141
- - !ruby/object:Gem::Dependency
92
+ version_requirements: *2153871880
93
+ - !ruby/object:Gem::Dependency
142
94
  name: webmock
143
- prerelease: false
144
- requirement: &id009 !ruby/object:Gem::Requirement
95
+ requirement: &2153926200 !ruby/object:Gem::Requirement
145
96
  none: false
146
- requirements:
147
- - - ">="
148
- - !ruby/object:Gem::Version
149
- segments:
150
- - 1
151
- - 6
152
- - 1
153
- version: 1.6.1
97
+ requirements:
98
+ - - ! '>='
99
+ - !ruby/object:Gem::Version
100
+ version: '0'
154
101
  type: :development
155
- version_requirements: *id009
156
- - !ruby/object:Gem::Dependency
157
- name: bacon
158
102
  prerelease: false
159
- requirement: &id010 !ruby/object:Gem::Requirement
103
+ version_requirements: *2153926200
104
+ - !ruby/object:Gem::Dependency
105
+ name: bacon
106
+ requirement: &2154367340 !ruby/object:Gem::Requirement
160
107
  none: false
161
- requirements:
162
- - - ">="
163
- - !ruby/object:Gem::Version
164
- segments:
165
- - 1
166
- - 1
167
- - 0
168
- version: 1.1.0
108
+ requirements:
109
+ - - ! '>='
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
169
112
  type: :development
170
- version_requirements: *id010
171
- - !ruby/object:Gem::Dependency
172
- name: bones
173
113
  prerelease: false
174
- requirement: &id011 !ruby/object:Gem::Requirement
114
+ version_requirements: *2154367340
115
+ - !ruby/object:Gem::Dependency
116
+ name: rr
117
+ requirement: &2154734360 !ruby/object:Gem::Requirement
175
118
  none: false
176
- requirements:
177
- - - ">="
178
- - !ruby/object:Gem::Version
179
- segments:
180
- - 3
181
- - 5
182
- - 4
183
- version: 3.5.4
119
+ requirements:
120
+ - - ! '>='
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
184
123
  type: :development
185
- version_requirements: *id011
186
- description: A super simple Facebook Open Graph API client
187
- email: dev (XD) cardinalblue.com
124
+ prerelease: false
125
+ version_requirements: *2154734360
126
+ description: A lightweight Facebook Graph API client
127
+ email:
128
+ - dev (XD) cardinalblue.com
188
129
  executables: []
189
-
190
130
  extensions: []
191
-
192
- extra_rdoc_files:
131
+ extra_rdoc_files:
193
132
  - CHANGES
194
133
  - CONTRIBUTORS
195
- - Gemfile
196
- - Gemfile.lock
197
134
  - LICENSE
198
- - README
199
135
  - TODO
200
- - rest-graph.gemspec
201
- files:
136
+ files:
137
+ - .gitignore
202
138
  - CHANGES
203
139
  - CONTRIBUTORS
204
140
  - Gemfile
205
- - Gemfile.lock
206
141
  - LICENSE
207
142
  - README
208
- - README.rdoc
143
+ - README.md
209
144
  - Rakefile
210
145
  - TODO
146
+ - doc/ToC.md
147
+ - doc/dependency.md
148
+ - doc/design.md
149
+ - doc/rails.md
150
+ - doc/test.md
151
+ - doc/tutorial.md
211
152
  - example/multi/config.ru
212
153
  - example/multi/rainbows.rb
154
+ - example/rails2/Gemfile
155
+ - example/rails2/Gemfile.lock
213
156
  - example/rails2/README
214
157
  - example/rails2/Rakefile
215
158
  - example/rails2/app/controllers/application_controller.rb
159
+ - example/rails2/app/views/application/helper.html.erb
216
160
  - example/rails2/config/boot.rb
217
161
  - example/rails2/config/environment.rb
218
162
  - example/rails2/config/environments/development.rb
@@ -221,29 +165,50 @@ files:
221
165
  - example/rails2/config/initializers/cookie_verification_secret.rb
222
166
  - example/rails2/config/initializers/new_rails_defaults.rb
223
167
  - example/rails2/config/initializers/session_store.rb
168
+ - example/rails2/config/preinitializer.rb
224
169
  - example/rails2/config/rest-graph.yaml
225
170
  - example/rails2/config/routes.rb
226
171
  - example/rails2/log
227
- - example/rails2/script/console
228
- - example/rails2/script/server
229
172
  - example/rails2/test/functional/application_controller_test.rb
230
173
  - example/rails2/test/test_helper.rb
231
174
  - example/rails2/test/unit/rails_util_test.rb
175
+ - example/rails3/Gemfile
176
+ - example/rails3/Gemfile.lock
177
+ - example/rails3/Rakefile
178
+ - example/rails3/app/controllers/application_controller.rb
179
+ - example/rails3/app/views/application/helper.html.erb
180
+ - example/rails3/config.ru
181
+ - example/rails3/config/application.rb
182
+ - example/rails3/config/environment.rb
183
+ - example/rails3/config/environments/development.rb
184
+ - example/rails3/config/environments/production.rb
185
+ - example/rails3/config/environments/test.rb
186
+ - example/rails3/config/initializers/secret_token.rb
187
+ - example/rails3/config/initializers/session_store.rb
188
+ - example/rails3/config/rest-graph.yaml
189
+ - example/rails3/config/routes.rb
190
+ - example/rails3/test/functional/application_controller_test.rb
191
+ - example/rails3/test/test_helper.rb
192
+ - example/rails3/test/unit/rails_util_test.rb
232
193
  - init.rb
233
194
  - lib/rest-graph.rb
234
195
  - lib/rest-graph/auto_load.rb
235
196
  - lib/rest-graph/autoload.rb
236
- - lib/rest-graph/load_config.rb
197
+ - lib/rest-graph/config_util.rb
198
+ - lib/rest-graph/core.rb
199
+ - lib/rest-graph/facebook_util.rb
237
200
  - lib/rest-graph/rails_util.rb
238
201
  - lib/rest-graph/test_util.rb
239
202
  - lib/rest-graph/version.rb
240
203
  - rest-graph.gemspec
204
+ - task/gemgem.rb
241
205
  - test/common.rb
242
206
  - test/config/rest-graph.yaml
243
207
  - test/test_api.rb
244
208
  - test/test_cache.rb
245
209
  - test/test_default.rb
246
210
  - test/test_error.rb
211
+ - test/test_facebook.rb
247
212
  - test/test_handler.rb
248
213
  - test/test_load_config.rb
249
214
  - test/test_misc.rb
@@ -257,43 +222,38 @@ files:
257
222
  - test/test_test_util.rb
258
223
  - test/test_timeout.rb
259
224
  has_rdoc: true
260
- homepage: http://github.com/cardinalblue/rest-graph
225
+ homepage: http://github.com/godfat/
261
226
  licenses: []
262
-
263
227
  post_install_message:
264
- rdoc_options:
228
+ rdoc_options:
265
229
  - --main
266
- - README.rdoc
267
- require_paths:
230
+ - README
231
+ require_paths:
268
232
  - lib
269
- required_ruby_version: !ruby/object:Gem::Requirement
233
+ required_ruby_version: !ruby/object:Gem::Requirement
270
234
  none: false
271
- requirements:
272
- - - ">="
273
- - !ruby/object:Gem::Version
274
- segments:
275
- - 0
276
- version: "0"
277
- required_rubygems_version: !ruby/object:Gem::Requirement
235
+ requirements:
236
+ - - ! '>='
237
+ - !ruby/object:Gem::Version
238
+ version: '0'
239
+ required_rubygems_version: !ruby/object:Gem::Requirement
278
240
  none: false
279
- requirements:
280
- - - ">="
281
- - !ruby/object:Gem::Version
282
- segments:
283
- - 0
284
- version: "0"
241
+ requirements:
242
+ - - ! '>='
243
+ - !ruby/object:Gem::Version
244
+ version: '0'
285
245
  requirements: []
286
-
287
- rubyforge_project: rest-graph
288
- rubygems_version: 1.3.7
246
+ rubyforge_project:
247
+ rubygems_version: 1.6.1
289
248
  signing_key:
290
249
  specification_version: 3
291
- summary: A super simple Facebook Open Graph API client
292
- test_files:
250
+ summary: A lightweight Facebook Graph API client
251
+ test_files:
293
252
  - test/test_api.rb
294
253
  - test/test_cache.rb
295
254
  - test/test_default.rb
296
255
  - test/test_error.rb
256
+ - test/test_facebook.rb
297
257
  - test/test_handler.rb
298
258
  - test/test_load_config.rb
299
259
  - test/test_misc.rb