djanowski-facebooker 1.0.11 → 1.0.12
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/facebooker.rb +1 -1
- data/lib/facebooker/models/user.rb +24 -16
- data/lib/facebooker/rails/controller.rb +3 -2
- data/lib/facebooker/rails/facebook_session_handling.rb +1 -1
- data/lib/facebooker/rails/facebook_url_helper.rb +17 -16
- data/lib/facebooker/rails/helpers/fb_connect.rb +6 -2
- data/lib/facebooker/rails/publisher.rb +5 -2
- data/lib/facebooker/rails/test_helpers.rb +0 -5
- data/lib/facebooker/service.rb +2 -2
- data/lib/facebooker/session.rb +6 -15
- data/test/rails_integration_test.rb +20 -7
- data/test/user_test.rb +16 -0
- metadata +1 -10
data/lib/facebooker.rb
CHANGED
@@ -168,4 +168,4 @@ require 'facebooker/models/info_section'
|
|
168
168
|
require 'facebooker/adapters/adapter_base'
|
169
169
|
require 'facebooker/adapters/facebook_adapter'
|
170
170
|
require 'facebooker/adapters/bebo_adapter'
|
171
|
-
require 'facebooker/models/friend_list'
|
171
|
+
require 'facebooker/models/friend_list'
|
@@ -12,7 +12,7 @@ module Facebooker
|
|
12
12
|
end
|
13
13
|
FIELDS = [:status, :political, :pic_small, :name, :quotes, :is_app_user, :tv, :profile_update_time, :meeting_sex, :hs_info, :timezone, :relationship_status, :hometown_location, :about_me, :wall_count, :significant_other_id, :pic_big, :music, :uid, :work_history, :sex, :religion, :notes_count, :activities, :pic_square, :movies, :has_added_app, :education_history, :birthday, :first_name, :meeting_for, :last_name, :interests, :current_location, :pic, :books, :affiliations, :locale, :profile_url, :proxied_email,:email_hashes]
|
14
14
|
STANDARD_FIELDS = [:uid, :first_name, :last_name, :name, :timezone, :birthday, :sex, :affiliations, :locale, :profile_url]
|
15
|
-
attr_accessor :
|
15
|
+
attr_accessor :session
|
16
16
|
populating_attr_accessor *FIELDS
|
17
17
|
attr_reader :affiliations
|
18
18
|
populating_hash_settable_accessor :current_location, Location
|
@@ -28,10 +28,10 @@ module Facebooker
|
|
28
28
|
# attribute_hash
|
29
29
|
def initialize(*args)
|
30
30
|
if (args.first.kind_of?(String) || args.first.kind_of?(Integer)) && args.size==1
|
31
|
-
|
31
|
+
self.uid = args.shift
|
32
32
|
@session = Session.current
|
33
33
|
elsif (args.first.kind_of?(String) || args.first.kind_of?(Integer)) && args[1].kind_of?(Session)
|
34
|
-
|
34
|
+
self.uid = args.shift
|
35
35
|
@session = args.shift
|
36
36
|
end
|
37
37
|
if args.last.kind_of?(Hash)
|
@@ -39,6 +39,18 @@ module Facebooker
|
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
|
+
def uid
|
43
|
+
@uid
|
44
|
+
end
|
45
|
+
|
46
|
+
def uid=(uid)
|
47
|
+
@uid = uid.to_i
|
48
|
+
end
|
49
|
+
|
50
|
+
alias :id :uid
|
51
|
+
alias :id= :uid=
|
52
|
+
alias :facebook_id :uid
|
53
|
+
|
42
54
|
# Returns a user's events, params correspond to API call parameters (except UID):
|
43
55
|
# http://wiki.developers.facebook.com/index.php/Events.get
|
44
56
|
# E.g:
|
@@ -86,7 +98,7 @@ module Facebooker
|
|
86
98
|
|
87
99
|
#use __blank instead of nil so that this is cached
|
88
100
|
cache_key = flid||"__blank"
|
89
|
-
options = {:uid
|
101
|
+
options = {:uid=>self.id}
|
90
102
|
options[:flid] = flid unless flid.nil?
|
91
103
|
@friends_hash[cache_key] ||= @session.post('facebook.friends.get', options,false).map do |uid|
|
92
104
|
User.new(uid, @session)
|
@@ -203,7 +215,7 @@ module Facebooker
|
|
203
215
|
end
|
204
216
|
|
205
217
|
def profile_fbml
|
206
|
-
session.post('facebook.profile.getFBML', :uid =>
|
218
|
+
session.post('facebook.profile.getFBML', :uid => id)
|
207
219
|
end
|
208
220
|
|
209
221
|
##
|
@@ -229,7 +241,7 @@ module Facebooker
|
|
229
241
|
end
|
230
242
|
|
231
243
|
def set_profile_fbml(profile_fbml, mobile_fbml, profile_action_fbml, profile_main = nil)
|
232
|
-
parameters = {:uid =>
|
244
|
+
parameters = {:uid => id}
|
233
245
|
parameters[:profile] = profile_fbml if profile_fbml
|
234
246
|
parameters[:profile_action] = profile_action_fbml if profile_action_fbml
|
235
247
|
parameters[:mobile_profile] = mobile_fbml if mobile_fbml
|
@@ -243,12 +255,12 @@ module Facebooker
|
|
243
255
|
# Note: using set_profile_info as I feel using user.set_info could be confused with the user.getInfo facebook method.
|
244
256
|
# Also, I feel it fits in line with user.set_profile_fbml.
|
245
257
|
def set_profile_info(title, info_fields, format = :text)
|
246
|
-
session.post('facebook.profile.setInfo', :title => title, :uid =>
|
258
|
+
session.post('facebook.profile.setInfo', :title => title, :uid => id,
|
247
259
|
:type => format.to_s == "text" ? 1 : 5, :info_fields => info_fields.to_json)
|
248
260
|
end
|
249
261
|
|
250
262
|
def get_profile_info
|
251
|
-
session.post('facebook.profile.getInfo', :uid =>
|
263
|
+
session.post('facebook.profile.getInfo', :uid => id)
|
252
264
|
end
|
253
265
|
|
254
266
|
##
|
@@ -284,19 +296,19 @@ module Facebooker
|
|
284
296
|
##
|
285
297
|
# Convenience method to send email to the current user
|
286
298
|
def send_email(subject, text=nil, fbml=nil)
|
287
|
-
session.send_email([
|
299
|
+
session.send_email([id], subject, text, fbml)
|
288
300
|
end
|
289
301
|
|
290
302
|
##
|
291
303
|
# Convenience method to set cookie for the current user
|
292
304
|
def set_cookie(name, value, expires=nil, path=nil)
|
293
|
-
session.data.set_cookie(
|
305
|
+
session.data.set_cookie(id, name, value, expires, path)
|
294
306
|
end
|
295
307
|
|
296
308
|
##
|
297
309
|
# Convenience method to get cookies for the current user
|
298
310
|
def get_cookies(name=nil)
|
299
|
-
session.data.get_cookies(
|
311
|
+
session.data.get_cookies(id, name)
|
300
312
|
end
|
301
313
|
|
302
314
|
##
|
@@ -359,10 +371,6 @@ module Facebooker
|
|
359
371
|
end
|
360
372
|
end
|
361
373
|
|
362
|
-
def facebook_id
|
363
|
-
@id
|
364
|
-
end
|
365
|
-
|
366
374
|
def self.user_fields(fields = [])
|
367
375
|
valid_fields(fields)
|
368
376
|
end
|
@@ -385,7 +393,7 @@ module Facebooker
|
|
385
393
|
end
|
386
394
|
|
387
395
|
def profile_pic_album_id
|
388
|
-
merge_aid(-3,
|
396
|
+
merge_aid(-3, id)
|
389
397
|
end
|
390
398
|
|
391
399
|
def merge_aid(aid, uid)
|
@@ -94,13 +94,14 @@ module Facebooker
|
|
94
94
|
|
95
95
|
#returning gracefully if the cookies aren't set or have expired
|
96
96
|
return unless parsed['session_key'] && parsed['user'] && parsed['expires'] && parsed['ss']
|
97
|
-
return unless Time.at(parsed['expires'].to_f) > Time.now
|
97
|
+
return unless Time.at(parsed['expires'].to_f) > Time.now || (parsed['expires'] == "0")
|
98
98
|
|
99
99
|
#if we have the unexpired cookies, we'll throw an exception if the sig doesn't verify
|
100
100
|
verify_signature(parsed,cookies[Facebooker.api_key])
|
101
101
|
|
102
102
|
@facebook_session = new_facebook_session
|
103
103
|
@facebook_session.secure_with!(parsed['session_key'],parsed['user'],parsed['expires'],parsed['ss'])
|
104
|
+
session[:facebook_session] = @facebook_session
|
104
105
|
end
|
105
106
|
|
106
107
|
def secure_with_token!
|
@@ -277,4 +278,4 @@ module Facebooker
|
|
277
278
|
end
|
278
279
|
end
|
279
280
|
end
|
280
|
-
end
|
281
|
+
end
|
@@ -90,9 +90,9 @@ module ActionView
|
|
90
90
|
# Altered to throw an error on :popup and sanitize the javascript
|
91
91
|
# for Facebook.
|
92
92
|
def convert_options_to_javascript_with_facebooker!(html_options, url ='')
|
93
|
-
if !request_comes_from_facebook?
|
93
|
+
if !respond_to?(:request_comes_from_facebook?) || !request_comes_from_facebook?
|
94
94
|
convert_options_to_javascript_without_facebooker!(html_options,url)
|
95
|
-
|
95
|
+
else
|
96
96
|
confirm, popup = html_options.delete("confirm"), html_options.delete("popup")
|
97
97
|
|
98
98
|
method, href = html_options.delete("method"), html_options['href']
|
@@ -124,23 +124,24 @@ module ActionView
|
|
124
124
|
# link_to("Facebooker", "http://rubyforge.org/projects/facebooker", :confirm=>"Go to Facebooker?")
|
125
125
|
# link_to("Facebooker", "http://rubyforge.org/projects/facebooker", :confirm=>{:title=>"the page says:, :content=>"Go to Facebooker?"})
|
126
126
|
# link_to("Facebooker", "http://rubyforge.org/projects/facebooker", :confirm=>{:title=>"the page says:, :content=>"Go to Facebooker?", :color=>"pink"})
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
127
|
+
def confirm_javascript_function_with_facebooker(confirm, fun = nil)
|
128
|
+
if !request_comes_from_facebook?
|
129
|
+
confirm_javascript_function_without_facebooker(confirm)
|
130
|
+
else
|
131
|
+
if(confirm.is_a?(Hash))
|
132
|
+
confirm_options = confirm.stringify_keys
|
133
|
+
title = confirm_options.delete("title") || "Please Confirm"
|
134
|
+
content = confirm_options.delete("content") || "Are you sure?"
|
135
|
+
button_confirm = confirm_options.delete("button_confirm") || "Okay"
|
136
|
+
button_cancel = confirm_options.delete("button_cancel") || "Cancel"
|
137
|
+
style = confirm_options.empty? ? "" : convert_options_to_css(confirm_options)
|
138
|
+
else
|
139
|
+
title,content,style,button_confirm,button_cancel = 'Please Confirm', confirm, "", "Okay", "Cancel"
|
138
140
|
end
|
139
|
-
|
140
|
-
"var dlg = new Dialog().showChoice('#{escape_javascript(title.to_s)}','#{escape_javascript(content.to_s)}').setStyle(#{style});"+
|
141
|
+
"var dlg = new Dialog().showChoice('#{escape_javascript(title.to_s)}','#{escape_javascript(content.to_s)}','#{escape_javascript(button_confirm.to_s)}','#{escape_javascript(button_cancel.to_s)}').setStyle(#{style});"+
|
141
142
|
"var a=this;dlg.onconfirm = function() { #{fun ? fun : 'document.setLocation(a.getHref());'} };"
|
142
143
|
end
|
143
|
-
|
144
|
+
end
|
144
145
|
|
145
146
|
alias_method_chain :confirm_javascript_function, :facebooker
|
146
147
|
|
@@ -4,7 +4,11 @@ module Facebooker
|
|
4
4
|
module FbConnect
|
5
5
|
|
6
6
|
def fb_connect_javascript_tag
|
7
|
-
|
7
|
+
if request.ssl?
|
8
|
+
javascript_include_tag "https://www.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php"
|
9
|
+
else
|
10
|
+
javascript_include_tag "http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php"
|
11
|
+
end
|
8
12
|
end
|
9
13
|
|
10
14
|
def init_fb_connect(*required_features)
|
@@ -31,4 +35,4 @@ module Facebooker
|
|
31
35
|
end
|
32
36
|
end
|
33
37
|
end
|
34
|
-
end
|
38
|
+
end
|
@@ -176,8 +176,8 @@ module Facebooker
|
|
176
176
|
publisher = setup_publisher(klass,method)
|
177
177
|
# sort the Hash elements (in the short_story and full_story) before generating MD5
|
178
178
|
Digest::MD5.hexdigest [publisher.one_line_story_templates,
|
179
|
-
(publisher.short_story_templates and publisher.short_story_templates.collect{|ss| ss.to_a.sort_by{|e| e[0]}}),
|
180
|
-
(publisher.full_story_template and publisher.full_story_template.to_a.sort_by{|e| e[0]})
|
179
|
+
(publisher.short_story_templates and publisher.short_story_templates.collect{|ss| ss.to_a.sort_by{|e| e[0].to_s}}),
|
180
|
+
(publisher.full_story_template and publisher.full_story_template.to_a.sort_by{|e| e[0].to_s})
|
181
181
|
].to_json
|
182
182
|
end
|
183
183
|
|
@@ -396,6 +396,9 @@ module Facebooker
|
|
396
396
|
returning ActionView::Base.new([template_root,controller_root], assigns, self) do |template|
|
397
397
|
template.controller=self
|
398
398
|
template.extend(self.class.master_helper_module)
|
399
|
+
def template.request_comes_from_facebook?
|
400
|
+
true
|
401
|
+
end
|
399
402
|
end
|
400
403
|
end
|
401
404
|
|
@@ -34,11 +34,6 @@ module Facebooker
|
|
34
34
|
send verb, path, params
|
35
35
|
end
|
36
36
|
|
37
|
-
def facebook_post(path, params={}, fb_params=facebook_parameters)
|
38
|
-
params = fb_params.merge(:canvas => true).merge(params)
|
39
|
-
post path, params
|
40
|
-
end
|
41
|
-
|
42
37
|
def facebook_parameters(overrides=nil)
|
43
38
|
overrides ||= {}
|
44
39
|
params = default_facebook_parameters.merge(overrides)
|
data/lib/facebooker/service.rb
CHANGED
data/lib/facebooker/session.rb
CHANGED
@@ -319,24 +319,15 @@ module Facebooker
|
|
319
319
|
# Register a template bundle with Facebook.
|
320
320
|
# returns the template id to use to send using this template
|
321
321
|
def register_template_bundle(one_line_story_templates,short_story_templates=nil,full_story_template=nil, action_links=nil)
|
322
|
-
|
323
|
-
one_line_story_templates = [one_line_story_templates]
|
324
|
-
end
|
325
|
-
parameters = {:one_line_story_templates=>one_line_story_templates.to_json}
|
322
|
+
parameters = {:one_line_story_templates => Array(one_line_story_templates).to_json}
|
326
323
|
|
327
|
-
|
328
|
-
parameters[:action_links] = action_links.to_json
|
329
|
-
end
|
324
|
+
parameters[:action_links] = action_links.to_json unless action_links.blank?
|
330
325
|
|
331
|
-
|
332
|
-
short_story_templates = [short_story_templates] unless short_story_templates.is_a?(Array)
|
333
|
-
parameters[:short_story_templates]= short_story_templates.to_json
|
334
|
-
end
|
326
|
+
parameters[:short_story_templates] = Array(short_story_templates).to_json unless short_story_templates.blank?
|
335
327
|
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
post("facebook.feed.registerTemplateBundle", parameters,false)
|
328
|
+
parameters[:full_story_template] = full_story_template.to_json unless full_story_template.blank?
|
329
|
+
|
330
|
+
post("facebook.feed.registerTemplateBundle", parameters, false)
|
340
331
|
end
|
341
332
|
|
342
333
|
##
|
@@ -542,6 +542,9 @@ class RailsHelperTest < Test::Unit::TestCase
|
|
542
542
|
def url_for(arg)
|
543
543
|
arg
|
544
544
|
end
|
545
|
+
def request
|
546
|
+
ActionController::TestRequest.new
|
547
|
+
end
|
545
548
|
def fields_for(*args)
|
546
549
|
""
|
547
550
|
end
|
@@ -1097,6 +1100,14 @@ class RailsUrlHelperExtensionsTest < Test::Unit::TestCase
|
|
1097
1100
|
def protect_against_forgery?
|
1098
1101
|
false
|
1099
1102
|
end
|
1103
|
+
|
1104
|
+
def request_comes_from_facebook?
|
1105
|
+
@request_comes_from_facebook
|
1106
|
+
end
|
1107
|
+
|
1108
|
+
def request_comes_from_facebook=(val)
|
1109
|
+
@request_comes_from_facebook = val
|
1110
|
+
end
|
1100
1111
|
|
1101
1112
|
end
|
1102
1113
|
class UrlHelperExtensionsController < NoisyController
|
@@ -1117,10 +1128,10 @@ class RailsUrlHelperExtensionsTest < Test::Unit::TestCase
|
|
1117
1128
|
@response = ActionController::TestResponse.new
|
1118
1129
|
|
1119
1130
|
@u = UrlHelperExtensionsClass.new(@controller)
|
1120
|
-
@u.
|
1131
|
+
@u.request_comes_from_facebook = true
|
1121
1132
|
|
1122
1133
|
@non_canvas_u = UrlHelperExtensionsClass.new(@controller)
|
1123
|
-
@non_canvas_u.
|
1134
|
+
@non_canvas_u.request_comes_from_facebook = false
|
1124
1135
|
|
1125
1136
|
@label = "Testing"
|
1126
1137
|
@url = "test.host"
|
@@ -1129,6 +1140,8 @@ class RailsUrlHelperExtensionsTest < Test::Unit::TestCase
|
|
1129
1140
|
@title = "Confirm Request"
|
1130
1141
|
@style = {:color => 'black', :background => 'white'}
|
1131
1142
|
@verbose_style = "{background: 'white', color: 'black'}"
|
1143
|
+
@default_okay = "Okay"
|
1144
|
+
@default_cancel = "Cancel"
|
1132
1145
|
@default_style = "" #"'width','200px'"
|
1133
1146
|
end
|
1134
1147
|
|
@@ -1141,19 +1154,19 @@ class RailsUrlHelperExtensionsTest < Test::Unit::TestCase
|
|
1141
1154
|
end
|
1142
1155
|
|
1143
1156
|
def test_link_to_with_confirm
|
1144
|
-
assert_dom_equal( "<a href=\"#{@url}\" onclick=\"var dlg = new Dialog().showChoice(\'#{@default_title}\',\'#{@prompt}\').setStyle(#{@default_style});"+
|
1157
|
+
assert_dom_equal( "<a href=\"#{@url}\" onclick=\"var dlg = new Dialog().showChoice(\'#{@default_title}\',\'#{@prompt}\',\'#{@default_okay}\',\'#{@default_cancel}\').setStyle(#{@default_style});"+
|
1145
1158
|
"var a=this;dlg.onconfirm = function() { " +
|
1146
1159
|
"document.setLocation(a.getHref()); };return false;\">#{@label}</a>",
|
1147
1160
|
@u.link_to(@label, @url, :confirm => @prompt) )
|
1148
1161
|
end
|
1149
1162
|
def test_link_to_with_confirm_with_title
|
1150
|
-
assert_dom_equal( "<a href=\"#{@url}\" onclick=\"var dlg = new Dialog().showChoice(\'#{@title}\',\'#{@prompt}\').setStyle(#{@default_style});"+
|
1163
|
+
assert_dom_equal( "<a href=\"#{@url}\" onclick=\"var dlg = new Dialog().showChoice(\'#{@title}\',\'#{@prompt}\',\'#{@default_okay}\',\'#{@default_cancel}\').setStyle(#{@default_style});"+
|
1151
1164
|
"var a=this;dlg.onconfirm = function() { " +
|
1152
1165
|
"document.setLocation(a.getHref()); };return false;\">#{@label}</a>",
|
1153
1166
|
@u.link_to(@label, @url, :confirm => {:title=>@title,:content=>@prompt}) )
|
1154
1167
|
end
|
1155
1168
|
def test_link_to_with_confirm_with_title_and_style
|
1156
|
-
assert_dom_equal( "<a href=\"#{@url}\" onclick=\"var dlg = new Dialog().showChoice(\'#{@title}\',\'#{@prompt}\').setStyle(#{@verbose_style});"+
|
1169
|
+
assert_dom_equal( "<a href=\"#{@url}\" onclick=\"var dlg = new Dialog().showChoice(\'#{@title}\',\'#{@prompt}\',\'#{@default_okay}\',\'#{@default_cancel}\').setStyle(#{@verbose_style});"+
|
1157
1170
|
"var a=this;dlg.onconfirm = function() { " +
|
1158
1171
|
"document.setLocation(a.getHref()); };return false;\">#{@label}</a>",
|
1159
1172
|
@u.link_to(@label, @url, :confirm => {:title=>@title,:content=>@prompt}.merge!(@style)) )
|
@@ -1168,7 +1181,7 @@ class RailsUrlHelperExtensionsTest < Test::Unit::TestCase
|
|
1168
1181
|
end
|
1169
1182
|
|
1170
1183
|
def test_link_to_with_confirm_and_method
|
1171
|
-
assert_dom_equal( "<a href=\"#{@url}\" onclick=\"var dlg = new Dialog().showChoice(\'#{@default_title}\',\'#{@prompt}\').setStyle(#{@default_style});"+
|
1184
|
+
assert_dom_equal( "<a href=\"#{@url}\" onclick=\"var dlg = new Dialog().showChoice(\'#{@default_title}\',\'#{@prompt}\',\'#{@default_okay}\',\'#{@default_cancel}\').setStyle(#{@default_style});"+
|
1172
1185
|
"var a=this;dlg.onconfirm = function() { " +
|
1173
1186
|
"var f = document.createElement('form'); f.setStyle('display','none'); "+
|
1174
1187
|
"a.getParentNode().appendChild(f); f.setMethod('POST'); f.setAction(a.getHref());" +
|
@@ -1191,7 +1204,7 @@ class RailsUrlHelperExtensionsTest < Test::Unit::TestCase
|
|
1191
1204
|
|
1192
1205
|
def test_button_to_with_confirm
|
1193
1206
|
assert_equal "<form method=\"post\" action=\"#{@url}\" class=\"button-to\"><div>" +
|
1194
|
-
"<input onclick=\"var dlg = new Dialog().showChoice(\'#{@default_title}\',\'#{@prompt}\').setStyle(#{@default_style});"+
|
1207
|
+
"<input onclick=\"var dlg = new Dialog().showChoice(\'#{@default_title}\',\'#{@prompt}\',\'#{@default_okay}\',\'#{@default_cancel}\').setStyle(#{@default_style});"+
|
1195
1208
|
"var a=this;dlg.onconfirm = function() { "+
|
1196
1209
|
"a.getForm().submit(); };return false;\" type=\"submit\" value=\"#{@label}\" /></div></form>",
|
1197
1210
|
@u.button_to(@label,@url, :confirm=>@prompt)
|
data/test/user_test.rb
CHANGED
@@ -27,6 +27,22 @@ class UserTest < Test::Unit::TestCase
|
|
27
27
|
def test_can_ask_user_if_he_or_she_is_friends_with_another_user_by_user_id
|
28
28
|
assert(@user.friends_with?(@other_user.id))
|
29
29
|
end
|
30
|
+
|
31
|
+
def test_does_not_query_facebook_for_uid
|
32
|
+
@session.expects(:post).never
|
33
|
+
assert_equal 1234, Facebooker::User.new(1234, @session).uid
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_uid_is_always_an_integer
|
37
|
+
assert_equal 1234, Facebooker::User.new(:uid => "1234").uid
|
38
|
+
assert_equal 1234, Facebooker::User.new(:id => "1234").uid
|
39
|
+
|
40
|
+
assert_equal 1234, Facebooker::User.new(:uid => "1234").id
|
41
|
+
assert_equal 1234, Facebooker::User.new(:id => "1234").id
|
42
|
+
|
43
|
+
assert_equal 1234, Facebooker::User.new(:uid => "1234").facebook_id
|
44
|
+
assert_equal 1234, Facebooker::User.new(:id => "1234").facebook_id
|
45
|
+
end
|
30
46
|
|
31
47
|
def test_cast_to_friend_list_id_with_nil
|
32
48
|
assert_nil @user.cast_to_friend_list_id(nil)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: djanowski-facebooker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chad Fowler
|
@@ -24,15 +24,6 @@ dependencies:
|
|
24
24
|
- !ruby/object:Gem::Version
|
25
25
|
version: 1.5.0
|
26
26
|
version:
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: curb
|
29
|
-
version_requirement:
|
30
|
-
version_requirements: !ruby/object:Gem::Requirement
|
31
|
-
requirements:
|
32
|
-
- - ">="
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: 0.1.4
|
35
|
-
version:
|
36
27
|
description: "== DESCRIPTION: Facebooker is a Ruby wrapper over the Facebook[http://facebook.com] {REST API}[http://developer.facebook.com]. Its goals are: * Idiomatic Ruby * No dependencies outside of the Ruby standard library * Concrete classes and methods modeling the Facebook data, so it's easy for a Rubyist to understand what's available * Well tested == FEATURES/PROBLEMS:"
|
37
28
|
email: mmangino@elevatedrails.com
|
38
29
|
executables: []
|