fbgraph 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest +9 -1
- data/README.textile +214 -0
- data/Rakefile +2 -2
- data/TODO.list +7 -0
- data/fbgraph.gemspec +7 -4
- data/lib/fbgraph/base.rb +18 -11
- data/lib/fbgraph/client.rb +4 -0
- data/lib/fbgraph/realtime.rb +48 -0
- data/lib/fbgraph/search.rb +5 -1
- data/lib/fbgraph.rb +2 -3
- data/specs/lib/fbauth/authorization_spec.rb +46 -0
- data/specs/lib/fbauth/base_spec.rb +110 -0
- data/specs/lib/fbauth/client_spec.rb +84 -0
- data/specs/lib/fbauth/realtime_spec.rb +14 -0
- data/specs/lib/fbauth/search_spec.rb +48 -0
- data/specs/lib/fbauth/selection_spec.rb +14 -0
- data/specs/spec_helper.rb +0 -0
- metadata +27 -5
data/Manifest
CHANGED
@@ -1,12 +1,20 @@
|
|
1
|
+
Manifest
|
1
2
|
README
|
3
|
+
README.textile
|
2
4
|
Rakefile
|
5
|
+
TODO.list
|
6
|
+
fbgraph.gemspec
|
3
7
|
lib/fbgraph.rb
|
4
8
|
lib/fbgraph/authorization.rb
|
5
9
|
lib/fbgraph/base.rb
|
6
10
|
lib/fbgraph/client.rb
|
11
|
+
lib/fbgraph/realtime.rb
|
7
12
|
lib/fbgraph/search.rb
|
8
13
|
lib/fbgraph/selection.rb
|
9
14
|
specs/lib/fbauth/authorization_spec.rb
|
10
15
|
specs/lib/fbauth/base_spec.rb
|
16
|
+
specs/lib/fbauth/client_spec.rb
|
17
|
+
specs/lib/fbauth/realtime_spec.rb
|
11
18
|
specs/lib/fbauth/search_spec.rb
|
12
|
-
|
19
|
+
specs/lib/fbauth/selection_spec.rb
|
20
|
+
specs/spec_helper.rb
|
data/README.textile
ADDED
@@ -0,0 +1,214 @@
|
|
1
|
+
h2. FBGRaph
|
2
|
+
|
3
|
+
p. Facebook Open Graph API Gem.
|
4
|
+
|
5
|
+
h2. Installation
|
6
|
+
|
7
|
+
notextile. <code> gem install fbgraph</code>
|
8
|
+
|
9
|
+
p. Be sure to require it
|
10
|
+
|
11
|
+
notextile. <code>require "fbgraph"</code>
|
12
|
+
|
13
|
+
p. or add this line into Gemfile for Rails 3
|
14
|
+
|
15
|
+
notextile. <code>gem "fbgraph"</code>
|
16
|
+
|
17
|
+
|
18
|
+
h2. Example Apps
|
19
|
+
|
20
|
+
"Rails 3 Example":http://github.com/nsanta/fbgraph_example
|
21
|
+
|
22
|
+
h2. Usage
|
23
|
+
|
24
|
+
p. FBGraph supports the most (no analytics yet) features of Facebook Open Graph API: developers.facebook.com/docs/reference/api/
|
25
|
+
|
26
|
+
h3. Initialization
|
27
|
+
|
28
|
+
p. Without a token (for authorization)
|
29
|
+
|
30
|
+
notextile. <code>client = FBGraph::Client.new(:client_id => 'client_id',:secret_id =>'secret_id')</code>
|
31
|
+
|
32
|
+
p. With a token
|
33
|
+
|
34
|
+
notextile. <code>client = FBGraph::Client.new(:client_id => 'client_id',:secret_id =>'secret_id' ,:token => token)</code>
|
35
|
+
|
36
|
+
p. All methods are chainable
|
37
|
+
|
38
|
+
Examples:
|
39
|
+
|
40
|
+
notextile. <code>client.selection.me.photos.until(Time.now.to_s).since(3.days.ago).limit(10).info</code>
|
41
|
+
|
42
|
+
notextile. <code>client.selection.user('id').videos.offset(10).info</code>
|
43
|
+
|
44
|
+
notextile. <code>client.search.query('q').on('users').limit(20).info</code>
|
45
|
+
|
46
|
+
h3. Authorization
|
47
|
+
|
48
|
+
h4. client.authorization.authorize_url
|
49
|
+
|
50
|
+
p. returns the authorize url
|
51
|
+
|
52
|
+
notextile. <code> redirect_to client.authorization.authorize_url(:redirect_uri => callback_url , :scope => 'email,user_photos,friends_photos')</code>
|
53
|
+
|
54
|
+
h4. client.authorization.process_callback
|
55
|
+
|
56
|
+
p. process the callback and returns the access token
|
57
|
+
|
58
|
+
notextile. <code> access_token = client.authorization.process_callback(params[:code], :redirect_uri => callback_url)</code>
|
59
|
+
|
60
|
+
|
61
|
+
h3. Selection
|
62
|
+
|
63
|
+
h4. Accessing objects with connection types.
|
64
|
+
|
65
|
+
p. All objects and their connections can be accesed
|
66
|
+
|
67
|
+
Examples:
|
68
|
+
|
69
|
+
notextile. <code> client.selection.me.home.info!</code>
|
70
|
+
|
71
|
+
notextile. <code> client.selection.user('id').photos.info!</code>
|
72
|
+
|
73
|
+
notextile. <code> client.selection.photo('id').comments.info!</code>
|
74
|
+
|
75
|
+
notextile. <code> client.selection.page('id').info!</code>
|
76
|
+
|
77
|
+
p. Also you can get results of more than 1 objects
|
78
|
+
|
79
|
+
Example:
|
80
|
+
|
81
|
+
notextile. <code> client.selection.user([id1,id2,id3]).info!</code>
|
82
|
+
|
83
|
+
|
84
|
+
h4. client.selection.info!
|
85
|
+
|
86
|
+
p. request with GET for information and return the response parsed with JSON. You can disable the parsing passing false as a first and unique parameter
|
87
|
+
|
88
|
+
notextile. <code> user_info = client.selection.me.info! </code>
|
89
|
+
|
90
|
+
|
91
|
+
h3. Publishing
|
92
|
+
|
93
|
+
h4. client.selection.publish!
|
94
|
+
|
95
|
+
p. request with POST for publishing and return the response parsed with JSON. You can disable the parsing passing false as a first and unique parameter
|
96
|
+
|
97
|
+
notextile. <code> client.selection.post('id').comments.params(:message => 'comment test').publish! </code>
|
98
|
+
|
99
|
+
p. OR
|
100
|
+
|
101
|
+
notextile. <code> client.selection.post('id').comments.publish!(:message => 'comment test') </code>
|
102
|
+
|
103
|
+
|
104
|
+
h3. Deletion
|
105
|
+
|
106
|
+
h4. client.selection.delete!
|
107
|
+
|
108
|
+
p. request with DELETE for deletion and return the response parsed with JSON. You can disable the parsing passing false as a first and unique parameter
|
109
|
+
|
110
|
+
notextile. <code> client.selection.post('id').delete!</code>
|
111
|
+
|
112
|
+
|
113
|
+
h3. Picture
|
114
|
+
|
115
|
+
|
116
|
+
h4. client.selection.picture
|
117
|
+
|
118
|
+
p. return the url of the object picture
|
119
|
+
|
120
|
+
notextile. <code> client.selection.me.picture </code>
|
121
|
+
|
122
|
+
|
123
|
+
h3. Paging
|
124
|
+
|
125
|
+
h4. client.selection.limit
|
126
|
+
|
127
|
+
|
128
|
+
notextile. <code> client.selection.me.photos.limit(3).info! </code>
|
129
|
+
|
130
|
+
h4. client.selection.offset
|
131
|
+
|
132
|
+
|
133
|
+
notextile. <code> client.selection.me.photos.offset(10).info! </code>
|
134
|
+
|
135
|
+
h4. client.selection.until
|
136
|
+
|
137
|
+
|
138
|
+
notextile. <code> client.selection.me.photos.until(Time.now.to_s).info! </code>
|
139
|
+
|
140
|
+
h4. client.selection.since
|
141
|
+
|
142
|
+
|
143
|
+
notextile. <code> client.selection.me.photos.since(3.days.ago).info! </code>
|
144
|
+
|
145
|
+
|
146
|
+
h3. Search
|
147
|
+
|
148
|
+
h4. client.search.query('query').info!
|
149
|
+
|
150
|
+
p. Get the search results
|
151
|
+
|
152
|
+
notextile. <code> results = client.search.query('facebook').info! </code>
|
153
|
+
|
154
|
+
|
155
|
+
h4. client.search.query('query')on('type').info!
|
156
|
+
|
157
|
+
p. Get the search results by type
|
158
|
+
|
159
|
+
notextile. <code> results = client.search.query('facebook').on('home').info! </code>
|
160
|
+
|
161
|
+
h3. RealTime Updates
|
162
|
+
|
163
|
+
h4. client.realtime.user
|
164
|
+
|
165
|
+
h4. client.realtime.permissions
|
166
|
+
|
167
|
+
h4. client.realtime.errors
|
168
|
+
|
169
|
+
p. Set the object to be subscribed, modified or unsubscribed
|
170
|
+
|
171
|
+
h4. client.realtime.fields('email,picture')
|
172
|
+
|
173
|
+
p. Set the objects fields
|
174
|
+
|
175
|
+
|
176
|
+
h4. client.realtime.callback_url(url)
|
177
|
+
|
178
|
+
p. Set the callback url
|
179
|
+
|
180
|
+
|
181
|
+
h4. client.realtime.verify_token(token)
|
182
|
+
|
183
|
+
p. Set the verify token (optional)
|
184
|
+
|
185
|
+
h4. client.realtime.subscribe!
|
186
|
+
|
187
|
+
p. Send the request for add/modify a subscription for realtime Updates.
|
188
|
+
|
189
|
+
|
190
|
+
Examples:
|
191
|
+
|
192
|
+
notextile. <code> results = client.realtime.user.fields('email,picture').callback_url(url).verify_token('token').subscribe! </code>
|
193
|
+
|
194
|
+
notextile. <code> results = client.realtime.permissions.fields('read_stream').callback_url(url).subscribe! </code>
|
195
|
+
|
196
|
+
If you want delete a subscirpition, you can use the delete! method.
|
197
|
+
|
198
|
+
Examples:
|
199
|
+
|
200
|
+
notextile. <code> results = client.realtime.user.delete!</code>
|
201
|
+
|
202
|
+
|
203
|
+
h3. Analytics
|
204
|
+
|
205
|
+
h4. TODO
|
206
|
+
|
207
|
+
h3. Advanced
|
208
|
+
|
209
|
+
h4. not documented yet
|
210
|
+
|
211
|
+
|
212
|
+
h2. Contributions
|
213
|
+
|
214
|
+
p. Just do a pull request with the repo in sync.
|
data/Rakefile
CHANGED
@@ -2,11 +2,11 @@ require 'rubygems'
|
|
2
2
|
require 'rake'
|
3
3
|
require 'echoe'
|
4
4
|
|
5
|
-
Echoe.new('fbgraph', '0.0.
|
5
|
+
Echoe.new('fbgraph', '0.0.5') do |p|
|
6
6
|
p.description = "A Gem for Facebook Open Graph API"
|
7
7
|
p.url = "http://github.com/nsanta/fbgraph"
|
8
8
|
p.author = "Nicolas Santa"
|
9
9
|
p.email = "nicolas55ar@gmail.com"
|
10
10
|
p.ignore_pattern = ["tmp/*", "script/*"]
|
11
|
-
p.development_dependencies = ['oauth2']
|
11
|
+
p.development_dependencies = ['oauth2' , 'json']
|
12
12
|
end
|
data/TODO.list
ADDED
data/fbgraph.gemspec
CHANGED
@@ -2,15 +2,15 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{fbgraph}
|
5
|
-
s.version = "0.0.
|
5
|
+
s.version = "0.0.5"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Nicolas Santa"]
|
9
|
-
s.date = %q{2010-05-
|
9
|
+
s.date = %q{2010-05-11}
|
10
10
|
s.description = %q{A Gem for Facebook Open Graph API}
|
11
11
|
s.email = %q{nicolas55ar@gmail.com}
|
12
|
-
s.extra_rdoc_files = ["README", "lib/fbgraph.rb", "lib/fbgraph/authorization.rb", "lib/fbgraph/base.rb", "lib/fbgraph/client.rb", "lib/fbgraph/search.rb", "lib/fbgraph/selection.rb"]
|
13
|
-
s.files = ["README", "Rakefile", "lib/fbgraph.rb", "lib/fbgraph/authorization.rb", "lib/fbgraph/base.rb", "lib/fbgraph/client.rb", "lib/fbgraph/search.rb", "lib/fbgraph/selection.rb", "specs/lib/fbauth/authorization_spec.rb", "specs/lib/fbauth/base_spec.rb", "specs/lib/fbauth/search_spec.rb", "
|
12
|
+
s.extra_rdoc_files = ["README", "README.textile", "TODO.list", "lib/fbgraph.rb", "lib/fbgraph/authorization.rb", "lib/fbgraph/base.rb", "lib/fbgraph/client.rb", "lib/fbgraph/realtime.rb", "lib/fbgraph/search.rb", "lib/fbgraph/selection.rb"]
|
13
|
+
s.files = ["Manifest", "README", "README.textile", "Rakefile", "TODO.list", "fbgraph.gemspec", "lib/fbgraph.rb", "lib/fbgraph/authorization.rb", "lib/fbgraph/base.rb", "lib/fbgraph/client.rb", "lib/fbgraph/realtime.rb", "lib/fbgraph/search.rb", "lib/fbgraph/selection.rb", "specs/lib/fbauth/authorization_spec.rb", "specs/lib/fbauth/base_spec.rb", "specs/lib/fbauth/client_spec.rb", "specs/lib/fbauth/realtime_spec.rb", "specs/lib/fbauth/search_spec.rb", "specs/lib/fbauth/selection_spec.rb", "specs/spec_helper.rb"]
|
14
14
|
s.homepage = %q{http://github.com/nsanta/fbgraph}
|
15
15
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Fbgraph", "--main", "README"]
|
16
16
|
s.require_paths = ["lib"]
|
@@ -24,10 +24,13 @@ Gem::Specification.new do |s|
|
|
24
24
|
|
25
25
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
26
26
|
s.add_development_dependency(%q<oauth2>, [">= 0"])
|
27
|
+
s.add_development_dependency(%q<json>, [">= 0"])
|
27
28
|
else
|
28
29
|
s.add_dependency(%q<oauth2>, [">= 0"])
|
30
|
+
s.add_dependency(%q<json>, [">= 0"])
|
29
31
|
end
|
30
32
|
else
|
31
33
|
s.add_dependency(%q<oauth2>, [">= 0"])
|
34
|
+
s.add_dependency(%q<json>, [">= 0"])
|
32
35
|
end
|
33
36
|
end
|
data/lib/fbgraph/base.rb
CHANGED
@@ -2,7 +2,7 @@ module FBGraph
|
|
2
2
|
|
3
3
|
class Base
|
4
4
|
|
5
|
-
attr_reader :objects , :connection_type
|
5
|
+
attr_reader :objects , :connection_type
|
6
6
|
|
7
7
|
def initialize(client)
|
8
8
|
@client = client
|
@@ -22,18 +22,26 @@ module FBGraph
|
|
22
22
|
return self
|
23
23
|
end
|
24
24
|
|
25
|
-
def params(
|
26
|
-
@params =
|
25
|
+
def params= (ps)
|
26
|
+
@params = ps
|
27
27
|
return self
|
28
28
|
end
|
29
|
-
|
30
29
|
|
31
|
-
def
|
30
|
+
def params
|
31
|
+
@params
|
32
|
+
end
|
33
|
+
|
34
|
+
def param (pm)
|
35
|
+
@params.merge!(pm)
|
36
|
+
return self
|
37
|
+
end
|
38
|
+
|
39
|
+
def info!(parsed = true)
|
32
40
|
if @objects.is_a? Array
|
33
|
-
@params.merge!({:ids =>
|
34
|
-
uri =
|
41
|
+
@params.merge!({:ids => @objects.join(',')})
|
42
|
+
uri = build_open_graph_path(nil,nil, @params)
|
35
43
|
elsif @objects.is_a? String
|
36
|
-
uri = build_open_graph_path(@objects , @connection_type)
|
44
|
+
uri = build_open_graph_path(@objects , @connection_type, @params)
|
37
45
|
end
|
38
46
|
puts "FBGRAPH [GET]: #{uri}"
|
39
47
|
result = @client.consumer.get(uri)
|
@@ -41,7 +49,7 @@ module FBGraph
|
|
41
49
|
end
|
42
50
|
|
43
51
|
|
44
|
-
def publish(data = {},parsed = true)
|
52
|
+
def publish!(data = {},parsed = true)
|
45
53
|
@params.merge!(data)
|
46
54
|
uri = build_open_graph_path(@objects , @connection_type)
|
47
55
|
puts "FBGRAPH [POST]: #{uri}"
|
@@ -49,7 +57,7 @@ module FBGraph
|
|
49
57
|
return parsed ? JSON.parse(result) : result
|
50
58
|
end
|
51
59
|
|
52
|
-
def delete(parsed = true)
|
60
|
+
def delete!(parsed = true)
|
53
61
|
uri = build_open_graph_path(@objects , nil)
|
54
62
|
puts "FBGRAPH [DELETE]: #{uri}"
|
55
63
|
result = @client.consumer.delete(uri , @params)
|
@@ -62,7 +70,6 @@ module FBGraph
|
|
62
70
|
@params[:#{paging}] = value
|
63
71
|
end
|
64
72
|
PAGING
|
65
|
-
|
66
73
|
end
|
67
74
|
|
68
75
|
|
data/lib/fbgraph/client.rb
CHANGED
@@ -0,0 +1,48 @@
|
|
1
|
+
module FBGraph
|
2
|
+
class Realtime < Base
|
3
|
+
|
4
|
+
def initialize(client)
|
5
|
+
@objects = 'subscriptions'
|
6
|
+
super(client)
|
7
|
+
end
|
8
|
+
|
9
|
+
|
10
|
+
OBJECTS = %w(user permissions errors).freeze
|
11
|
+
|
12
|
+
OBJECTS.each do |object|
|
13
|
+
class_eval <<-METHOD
|
14
|
+
def #{object}
|
15
|
+
@params[:object] = "#{object}"
|
16
|
+
self
|
17
|
+
end
|
18
|
+
METHOD
|
19
|
+
end
|
20
|
+
|
21
|
+
def fields(fs = "email,picture")
|
22
|
+
@params[:fields] = fs
|
23
|
+
self
|
24
|
+
end
|
25
|
+
|
26
|
+
def callback_url(url)
|
27
|
+
@params[:callback_url] = url
|
28
|
+
self
|
29
|
+
end
|
30
|
+
|
31
|
+
def veryfy_token(token)
|
32
|
+
@params[:veryfy_token] = token
|
33
|
+
self
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
alias_method :subscribe! , :publish!
|
38
|
+
|
39
|
+
private
|
40
|
+
|
41
|
+
def build_open_graph_path(objects,connection_type = nil , params = {})
|
42
|
+
request = "/" + [objects , connection_type].compact.join('/')
|
43
|
+
request += "?"+params.to_a.map{|p| p.join('=')}.join('&') unless params.empty?
|
44
|
+
request
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
data/lib/fbgraph/search.rb
CHANGED
data/lib/fbgraph.rb
CHANGED
@@ -0,0 +1,46 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__),"../../../lib/fbgraph")
|
2
|
+
|
3
|
+
describe FBGraph do
|
4
|
+
describe FBGraph::Authorization do
|
5
|
+
|
6
|
+
before :each do
|
7
|
+
@client_id = 'client_id'
|
8
|
+
@secret_id = 'secret_id'
|
9
|
+
@client = FBGraph::Client.new(:client_id => @client_id,
|
10
|
+
:secret_id => @secret_id)
|
11
|
+
@authorization = FBGraph::Authorization.new(@client)
|
12
|
+
end
|
13
|
+
|
14
|
+
describe 'initialization' do
|
15
|
+
it 'should set the client' do
|
16
|
+
@authorization.instance_variable_get("@client").should == @client
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "instance methods" do
|
21
|
+
describe '.authorize_url' do
|
22
|
+
it 'should return the authorization url' do
|
23
|
+
@authorization.authorize_url(:redirect_uri => 'redirect/to/path' ,
|
24
|
+
:scope => 'email,user_photos,friends_photos').should == "https://graph.facebook.com/oauth/authorize?scope=email%2Cuser_photos%2Cfriends_photos&client_id=client_id&type=web_server&redirect_uri=redirect%2Fto%2Fpath"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
describe "process_callback" do
|
28
|
+
before :each do
|
29
|
+
@consumer = mock('Consumer' , :token => 'code')
|
30
|
+
options = {:redirect_uri => 'redirect/to/path'}
|
31
|
+
@client.stub!(:oauth_client)
|
32
|
+
@client.oauth_client.stub!(:web_server)
|
33
|
+
@client.oauth_client.web_server.stub!(:get_access_token).with(@consumer.token, options).and_return(@consumer)
|
34
|
+
@token = @authorization.process_callback(@consumer.token, options)
|
35
|
+
end
|
36
|
+
it 'should return the access_token' do
|
37
|
+
@token.should == @consumer.token
|
38
|
+
end
|
39
|
+
it 'should set the consumer' do
|
40
|
+
@client.consumer.should == @consumer
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,110 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__),"../../../lib/fbgraph")
|
2
|
+
|
3
|
+
describe FBGraph do
|
4
|
+
describe FBGraph::Authorization do
|
5
|
+
|
6
|
+
before :each do
|
7
|
+
@client_id = 'client_id'
|
8
|
+
@secret_id = 'secret_id'
|
9
|
+
@client = FBGraph::Client.new(:client_id => @client_id,
|
10
|
+
:secret_id => @secret_id,
|
11
|
+
:token => 'token')
|
12
|
+
@base = FBGraph::Base.new(@client)
|
13
|
+
end
|
14
|
+
|
15
|
+
describe 'initialization' do
|
16
|
+
it 'should set the client' do
|
17
|
+
@base.instance_variable_get("@client").should == @client
|
18
|
+
end
|
19
|
+
it 'should params be empty' do
|
20
|
+
@base.params.should be_empty
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "instance methods" do
|
25
|
+
describe 'find' do
|
26
|
+
it 'should objects set with "id"' do
|
27
|
+
@base.find('id').objects.should == 'id'
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe 'connection' do
|
32
|
+
it 'should set connection_type to "type"' do
|
33
|
+
@base.connection('type').connection_type.should == 'type'
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe 'params=' do
|
38
|
+
it 'should set params to {:fields => "fields"}' do
|
39
|
+
@base.params = {:fields => "fields"}
|
40
|
+
@base.params.should == {:fields => "fields"}
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe 'params' do
|
45
|
+
it 'should return params' do
|
46
|
+
@base.params = {:fields => "fields"}
|
47
|
+
@base.params.should == {:fields => "fields"}
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe 'param' do
|
52
|
+
it 'should merge the passed param' do
|
53
|
+
@base.params = {:fields => "fields"}
|
54
|
+
@base.param(:merged => true)
|
55
|
+
@base.params.should == {:fields => "fields" , :merged => true}
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
describe 'info!' do
|
60
|
+
describe 'when object is an array' do
|
61
|
+
it 'should request with the path "/?ids=1,2,3"' do
|
62
|
+
uri = "/?ids?=1,2,3"
|
63
|
+
@base.find([1,2,3])
|
64
|
+
@client.consumer.stub!(:get).with(uri).and_return('')
|
65
|
+
@base.info!(false)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
describe 'when object is a string' do
|
70
|
+
|
71
|
+
it 'should request with the path "/123"' do
|
72
|
+
uri = "/123"
|
73
|
+
@base.find('123')
|
74
|
+
@client.consumer.stub!(:get).with(uri).and_return('')
|
75
|
+
@base.info!(false)
|
76
|
+
end
|
77
|
+
|
78
|
+
describe 'when a connection is passed' do
|
79
|
+
it 'should request with the path "/123/home"' do
|
80
|
+
uri = "/123/home"
|
81
|
+
@base.find('123').connection('home')
|
82
|
+
@client.consumer.stub!(:get).with(uri).and_return('')
|
83
|
+
@base.info!(false)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
describe 'when params are passed' do
|
88
|
+
it 'should request with the path "/123?fields=name,picture"' do
|
89
|
+
uri = "/123?fields=name,picture"
|
90
|
+
@base.find('123')
|
91
|
+
@base.params = {:fields => "name,picture"}
|
92
|
+
@client.consumer.stub!(:get).with(uri).and_return('')
|
93
|
+
@base.info!(false)
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
describe 'publish!' do
|
100
|
+
|
101
|
+
end
|
102
|
+
|
103
|
+
describe 'delete!' do
|
104
|
+
|
105
|
+
end
|
106
|
+
|
107
|
+
end
|
108
|
+
|
109
|
+
end
|
110
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__),"../../../lib/fbgraph")
|
2
|
+
|
3
|
+
describe FBGraph do
|
4
|
+
describe FBGraph::Client do
|
5
|
+
describe "initialization" do
|
6
|
+
before :each do
|
7
|
+
@client_id = 'client_id'
|
8
|
+
@secret_id = 'secret_id'
|
9
|
+
end
|
10
|
+
describe 'default' do
|
11
|
+
|
12
|
+
before :each do
|
13
|
+
@client = FBGraph::Client.new(:client_id => @client_id,
|
14
|
+
:secret_id => @secret_id)
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'should set the client_id' do
|
18
|
+
@client.client_id.should == @client_id
|
19
|
+
end
|
20
|
+
it 'should set the secret_id' do
|
21
|
+
@client.secret_id.should == @secret_id
|
22
|
+
end
|
23
|
+
it 'should set the facebook_uri ' do
|
24
|
+
@client.facebook_uri.should == "https://graph.facebook.com"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe 'when token is present' do
|
29
|
+
before :each do
|
30
|
+
@token = 'token'
|
31
|
+
@client = FBGraph::Client.new(:client_id => @client_id,
|
32
|
+
:secret_id => @secret_id,
|
33
|
+
:token => @token)
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'should set the access_token' do
|
37
|
+
@client.access_token.should == @token
|
38
|
+
end
|
39
|
+
it 'should set the consumer client' do
|
40
|
+
@client.consumer.class.should == OAuth2::AccessToken
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
|
46
|
+
describe "instance methods" do
|
47
|
+
before :each do
|
48
|
+
@client_id = 'client_id'
|
49
|
+
@secret_id = 'secret_id'
|
50
|
+
@client = FBGraph::Client.new(:client_id => @client_id,
|
51
|
+
:secret_id => @secret_id)
|
52
|
+
end
|
53
|
+
describe '.authorization' do
|
54
|
+
it 'should return a FBGraph::Authorization object' do
|
55
|
+
@client.authorization.class.should == FBGraph::Authorization
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
describe '.selection' do
|
60
|
+
it 'should return a FBGraph::Selection object' do
|
61
|
+
@client.selection.class.should == FBGraph::Selection
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
describe '.search' do
|
66
|
+
it 'should return a FBGraph::Search object' do
|
67
|
+
@client.search.class.should == FBGraph::Search
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
describe '.realtime' do
|
72
|
+
it 'should return a FBGraph::Search object' do
|
73
|
+
@client.realtime.class.should == FBGraph::Realtime
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
describe '.oauth_client' do
|
78
|
+
it 'should return a OAuth2::Client object' do
|
79
|
+
@client.oauth_client.class.should == OAuth2::Client
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__),"../../../lib/fbgraph")
|
2
|
+
|
3
|
+
describe FBGraph do
|
4
|
+
describe FBGraph::RealTime do
|
5
|
+
|
6
|
+
before :each do
|
7
|
+
@client_id = 'client_id'
|
8
|
+
@secret_id = 'secret_id'
|
9
|
+
@client = FBGraph::Client.new(:client_id => @client_id,
|
10
|
+
:secret_id => @secret_id)
|
11
|
+
@search = FBGraph::Search.new(@client)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__),"../../../lib/fbgraph")
|
2
|
+
|
3
|
+
describe FBGraph do
|
4
|
+
describe FBGraph::Search do
|
5
|
+
|
6
|
+
before :each do
|
7
|
+
@client_id = 'client_id'
|
8
|
+
@secret_id = 'secret_id'
|
9
|
+
@client = FBGraph::Client.new(:client_id => @client_id,
|
10
|
+
:secret_id => @secret_id)
|
11
|
+
@search = FBGraph::Search.new(@client)
|
12
|
+
end
|
13
|
+
|
14
|
+
describe "initialization" do
|
15
|
+
it "should set @object with 'search'" do
|
16
|
+
@search.objects.should == 'search'
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
describe 'instance methods' do
|
22
|
+
|
23
|
+
describe '.query' do
|
24
|
+
before(:each) do
|
25
|
+
@result = @search.query('query')
|
26
|
+
end
|
27
|
+
it 'should return self' do
|
28
|
+
@result.should == @search
|
29
|
+
end
|
30
|
+
it "should assign in params[:q] 'query'" do
|
31
|
+
@search.params[:q].should == 'query'
|
32
|
+
end
|
33
|
+
end
|
34
|
+
describe '.on' do
|
35
|
+
before(:each) do
|
36
|
+
@result = @search.on('type')
|
37
|
+
end
|
38
|
+
it 'should return self' do
|
39
|
+
@result.should == @search
|
40
|
+
end
|
41
|
+
it "should assign in params[:type] 'type'" do
|
42
|
+
@search.params[:type].should == 'type'
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__),"../../../lib/fbgraph")
|
2
|
+
|
3
|
+
describe FBGraph do
|
4
|
+
describe FBGraph::RealTime do
|
5
|
+
|
6
|
+
before :each do
|
7
|
+
@client_id = 'client_id'
|
8
|
+
@secret_id = 'secret_id'
|
9
|
+
@client = FBGraph::Client.new(:client_id => @client_id,
|
10
|
+
:secret_id => @secret_id)
|
11
|
+
@search = FBGraph::Search.new(@client)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
File without changes
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 5
|
9
|
+
version: 0.0.5
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Nicolas Santa
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-05-
|
17
|
+
date: 2010-05-11 00:00:00 -03:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -29,6 +29,18 @@ dependencies:
|
|
29
29
|
version: "0"
|
30
30
|
type: :development
|
31
31
|
version_requirements: *id001
|
32
|
+
- !ruby/object:Gem::Dependency
|
33
|
+
name: json
|
34
|
+
prerelease: false
|
35
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
segments:
|
40
|
+
- 0
|
41
|
+
version: "0"
|
42
|
+
type: :development
|
43
|
+
version_requirements: *id002
|
32
44
|
description: A Gem for Facebook Open Graph API
|
33
45
|
email: nicolas55ar@gmail.com
|
34
46
|
executables: []
|
@@ -37,26 +49,36 @@ extensions: []
|
|
37
49
|
|
38
50
|
extra_rdoc_files:
|
39
51
|
- README
|
52
|
+
- README.textile
|
53
|
+
- TODO.list
|
40
54
|
- lib/fbgraph.rb
|
41
55
|
- lib/fbgraph/authorization.rb
|
42
56
|
- lib/fbgraph/base.rb
|
43
57
|
- lib/fbgraph/client.rb
|
58
|
+
- lib/fbgraph/realtime.rb
|
44
59
|
- lib/fbgraph/search.rb
|
45
60
|
- lib/fbgraph/selection.rb
|
46
61
|
files:
|
62
|
+
- Manifest
|
47
63
|
- README
|
64
|
+
- README.textile
|
48
65
|
- Rakefile
|
66
|
+
- TODO.list
|
67
|
+
- fbgraph.gemspec
|
49
68
|
- lib/fbgraph.rb
|
50
69
|
- lib/fbgraph/authorization.rb
|
51
70
|
- lib/fbgraph/base.rb
|
52
71
|
- lib/fbgraph/client.rb
|
72
|
+
- lib/fbgraph/realtime.rb
|
53
73
|
- lib/fbgraph/search.rb
|
54
74
|
- lib/fbgraph/selection.rb
|
55
75
|
- specs/lib/fbauth/authorization_spec.rb
|
56
76
|
- specs/lib/fbauth/base_spec.rb
|
77
|
+
- specs/lib/fbauth/client_spec.rb
|
78
|
+
- specs/lib/fbauth/realtime_spec.rb
|
57
79
|
- specs/lib/fbauth/search_spec.rb
|
58
|
-
-
|
59
|
-
-
|
80
|
+
- specs/lib/fbauth/selection_spec.rb
|
81
|
+
- specs/spec_helper.rb
|
60
82
|
has_rdoc: true
|
61
83
|
homepage: http://github.com/nsanta/fbgraph
|
62
84
|
licenses: []
|