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.
- data/.gitignore +6 -0
- data/CHANGES +44 -0
- data/CONTRIBUTORS +1 -0
- data/README +221 -191
- data/README.md +367 -0
- data/Rakefile +28 -43
- data/TODO +1 -0
- data/doc/ToC.md +10 -0
- data/doc/dependency.md +78 -0
- data/doc/design.md +206 -0
- data/doc/rails.md +12 -0
- data/doc/test.md +46 -0
- data/doc/tutorial.md +142 -0
- data/example/rails2/Gemfile +13 -0
- data/example/rails2/app/controllers/application_controller.rb +10 -8
- data/example/rails2/app/views/application/helper.html.erb +1 -0
- data/example/rails2/config/boot.rb +16 -0
- data/example/rails2/config/environment.rb +3 -30
- data/example/rails2/config/preinitializer.rb +23 -0
- data/example/rails2/test/functional/application_controller_test.rb +72 -32
- data/example/rails2/test/test_helper.rb +10 -6
- data/example/rails3/Gemfile +13 -0
- data/example/rails3/Rakefile +7 -0
- data/example/rails3/app/controllers/application_controller.rb +118 -0
- data/example/rails3/app/views/application/helper.html.erb +1 -0
- data/example/rails3/config.ru +4 -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-graph.yaml +11 -0
- data/example/rails3/config/routes.rb +5 -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/init.rb +1 -1
- data/lib/rest-graph.rb +5 -571
- data/lib/rest-graph/auto_load.rb +3 -3
- data/lib/rest-graph/autoload.rb +3 -3
- data/lib/rest-graph/config_util.rb +43 -0
- data/lib/rest-graph/core.rb +608 -0
- data/lib/rest-graph/facebook_util.rb +74 -0
- data/lib/rest-graph/rails_util.rb +85 -37
- data/lib/rest-graph/test_util.rb +18 -2
- data/lib/rest-graph/version.rb +2 -2
- data/rest-graph.gemspec +42 -47
- data/task/gemgem.rb +155 -0
- data/test/test_api.rb +16 -0
- data/test/test_cache.rb +28 -8
- data/test/test_error.rb +9 -0
- data/test/test_facebook.rb +36 -0
- data/test/test_load_config.rb +16 -14
- data/test/test_misc.rb +4 -4
- data/test/test_parse.rb +10 -4
- metadata +146 -186
- data/Gemfile.lock +0 -45
- data/README.rdoc +0 -337
- data/example/rails2/script/console +0 -3
- data/example/rails2/script/server +0 -3
- 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
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
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
|
data/test/test_load_config.rb
CHANGED
@@ -5,9 +5,9 @@ else
|
|
5
5
|
require File.dirname(__FILE__) + '/common'
|
6
6
|
end
|
7
7
|
|
8
|
-
require 'rest-graph/
|
8
|
+
require 'rest-graph/config_util'
|
9
9
|
|
10
|
-
describe RestGraph::
|
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
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
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).
|
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).
|
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
|
-
|
93
|
-
|
94
|
-
|
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
|
-
|
5
|
-
|
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
|
-
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
130
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
186
|
-
|
187
|
-
|
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
|
-
|
201
|
-
|
136
|
+
files:
|
137
|
+
- .gitignore
|
202
138
|
- CHANGES
|
203
139
|
- CONTRIBUTORS
|
204
140
|
- Gemfile
|
205
|
-
- Gemfile.lock
|
206
141
|
- LICENSE
|
207
142
|
- README
|
208
|
-
- README.
|
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/
|
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/
|
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
|
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
|
-
|
275
|
-
|
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
|
-
|
283
|
-
- 0
|
284
|
-
version: "0"
|
241
|
+
requirements:
|
242
|
+
- - ! '>='
|
243
|
+
- !ruby/object:Gem::Version
|
244
|
+
version: '0'
|
285
245
|
requirements: []
|
286
|
-
|
287
|
-
|
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
|
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
|