taweili-facebooker 1.0.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. data/.autotest +15 -0
  2. data/CHANGELOG.rdoc +24 -0
  3. data/COPYING.rdoc +19 -0
  4. data/Manifest.txt +133 -0
  5. data/README.rdoc +104 -0
  6. data/Rakefile +85 -0
  7. data/TODO.rdoc +4 -0
  8. data/examples/desktop_login.rb +14 -0
  9. data/facebooker.gemspec +38 -0
  10. data/generators/facebook/facebook_generator.rb +14 -0
  11. data/generators/facebook/templates/config/facebooker.yml +49 -0
  12. data/generators/facebook/templates/public/javascripts/facebooker.js +83 -0
  13. data/generators/facebook_controller/USAGE +33 -0
  14. data/generators/facebook_controller/facebook_controller_generator.rb +40 -0
  15. data/generators/facebook_controller/templates/controller.rb +7 -0
  16. data/generators/facebook_controller/templates/functional_test.rb +11 -0
  17. data/generators/facebook_controller/templates/helper.rb +2 -0
  18. data/generators/facebook_controller/templates/view.fbml.erb +2 -0
  19. data/generators/facebook_controller/templates/view.html.erb +2 -0
  20. data/generators/facebook_publisher/facebook_publisher_generator.rb +14 -0
  21. data/generators/facebook_publisher/templates/create_facebook_templates.rb +15 -0
  22. data/generators/facebook_publisher/templates/publisher.rb +3 -0
  23. data/generators/facebook_scaffold/USAGE +27 -0
  24. data/generators/facebook_scaffold/facebook_scaffold_generator.rb +118 -0
  25. data/generators/facebook_scaffold/templates/controller.rb +93 -0
  26. data/generators/facebook_scaffold/templates/facebook_style.css +2579 -0
  27. data/generators/facebook_scaffold/templates/functional_test.rb +89 -0
  28. data/generators/facebook_scaffold/templates/helper.rb +2 -0
  29. data/generators/facebook_scaffold/templates/layout.fbml.erb +6 -0
  30. data/generators/facebook_scaffold/templates/layout.html.erb +17 -0
  31. data/generators/facebook_scaffold/templates/style.css +74 -0
  32. data/generators/facebook_scaffold/templates/view_edit.fbml.erb +13 -0
  33. data/generators/facebook_scaffold/templates/view_edit.html.erb +18 -0
  34. data/generators/facebook_scaffold/templates/view_index.fbml.erb +24 -0
  35. data/generators/facebook_scaffold/templates/view_index.html.erb +24 -0
  36. data/generators/facebook_scaffold/templates/view_new.fbml.erb +12 -0
  37. data/generators/facebook_scaffold/templates/view_new.html.erb +17 -0
  38. data/generators/facebook_scaffold/templates/view_show.fbml.erb +10 -0
  39. data/generators/facebook_scaffold/templates/view_show.html.erb +10 -0
  40. data/generators/publisher/publisher_generator.rb +14 -0
  41. data/generators/xd_receiver/templates/xd_receiver.html +10 -0
  42. data/generators/xd_receiver/xd_receiver_generator.rb +10 -0
  43. data/init.rb +25 -0
  44. data/install.rb +12 -0
  45. data/lib/facebooker/adapters/adapter_base.rb +91 -0
  46. data/lib/facebooker/adapters/bebo_adapter.rb +77 -0
  47. data/lib/facebooker/adapters/facebook_adapter.rb +52 -0
  48. data/lib/facebooker/admin.rb +42 -0
  49. data/lib/facebooker/batch_request.rb +45 -0
  50. data/lib/facebooker/data.rb +57 -0
  51. data/lib/facebooker/feed.rb +78 -0
  52. data/lib/facebooker/logging.rb +44 -0
  53. data/lib/facebooker/mobile.rb +20 -0
  54. data/lib/facebooker/mock/service.rb +50 -0
  55. data/lib/facebooker/mock/session.rb +18 -0
  56. data/lib/facebooker/model.rb +139 -0
  57. data/lib/facebooker/models/affiliation.rb +10 -0
  58. data/lib/facebooker/models/album.rb +11 -0
  59. data/lib/facebooker/models/applicationproperties.rb +39 -0
  60. data/lib/facebooker/models/applicationrestrictions.rb +10 -0
  61. data/lib/facebooker/models/cookie.rb +10 -0
  62. data/lib/facebooker/models/education_info.rb +11 -0
  63. data/lib/facebooker/models/event.rb +28 -0
  64. data/lib/facebooker/models/friend_list.rb +16 -0
  65. data/lib/facebooker/models/group.rb +36 -0
  66. data/lib/facebooker/models/info_item.rb +10 -0
  67. data/lib/facebooker/models/info_section.rb +10 -0
  68. data/lib/facebooker/models/location.rb +8 -0
  69. data/lib/facebooker/models/notifications.rb +17 -0
  70. data/lib/facebooker/models/page.rb +28 -0
  71. data/lib/facebooker/models/photo.rb +19 -0
  72. data/lib/facebooker/models/tag.rb +12 -0
  73. data/lib/facebooker/models/user.rb +497 -0
  74. data/lib/facebooker/models/video.rb +9 -0
  75. data/lib/facebooker/models/work_info.rb +10 -0
  76. data/lib/facebooker/parser.rb +650 -0
  77. data/lib/facebooker/rails/backwards_compatible_param_checks.rb +31 -0
  78. data/lib/facebooker/rails/controller.rb +337 -0
  79. data/lib/facebooker/rails/cucumber/world.rb +46 -0
  80. data/lib/facebooker/rails/cucumber.rb +28 -0
  81. data/lib/facebooker/rails/extensions/action_controller.rb +48 -0
  82. data/lib/facebooker/rails/extensions/rack_setup.rb +6 -0
  83. data/lib/facebooker/rails/extensions/routing.rb +15 -0
  84. data/lib/facebooker/rails/facebook_form_builder.rb +112 -0
  85. data/lib/facebooker/rails/facebook_pretty_errors.rb +22 -0
  86. data/lib/facebooker/rails/facebook_request_fix.rb +30 -0
  87. data/lib/facebooker/rails/facebook_request_fix_2-3.rb +31 -0
  88. data/lib/facebooker/rails/facebook_session_handling.rb +68 -0
  89. data/lib/facebooker/rails/facebook_url_helper.rb +192 -0
  90. data/lib/facebooker/rails/facebook_url_rewriting.rb +60 -0
  91. data/lib/facebooker/rails/helpers/fb_connect.rb +118 -0
  92. data/lib/facebooker/rails/helpers.rb +780 -0
  93. data/lib/facebooker/rails/integration_session.rb +38 -0
  94. data/lib/facebooker/rails/profile_publisher_extensions.rb +42 -0
  95. data/lib/facebooker/rails/publisher.rb +554 -0
  96. data/lib/facebooker/rails/routing.rb +49 -0
  97. data/lib/facebooker/rails/test_helpers.rb +68 -0
  98. data/lib/facebooker/rails/utilities.rb +22 -0
  99. data/lib/facebooker/server_cache.rb +24 -0
  100. data/lib/facebooker/service.rb +102 -0
  101. data/lib/facebooker/session.rb +606 -0
  102. data/lib/facebooker/version.rb +9 -0
  103. data/lib/facebooker.rb +180 -0
  104. data/lib/net/http_multipart_post.rb +123 -0
  105. data/lib/rack/facebook.rb +77 -0
  106. data/lib/tasks/facebooker.rake +18 -0
  107. data/lib/tasks/tunnel.rake +46 -0
  108. data/rails/init.rb +1 -0
  109. data/setup.rb +1585 -0
  110. data/templates/layout.erb +24 -0
  111. data/test/facebooker/adapters_test.rb +96 -0
  112. data/test/facebooker/admin_test.rb +102 -0
  113. data/test/facebooker/batch_request_test.rb +83 -0
  114. data/test/facebooker/data_test.rb +86 -0
  115. data/test/facebooker/logging_test.rb +43 -0
  116. data/test/facebooker/mobile_test.rb +45 -0
  117. data/test/facebooker/model_test.rb +133 -0
  118. data/test/facebooker/models/event_test.rb +15 -0
  119. data/test/facebooker/models/photo_test.rb +16 -0
  120. data/test/facebooker/models/user_test.rb +343 -0
  121. data/test/facebooker/rails/facebook_request_fix_2-3_test.rb +24 -0
  122. data/test/facebooker/rails/facebook_url_rewriting_test.rb +39 -0
  123. data/test/facebooker/rails/publisher_test.rb +481 -0
  124. data/test/facebooker/rails_integration_test.rb +1398 -0
  125. data/test/facebooker/server_cache_test.rb +44 -0
  126. data/test/facebooker/session_test.rb +614 -0
  127. data/test/facebooker_test.rb +951 -0
  128. data/test/fixtures/multipart_post_body_with_only_parameters.txt +33 -0
  129. data/test/fixtures/multipart_post_body_with_single_file.txt +38 -0
  130. data/test/fixtures/multipart_post_body_with_single_file_that_has_nil_key.txt +38 -0
  131. data/test/net/http_multipart_post_test.rb +52 -0
  132. data/test/rack/facebook_test.rb +61 -0
  133. data/test/rails_test_helper.rb +27 -0
  134. data/test/test_helper.rb +74 -0
  135. metadata +232 -0
@@ -0,0 +1,33 @@
1
+ --MichaelNiessnerIsSuperDuperAwesome
2
+ Content-Disposition: form-data; name="aid"
3
+
4
+ 940915667462717
5
+ --MichaelNiessnerIsSuperDuperAwesome
6
+ Content-Disposition: form-data; name="api_key"
7
+
8
+ 77a52842357422fadd912a2600e6e53c
9
+ --MichaelNiessnerIsSuperDuperAwesome
10
+ Content-Disposition: form-data; name="call_id"
11
+
12
+ 1172623588.023010
13
+ --MichaelNiessnerIsSuperDuperAwesome
14
+ Content-Disposition: form-data; name="caption"
15
+
16
+ Under the sunset
17
+ --MichaelNiessnerIsSuperDuperAwesome
18
+ Content-Disposition: form-data; name="method"
19
+
20
+ facebook.photos.upload
21
+ --MichaelNiessnerIsSuperDuperAwesome
22
+ Content-Disposition: form-data; name="session_key"
23
+
24
+ 489727d0ab2efc6e8003018c-i2LLkn8BDb2s.
25
+ --MichaelNiessnerIsSuperDuperAwesome
26
+ Content-Disposition: form-data; name="sig"
27
+
28
+ dfa724b8a5cd97d9df4baf2b60d3484c
29
+ --MichaelNiessnerIsSuperDuperAwesome
30
+ Content-Disposition: form-data; name="v"
31
+
32
+ 1.0
33
+ --MichaelNiessnerIsSuperDuperAwesome--
@@ -0,0 +1,38 @@
1
+ --MichaelNiessnerIsSuperDuperAwesome
2
+ Content-Disposition: form-data; name="aid"
3
+
4
+ 940915667462717
5
+ --MichaelNiessnerIsSuperDuperAwesome
6
+ Content-Disposition: form-data; name="api_key"
7
+
8
+ 77a52842357422fadd912a2600e6e53c
9
+ --MichaelNiessnerIsSuperDuperAwesome
10
+ Content-Disposition: form-data; name="call_id"
11
+
12
+ 1172623588.023010
13
+ --MichaelNiessnerIsSuperDuperAwesome
14
+ Content-Disposition: form-data; name="caption"
15
+
16
+ Under the sunset
17
+ --MichaelNiessnerIsSuperDuperAwesome
18
+ Content-Disposition: form-data; name="method"
19
+
20
+ facebook.photos.upload
21
+ --MichaelNiessnerIsSuperDuperAwesome
22
+ Content-Disposition: form-data; name="session_key"
23
+
24
+ 489727d0ab2efc6e8003018c-i2LLkn8BDb2s.
25
+ --MichaelNiessnerIsSuperDuperAwesome
26
+ Content-Disposition: form-data; name="sig"
27
+
28
+ dfa724b8a5cd97d9df4baf2b60d3484c
29
+ --MichaelNiessnerIsSuperDuperAwesome
30
+ Content-Disposition: form-data; name="v"
31
+
32
+ 1.0
33
+ --MichaelNiessnerIsSuperDuperAwesome
34
+ Content-Disposition: form-data; name="file"; filename="somefilename.jpg"
35
+ Content-Type: image/jpg
36
+
37
+ [Raw file data here]
38
+ --MichaelNiessnerIsSuperDuperAwesome--
@@ -0,0 +1,38 @@
1
+ --MichaelNiessnerIsSuperDuperAwesome
2
+ Content-Disposition: form-data; name="aid"
3
+
4
+ 940915667462717
5
+ --MichaelNiessnerIsSuperDuperAwesome
6
+ Content-Disposition: form-data; name="api_key"
7
+
8
+ 77a52842357422fadd912a2600e6e53c
9
+ --MichaelNiessnerIsSuperDuperAwesome
10
+ Content-Disposition: form-data; name="call_id"
11
+
12
+ 1172623588.023010
13
+ --MichaelNiessnerIsSuperDuperAwesome
14
+ Content-Disposition: form-data; name="caption"
15
+
16
+ Under the sunset
17
+ --MichaelNiessnerIsSuperDuperAwesome
18
+ Content-Disposition: form-data; name="method"
19
+
20
+ facebook.photos.upload
21
+ --MichaelNiessnerIsSuperDuperAwesome
22
+ Content-Disposition: form-data; name="session_key"
23
+
24
+ 489727d0ab2efc6e8003018c-i2LLkn8BDb2s.
25
+ --MichaelNiessnerIsSuperDuperAwesome
26
+ Content-Disposition: form-data; name="sig"
27
+
28
+ dfa724b8a5cd97d9df4baf2b60d3484c
29
+ --MichaelNiessnerIsSuperDuperAwesome
30
+ Content-Disposition: form-data; name="v"
31
+
32
+ 1.0
33
+ --MichaelNiessnerIsSuperDuperAwesome
34
+ Content-Disposition: form-data; filename="somefilename.jpg"
35
+ Content-Type: image/jpg
36
+
37
+ [Raw file data here]
38
+ --MichaelNiessnerIsSuperDuperAwesome--
@@ -0,0 +1,52 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
2
+ require 'net/http_multipart_post'
3
+
4
+ class HttpMulitpartPostTest < Test::Unit::TestCase
5
+ def setup
6
+ super
7
+ end
8
+
9
+ def fixture(string)
10
+ File.open(File.dirname(__FILE__) + "/../fixtures/#{string}.txt").read
11
+ end
12
+
13
+ def test_multipart_post_with_only_parameters
14
+ params = add_sample_facebook_params({})
15
+ post = Net::HTTP::MultipartPost.new("uri", params)
16
+ assert_equal fixture("multipart_post_body_with_only_parameters"), post.send(:body)
17
+ end
18
+
19
+ def test_multipart_post_with_a_single_file
20
+ params = add_sample_facebook_params({})
21
+ params[:file] = Net::HTTP::MultipartPostFile.new
22
+ params[:file].filename = "somefilename.jpg"
23
+ params[:file].content_type = "image/jpg"
24
+ params[:file].data = "[Raw file data here]"
25
+ post = Net::HTTP::MultipartPost.new("uri", params)
26
+ assert_equal fixture("multipart_post_body_with_single_file"), post.send(:body)
27
+ end
28
+
29
+ def test_multipart_post_with_a_single_file_parameter_that_has_nil_key
30
+ params = add_sample_facebook_params({})
31
+ params[nil] = Net::HTTP::MultipartPostFile.new("somefilename.jpg", "image/jpg", "[Raw file data here]")
32
+ post = Net::HTTP::MultipartPost.new("uri", params)
33
+ assert_equal fixture("multipart_post_body_with_single_file_that_has_nil_key"), post.send(:body)
34
+ end
35
+
36
+ def test_multipart_post_should_have_correct_content_type
37
+ post = Net::HTTP::MultipartPost.new("uri", {})
38
+ assert post.send(:content_type) =~ /multipart\/form-data; boundary=/
39
+ end
40
+
41
+ def add_sample_facebook_params(hash)
42
+ hash[:method] = "facebook.photos.upload"
43
+ hash[:v] = "1.0"
44
+ hash[:api_key] = "77a52842357422fadd912a2600e6e53c"
45
+ hash[:session_key] = "489727d0ab2efc6e8003018c-i2LLkn8BDb2s."
46
+ hash[:call_id] = "1172623588.023010"
47
+ hash[:caption] = "Under the sunset"
48
+ hash[:aid] = "940915667462717"
49
+ hash[:sig] = "dfa724b8a5cd97d9df4baf2b60d3484c"
50
+ hash
51
+ end
52
+ end
@@ -0,0 +1,61 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
2
+ require 'rack/facebook'
3
+ require 'rack/lint'
4
+ require 'rack/mock'
5
+
6
+ class Rack::FacebookTest < Test::Unit::TestCase
7
+
8
+ def setup
9
+ @secret_key = 'secret'
10
+ @app = lambda do |env|
11
+ @env = env
12
+ Rack::Response.new().to_a
13
+ end
14
+ @facebook = Rack::Facebook.new(@app, @secret_key)
15
+ end
16
+
17
+ def params(p)
18
+ p.map{|*args| args.join('=') }.join('&')
19
+ end
20
+
21
+ def app
22
+ Rack::MockRequest.new(Rack::Lint.new(@facebook))
23
+ end
24
+
25
+ def test_without_fb_params
26
+ response = app.post("/")
27
+ assert_equal 200, response.status
28
+ end
29
+
30
+ def test_converts_request_method
31
+ response = app.post("/",
32
+ :input => params(:fb_sig_request_method => 'GET', :fb_sig => '4d2a700e90b0bcbe54b9e627d2cc1417'))
33
+ assert_equal 200, response.status
34
+ assert_equal 'GET', @env['REQUEST_METHOD']
35
+ end
36
+
37
+ def test_only_sets_request_method_if_provided
38
+ response = app.post("/", :input => params(:fb_sig_user => '1', :fb_sig => '313dd5caed3d0902d83225ff3ae9a950'))
39
+ assert_equal 200, response.status
40
+ assert_equal 'POST', @env['REQUEST_METHOD']
41
+ end
42
+
43
+ def test_renders_400_with_invalid_signature
44
+ response = app.post("/",
45
+ :input => params(:fb_sig => 'wrong', :fb_sig_user => 1))
46
+ assert_equal 400, response.status
47
+ end
48
+
49
+ def test_skips_with_false_condition
50
+ @facebook = Rack::Facebook.new(@app, @secret_key) { false }
51
+ response = app.post("/", :input => params(:fb_sig_user => 'ignored'))
52
+ assert_equal 200, response.status
53
+ end
54
+
55
+ def test_verifies_with_true_condition
56
+ @facebook = Rack::Facebook.new(@app, @secret_key) { true }
57
+ response = app.post("/", :input => params(:fb_sig_user => 'ignored'))
58
+ assert_equal 400, response.status
59
+ end
60
+
61
+ end
@@ -0,0 +1,27 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/test_helper')
2
+
3
+ tmp = $-w
4
+ $-w = nil
5
+ require 'action_controller'
6
+ require 'action_controller/test_process'
7
+ require 'active_record'
8
+ $-w = tmp
9
+ gem 'rails'
10
+ require 'initializer'
11
+ require File.dirname(__FILE__)+'/../init'
12
+ require 'facebooker/rails/controller'
13
+ require 'facebooker/rails/helpers/fb_connect'
14
+ require 'facebooker/rails/helpers'
15
+ require 'facebooker/rails/publisher'
16
+ require 'facebooker/rails/facebook_form_builder'
17
+
18
+ ActionController::Routing::Routes.draw do |map|
19
+ map.connect '', :controller=>"facebook",:conditions=>{:canvas=>true}
20
+ map.connect '', :controller=>"plain_old_rails"
21
+ map.resources :comments, :controller=>"plain_old_rails"
22
+ map.connect 'require_auth/:action', :controller => "controller_which_requires_facebook_authentication"
23
+ map.connect 'require_install/:action', :controller => "controller_which_requires_application_installation"
24
+ silence_warnings do
25
+ map.connect ':controller/:action/:id', :controller => "plain_old_rails"
26
+ end
27
+ end
@@ -0,0 +1,74 @@
1
+ require 'test/unit'
2
+ require 'rubygems'
3
+
4
+ begin
5
+ require 'nokogiri'
6
+ rescue LoadError
7
+ # Should work without nokogiri
8
+ end
9
+
10
+ begin
11
+ require 'multi_rails_init'
12
+ rescue LoadError
13
+ # multi rails not installed, test against newest supported version of Rails
14
+ gem 'rails', '2.2.2'
15
+ end
16
+ require 'activesupport'
17
+ require 'flexmock/test_unit'
18
+ require 'mocha'
19
+
20
+ $: << File.join(File.dirname(__FILE__), '..', 'lib')
21
+
22
+ rails_root = File.join(File.dirname(__FILE__),'..','..')
23
+ if defined? RAILS_ROOT
24
+ RAILS_ROOT.replace(rails_root)
25
+ else
26
+ RAILS_ROOT = rails_root
27
+ end
28
+
29
+ require 'facebooker'
30
+ require 'facebooker/rails/test_helpers'
31
+
32
+
33
+ class Test::Unit::TestCase
34
+ include Facebooker::Rails::TestHelpers
35
+
36
+ private
37
+
38
+ def expect_http_posts_with_responses(*responses_xml)
39
+ mock_http = establish_session
40
+ responses_xml.each do |xml_string|
41
+ mock_http.should_receive(:post_form).and_return(xml_string).once.ordered(:posts)
42
+ end
43
+ end
44
+
45
+ def establish_session(session = @session)
46
+ mock = flexmock(Net::HTTP).should_receive(:post_form).and_return(example_auth_token_xml).once.ordered(:posts)
47
+ mock.should_receive(:post_form).and_return(example_get_session_xml).once.ordered(:posts)
48
+ session.secure!
49
+ mock
50
+ end
51
+
52
+ def example_auth_token_xml
53
+ <<-XML
54
+ <?xml version="1.0" encoding="UTF-8"?>
55
+ <auth_createToken_response xmlns="http://api.facebook.com/1.0/"
56
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
57
+ xsi:schemaLocation="http://api.facebook.com/1.0/ http://api.facebook.com/1.0/facebook.xsd">
58
+ 3e4a22bb2f5ed75114b0fc9995ea85f1
59
+ </auth_createToken_response>
60
+ XML
61
+ end
62
+
63
+ def example_get_session_xml
64
+ <<-XML
65
+ <?xml version="1.0" encoding="UTF-8"?>
66
+ <auth_getSession_response xmlns="http://api.facebook.com/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://api.facebook.com/1.0/ http://api.facebook.com/1.0/facebook.xsd">
67
+ <session_key>5f34e11bfb97c762e439e6a5-8055</session_key>
68
+ <uid>8055</uid>
69
+ <expires>1173309298</expires>
70
+ <secret>ohairoflamao12345</secret>
71
+ </auth_getSession_response>
72
+ XML
73
+ end
74
+ end
metadata ADDED
@@ -0,0 +1,232 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: taweili-facebooker
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.37
5
+ platform: ruby
6
+ authors:
7
+ - Chad Fowler
8
+ - Patrick Ewing
9
+ - Mike Mangino
10
+ - Shane Vitarana
11
+ - Corey Innis
12
+ autorequire:
13
+ bindir: bin
14
+ cert_chain: []
15
+
16
+ date: 2009-06-04 00:00:00 -07:00
17
+ default_executable:
18
+ dependencies:
19
+ - !ruby/object:Gem::Dependency
20
+ name: json
21
+ type: :runtime
22
+ version_requirement:
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: 1.0.0
28
+ version:
29
+ - !ruby/object:Gem::Dependency
30
+ name: hoe
31
+ type: :development
32
+ version_requirement:
33
+ version_requirements: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: 1.11.0
38
+ version:
39
+ description: "Facebooker is a Ruby wrapper over the Facebook[http://facebook.com] {REST API}[http://wiki.developers.facebook.com/index.php/API]. Its goals are: * Idiomatic Ruby * No dependencies outside of the Ruby standard library (This is true with Rails 2.1. Previous Rails versions require the JSON gem) * Concrete classes and methods modeling the Facebook data, so it's easy for a Rubyist to understand what's available * Well tested"
40
+ email: mmangino@elevatedrails.com
41
+ executables: []
42
+
43
+ extensions: []
44
+
45
+ extra_rdoc_files:
46
+ - Manifest.txt
47
+ - CHANGELOG.rdoc
48
+ - COPYING.rdoc
49
+ - README.rdoc
50
+ - TODO.rdoc
51
+ files:
52
+ - .autotest
53
+ - CHANGELOG.rdoc
54
+ - COPYING.rdoc
55
+ - Manifest.txt
56
+ - README.rdoc
57
+ - Rakefile
58
+ - TODO.rdoc
59
+ - examples/desktop_login.rb
60
+ - facebooker.gemspec
61
+ - generators/facebook/facebook_generator.rb
62
+ - generators/facebook/templates/config/facebooker.yml
63
+ - generators/facebook/templates/public/javascripts/facebooker.js
64
+ - generators/facebook_controller/USAGE
65
+ - generators/facebook_controller/facebook_controller_generator.rb
66
+ - generators/facebook_controller/templates/controller.rb
67
+ - generators/facebook_controller/templates/functional_test.rb
68
+ - generators/facebook_controller/templates/helper.rb
69
+ - generators/facebook_controller/templates/view.fbml.erb
70
+ - generators/facebook_controller/templates/view.html.erb
71
+ - generators/facebook_publisher/facebook_publisher_generator.rb
72
+ - generators/facebook_publisher/templates/create_facebook_templates.rb
73
+ - generators/facebook_publisher/templates/publisher.rb
74
+ - generators/facebook_scaffold/USAGE
75
+ - generators/facebook_scaffold/facebook_scaffold_generator.rb
76
+ - generators/facebook_scaffold/templates/controller.rb
77
+ - generators/facebook_scaffold/templates/facebook_style.css
78
+ - generators/facebook_scaffold/templates/functional_test.rb
79
+ - generators/facebook_scaffold/templates/helper.rb
80
+ - generators/facebook_scaffold/templates/layout.fbml.erb
81
+ - generators/facebook_scaffold/templates/layout.html.erb
82
+ - generators/facebook_scaffold/templates/style.css
83
+ - generators/facebook_scaffold/templates/view_edit.fbml.erb
84
+ - generators/facebook_scaffold/templates/view_edit.html.erb
85
+ - generators/facebook_scaffold/templates/view_index.fbml.erb
86
+ - generators/facebook_scaffold/templates/view_index.html.erb
87
+ - generators/facebook_scaffold/templates/view_new.fbml.erb
88
+ - generators/facebook_scaffold/templates/view_new.html.erb
89
+ - generators/facebook_scaffold/templates/view_show.fbml.erb
90
+ - generators/facebook_scaffold/templates/view_show.html.erb
91
+ - generators/publisher/publisher_generator.rb
92
+ - generators/xd_receiver/templates/xd_receiver.html
93
+ - generators/xd_receiver/xd_receiver_generator.rb
94
+ - init.rb
95
+ - install.rb
96
+ - lib/facebooker.rb
97
+ - lib/facebooker/adapters/adapter_base.rb
98
+ - lib/facebooker/adapters/bebo_adapter.rb
99
+ - lib/facebooker/adapters/facebook_adapter.rb
100
+ - lib/facebooker/admin.rb
101
+ - lib/facebooker/batch_request.rb
102
+ - lib/facebooker/data.rb
103
+ - lib/facebooker/feed.rb
104
+ - lib/facebooker/logging.rb
105
+ - lib/facebooker/mobile.rb
106
+ - lib/facebooker/mock/service.rb
107
+ - lib/facebooker/mock/session.rb
108
+ - lib/facebooker/model.rb
109
+ - lib/facebooker/models/affiliation.rb
110
+ - lib/facebooker/models/album.rb
111
+ - lib/facebooker/models/applicationproperties.rb
112
+ - lib/facebooker/models/applicationrestrictions.rb
113
+ - lib/facebooker/models/cookie.rb
114
+ - lib/facebooker/models/education_info.rb
115
+ - lib/facebooker/models/event.rb
116
+ - lib/facebooker/models/friend_list.rb
117
+ - lib/facebooker/models/group.rb
118
+ - lib/facebooker/models/info_item.rb
119
+ - lib/facebooker/models/info_section.rb
120
+ - lib/facebooker/models/location.rb
121
+ - lib/facebooker/models/notifications.rb
122
+ - lib/facebooker/models/page.rb
123
+ - lib/facebooker/models/photo.rb
124
+ - lib/facebooker/models/tag.rb
125
+ - lib/facebooker/models/user.rb
126
+ - lib/facebooker/models/video.rb
127
+ - lib/facebooker/models/work_info.rb
128
+ - lib/facebooker/parser.rb
129
+ - lib/facebooker/rails/backwards_compatible_param_checks.rb
130
+ - lib/facebooker/rails/controller.rb
131
+ - lib/facebooker/rails/cucumber.rb
132
+ - lib/facebooker/rails/cucumber/world.rb
133
+ - lib/facebooker/rails/extensions/action_controller.rb
134
+ - lib/facebooker/rails/extensions/rack_setup.rb
135
+ - lib/facebooker/rails/extensions/routing.rb
136
+ - lib/facebooker/rails/facebook_form_builder.rb
137
+ - lib/facebooker/rails/facebook_pretty_errors.rb
138
+ - lib/facebooker/rails/facebook_request_fix.rb
139
+ - lib/facebooker/rails/facebook_request_fix_2-3.rb
140
+ - lib/facebooker/rails/facebook_session_handling.rb
141
+ - lib/facebooker/rails/facebook_url_helper.rb
142
+ - lib/facebooker/rails/facebook_url_rewriting.rb
143
+ - lib/facebooker/rails/helpers.rb
144
+ - lib/facebooker/rails/helpers/fb_connect.rb
145
+ - lib/facebooker/rails/integration_session.rb
146
+ - lib/facebooker/rails/profile_publisher_extensions.rb
147
+ - lib/facebooker/rails/publisher.rb
148
+ - lib/facebooker/rails/routing.rb
149
+ - lib/facebooker/rails/test_helpers.rb
150
+ - lib/facebooker/rails/utilities.rb
151
+ - lib/facebooker/server_cache.rb
152
+ - lib/facebooker/service.rb
153
+ - lib/facebooker/session.rb
154
+ - lib/facebooker/version.rb
155
+ - lib/net/http_multipart_post.rb
156
+ - lib/rack/facebook.rb
157
+ - lib/tasks/facebooker.rake
158
+ - lib/tasks/tunnel.rake
159
+ - rails/init.rb
160
+ - setup.rb
161
+ - templates/layout.erb
162
+ - test/facebooker/adapters_test.rb
163
+ - test/facebooker/admin_test.rb
164
+ - test/facebooker/batch_request_test.rb
165
+ - test/facebooker/data_test.rb
166
+ - test/facebooker/logging_test.rb
167
+ - test/facebooker/mobile_test.rb
168
+ - test/facebooker/model_test.rb
169
+ - test/facebooker/models/event_test.rb
170
+ - test/facebooker/models/photo_test.rb
171
+ - test/facebooker/models/user_test.rb
172
+ - test/facebooker/rails/publisher_test.rb
173
+ - test/facebooker/rails_integration_test.rb
174
+ - test/facebooker/rails/facebook_request_fix_2-3_test.rb
175
+ - test/facebooker/server_cache_test.rb
176
+ - test/facebooker/session_test.rb
177
+ - test/facebooker_test.rb
178
+ - test/fixtures/multipart_post_body_with_only_parameters.txt
179
+ - test/fixtures/multipart_post_body_with_single_file.txt
180
+ - test/fixtures/multipart_post_body_with_single_file_that_has_nil_key.txt
181
+ - test/net/http_multipart_post_test.rb
182
+ - test/rack/facebook_test.rb
183
+ - test/rails_test_helper.rb
184
+ - test/test_helper.rb
185
+ - test/facebooker/rails/facebook_url_rewriting_test.rb
186
+ has_rdoc: true
187
+ homepage: http://facebooker.rubyforge.org
188
+ post_install_message:
189
+ rdoc_options:
190
+ - --main
191
+ - README.rdoc
192
+ require_paths:
193
+ - lib
194
+ required_ruby_version: !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - ">="
197
+ - !ruby/object:Gem::Version
198
+ version: "0"
199
+ version:
200
+ required_rubygems_version: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: "0"
205
+ version:
206
+ requirements: []
207
+
208
+ rubyforge_project: facebooker
209
+ rubygems_version: 1.2.0
210
+ signing_key:
211
+ specification_version: 2
212
+ summary: Facebooker is a Ruby wrapper over the Facebook[http://facebook.com] {REST API}[http://wiki.developers.facebook.com/index.php/API]
213
+ test_files:
214
+ - test/facebooker_test.rb
215
+ - test/facebooker/adapters_test.rb
216
+ - test/facebooker/admin_test.rb
217
+ - test/facebooker/batch_request_test.rb
218
+ - test/facebooker/data_test.rb
219
+ - test/facebooker/logging_test.rb
220
+ - test/facebooker/mobile_test.rb
221
+ - test/facebooker/model_test.rb
222
+ - test/facebooker/rails_integration_test.rb
223
+ - test/facebooker/server_cache_test.rb
224
+ - test/facebooker/session_test.rb
225
+ - test/facebooker/models/event_test.rb
226
+ - test/facebooker/models/photo_test.rb
227
+ - test/facebooker/models/user_test.rb
228
+ - test/facebooker/rails/facebook_request_fix_2-3_test.rb
229
+ - test/facebooker/rails/facebook_url_rewriting_test.rb
230
+ - test/facebooker/rails/publisher_test.rb
231
+ - test/net/http_multipart_post_test.rb
232
+ - test/rack/facebook_test.rb