hashrocket-clearance 0.4.3 → 0.4.4

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 (478) hide show
  1. data/Rakefile +1 -1
  2. data/lib/clearance/app/controllers/passwords_controller.rb +41 -16
  3. data/lib/clearance/test/functional/passwords_controller_test.rb +2 -2
  4. data/lib/clearance/version.rb +1 -1
  5. metadata +2 -634
  6. data/test/rails_root/Capfile +0 -3
  7. data/test/rails_root/Rakefile +0 -10
  8. data/test/rails_root/app/controllers/application.rb +0 -5
  9. data/test/rails_root/app/controllers/confirmations_controller.rb +0 -3
  10. data/test/rails_root/app/controllers/passwords_controller.rb +0 -3
  11. data/test/rails_root/app/controllers/sessions_controller.rb +0 -8
  12. data/test/rails_root/app/controllers/users_controller.rb +0 -3
  13. data/test/rails_root/app/helpers/application_helper.rb +0 -5
  14. data/test/rails_root/app/helpers/confirmations_helper.rb +0 -2
  15. data/test/rails_root/app/helpers/passwords_helper.rb +0 -2
  16. data/test/rails_root/app/models/clearance_mailer.rb +0 -4
  17. data/test/rails_root/app/models/user.rb +0 -3
  18. data/test/rails_root/app/views/clearance_mailer/confirmation.html.erb +0 -1
  19. data/test/rails_root/app/views/clearance_mailer/facebook_welcome.text.html.haml +0 -4
  20. data/test/rails_root/app/views/clearance_mailer/forgot_password.html.erb +0 -6
  21. data/test/rails_root/app/views/layouts/_flashes.erb +0 -5
  22. data/test/rails_root/app/views/layouts/application.html.erb +0 -14
  23. data/test/rails_root/app/views/passwords/edit.html.erb +0 -18
  24. data/test/rails_root/app/views/passwords/new.html.erb +0 -15
  25. data/test/rails_root/app/views/sessions/new.html.erb +0 -29
  26. data/test/rails_root/app/views/users/_form.html.erb +0 -13
  27. data/test/rails_root/app/views/users/_password_form.html.erb +0 -13
  28. data/test/rails_root/app/views/users/edit_password.html.erb +0 -4
  29. data/test/rails_root/app/views/users/new.html.erb +0 -6
  30. data/test/rails_root/config/boot.rb +0 -109
  31. data/test/rails_root/config/database.yml +0 -13
  32. data/test/rails_root/config/environment.rb +0 -19
  33. data/test/rails_root/config/environments/development.rb +0 -19
  34. data/test/rails_root/config/environments/test.rb +0 -23
  35. data/test/rails_root/config/facebooker.yml +0 -13
  36. data/test/rails_root/config/initializers/action_mailer.rb +0 -1
  37. data/test/rails_root/config/initializers/clearance.rb +0 -8
  38. data/test/rails_root/config/initializers/inflections.rb +0 -10
  39. data/test/rails_root/config/initializers/mime_types.rb +0 -5
  40. data/test/rails_root/config/initializers/requires.rb +0 -13
  41. data/test/rails_root/config/initializers/time_formats.rb +0 -4
  42. data/test/rails_root/config/routes.rb +0 -12
  43. data/test/rails_root/db/migrate/001_create_users.rb +0 -25
  44. data/test/rails_root/doc/README_FOR_APP +0 -2
  45. data/test/rails_root/doc/README_FOR_TEMPLATE +0 -15
  46. data/test/rails_root/lib/tasks/bootstrap.rake +0 -16
  47. data/test/rails_root/lib/tasks/capistrano.rake +0 -96
  48. data/test/rails_root/lib/tasks/git_tasks.rake +0 -129
  49. data/test/rails_root/lib/tasks/rspec.rake +0 -132
  50. data/test/rails_root/public/404.html +0 -30
  51. data/test/rails_root/public/422.html +0 -30
  52. data/test/rails_root/public/500.html +0 -30
  53. data/test/rails_root/public/dispatch.rb +0 -10
  54. data/test/rails_root/public/favicon.ico +0 -0
  55. data/test/rails_root/public/images/connect_light_medium_long.gif +0 -0
  56. data/test/rails_root/public/images/rails.png +0 -0
  57. data/test/rails_root/public/javascripts/application.js +0 -2
  58. data/test/rails_root/public/javascripts/builder.js +0 -136
  59. data/test/rails_root/public/javascripts/controls.js +0 -963
  60. data/test/rails_root/public/javascripts/dragdrop.js +0 -972
  61. data/test/rails_root/public/javascripts/effects.js +0 -1120
  62. data/test/rails_root/public/javascripts/facebooker.js +0 -106
  63. data/test/rails_root/public/javascripts/prototype.js +0 -4225
  64. data/test/rails_root/public/javascripts/scriptaculous.js +0 -58
  65. data/test/rails_root/public/javascripts/slider.js +0 -277
  66. data/test/rails_root/public/javascripts/sound.js +0 -60
  67. data/test/rails_root/public/robots.txt +0 -1
  68. data/test/rails_root/script/about +0 -3
  69. data/test/rails_root/script/autospec +0 -5
  70. data/test/rails_root/script/breakpointer +0 -3
  71. data/test/rails_root/script/console +0 -3
  72. data/test/rails_root/script/create_project.rb +0 -52
  73. data/test/rails_root/script/dbconsole +0 -3
  74. data/test/rails_root/script/destroy +0 -3
  75. data/test/rails_root/script/generate +0 -3
  76. data/test/rails_root/script/performance/benchmarker +0 -3
  77. data/test/rails_root/script/performance/profiler +0 -3
  78. data/test/rails_root/script/performance/request +0 -3
  79. data/test/rails_root/script/plugin +0 -3
  80. data/test/rails_root/script/process/inspector +0 -3
  81. data/test/rails_root/script/process/reaper +0 -3
  82. data/test/rails_root/script/process/spawner +0 -3
  83. data/test/rails_root/script/runner +0 -3
  84. data/test/rails_root/script/server +0 -3
  85. data/test/rails_root/script/spec +0 -5
  86. data/test/rails_root/script/spec_server +0 -116
  87. data/test/rails_root/spec/controllers/passwords_controller_spec.rb +0 -5
  88. data/test/rails_root/spec/controllers/session_controller_spec.rb +0 -5
  89. data/test/rails_root/spec/models/user_spec.rb +0 -5
  90. data/test/rails_root/spec/rcov.opts +0 -2
  91. data/test/rails_root/spec/spec.opts +0 -4
  92. data/test/rails_root/spec/spec_helper.rb +0 -51
  93. data/test/rails_root/test/factories.rb +0 -9
  94. data/test/rails_root/test/functional/confirmations_controller_test.rb +0 -5
  95. data/test/rails_root/test/functional/passwords_controller_test.rb +0 -5
  96. data/test/rails_root/test/functional/sessions_controller_test.rb +0 -5
  97. data/test/rails_root/test/functional/users_controller_test.rb +0 -5
  98. data/test/rails_root/test/test_helper.rb +0 -21
  99. data/test/rails_root/test/unit/clearance_mailer_test.rb +0 -6
  100. data/test/rails_root/test/unit/user_test.rb +0 -5
  101. data/test/rails_root/vendor/gems/mocha-0.9.1/COPYING +0 -3
  102. data/test/rails_root/vendor/gems/mocha-0.9.1/MIT-LICENSE +0 -7
  103. data/test/rails_root/vendor/gems/mocha-0.9.1/README +0 -35
  104. data/test/rails_root/vendor/gems/mocha-0.9.1/RELEASE +0 -246
  105. data/test/rails_root/vendor/gems/mocha-0.9.1/Rakefile +0 -188
  106. data/test/rails_root/vendor/gems/mocha-0.9.1/examples/misc.rb +0 -44
  107. data/test/rails_root/vendor/gems/mocha-0.9.1/examples/mocha.rb +0 -26
  108. data/test/rails_root/vendor/gems/mocha-0.9.1/examples/stubba.rb +0 -65
  109. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha.rb +0 -20
  110. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/any_instance_method.rb +0 -54
  111. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/backtrace_filter.rb +0 -17
  112. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/cardinality.rb +0 -95
  113. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/central.rb +0 -27
  114. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/change_state_side_effect.rb +0 -19
  115. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/class_method.rb +0 -86
  116. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/configuration.rb +0 -60
  117. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/deprecation.rb +0 -22
  118. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/exception_raiser.rb +0 -17
  119. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/expectation.rb +0 -445
  120. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/expectation_error.rb +0 -15
  121. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/expectation_list.rb +0 -50
  122. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/in_state_ordering_constraint.rb +0 -19
  123. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/inspect.rb +0 -39
  124. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/instance_method.rb +0 -16
  125. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/is_a.rb +0 -9
  126. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/logger.rb +0 -15
  127. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/metaclass.rb +0 -7
  128. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/method_matcher.rb +0 -21
  129. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/mock.rb +0 -196
  130. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/mockery.rb +0 -181
  131. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/module_method.rb +0 -16
  132. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/multiple_yields.rb +0 -20
  133. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/names.rb +0 -53
  134. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/no_yields.rb +0 -11
  135. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/object.rb +0 -134
  136. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/parameter_matchers.rb +0 -26
  137. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/parameter_matchers/all_of.rb +0 -42
  138. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/parameter_matchers/any_of.rb +0 -47
  139. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/parameter_matchers/any_parameters.rb +0 -40
  140. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/parameter_matchers/anything.rb +0 -33
  141. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/parameter_matchers/base.rb +0 -15
  142. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/parameter_matchers/equals.rb +0 -42
  143. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/parameter_matchers/has_entries.rb +0 -45
  144. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/parameter_matchers/has_entry.rb +0 -56
  145. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/parameter_matchers/has_key.rb +0 -42
  146. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/parameter_matchers/has_value.rb +0 -42
  147. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/parameter_matchers/includes.rb +0 -40
  148. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/parameter_matchers/instance_of.rb +0 -42
  149. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/parameter_matchers/is_a.rb +0 -42
  150. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/parameter_matchers/kind_of.rb +0 -42
  151. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/parameter_matchers/not.rb +0 -42
  152. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/parameter_matchers/object.rb +0 -9
  153. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/parameter_matchers/optionally.rb +0 -55
  154. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/parameter_matchers/regexp_matches.rb +0 -43
  155. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/parameter_matchers/responds_with.rb +0 -43
  156. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/parameter_matchers/yaml_equivalent.rb +0 -43
  157. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/parameters_matcher.rb +0 -37
  158. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/pretty_parameters.rb +0 -28
  159. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/return_values.rb +0 -31
  160. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/sequence.rb +0 -42
  161. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/single_return_value.rb +0 -17
  162. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/single_yield.rb +0 -18
  163. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/standalone.rb +0 -166
  164. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/state_machine.rb +0 -91
  165. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/stubbing_error.rb +0 -16
  166. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/test_case_adapter.rb +0 -103
  167. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/unexpected_invocation.rb +0 -18
  168. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha/yield_parameters.rb +0 -31
  169. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/mocha_standalone.rb +0 -2
  170. data/test/rails_root/vendor/gems/mocha-0.9.1/lib/stubba.rb +0 -4
  171. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/acceptance_test_helper.rb +0 -38
  172. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/bug_18914_test.rb +0 -43
  173. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/bug_21465_test.rb +0 -34
  174. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/bug_21563_test.rb +0 -25
  175. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/expected_invocation_count_test.rb +0 -196
  176. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/failure_messages_test.rb +0 -64
  177. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/mocha_example_test.rb +0 -98
  178. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/mocha_test_result_test.rb +0 -84
  179. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/mock_test.rb +0 -100
  180. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/mock_with_initializer_block_test.rb +0 -51
  181. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/mocked_methods_dispatch_test.rb +0 -78
  182. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/optional_parameters_test.rb +0 -70
  183. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/parameter_matcher_test.rb +0 -179
  184. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/partial_mocks_test.rb +0 -47
  185. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/return_value_test.rb +0 -52
  186. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/sequence_test.rb +0 -186
  187. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/standalone_test.rb +0 -139
  188. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/states_test.rb +0 -70
  189. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/stub_any_instance_method_test.rb +0 -195
  190. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/stub_class_method_test.rb +0 -203
  191. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/stub_everything_test.rb +0 -56
  192. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/stub_instance_method_test.rb +0 -165
  193. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/stub_module_method_test.rb +0 -163
  194. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/stub_test.rb +0 -52
  195. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/stubba_example_test.rb +0 -102
  196. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/stubba_test.rb +0 -15
  197. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/stubba_test_result_test.rb +0 -66
  198. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/stubbing_error_backtrace_test.rb +0 -64
  199. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/stubbing_method_unnecessarily_test.rb +0 -65
  200. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +0 -130
  201. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/stubbing_non_existent_class_method_test.rb +0 -155
  202. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/stubbing_non_existent_instance_method_test.rb +0 -145
  203. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/stubbing_non_public_any_instance_method_test.rb +0 -130
  204. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/stubbing_non_public_class_method_test.rb +0 -161
  205. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/stubbing_non_public_instance_method_test.rb +0 -141
  206. data/test/rails_root/vendor/gems/mocha-0.9.1/test/acceptance/stubbing_on_non_mock_object_test.rb +0 -64
  207. data/test/rails_root/vendor/gems/mocha-0.9.1/test/active_record_test_case.rb +0 -36
  208. data/test/rails_root/vendor/gems/mocha-0.9.1/test/deprecation_disabler.rb +0 -15
  209. data/test/rails_root/vendor/gems/mocha-0.9.1/test/execution_point.rb +0 -36
  210. data/test/rails_root/vendor/gems/mocha-0.9.1/test/method_definer.rb +0 -18
  211. data/test/rails_root/vendor/gems/mocha-0.9.1/test/simple_counter.rb +0 -13
  212. data/test/rails_root/vendor/gems/mocha-0.9.1/test/test_helper.rb +0 -11
  213. data/test/rails_root/vendor/gems/mocha-0.9.1/test/test_runner.rb +0 -33
  214. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/any_instance_method_test.rb +0 -126
  215. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/array_inspect_test.rb +0 -16
  216. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/backtrace_filter_test.rb +0 -19
  217. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/cardinality_test.rb +0 -56
  218. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/central_test.rb +0 -65
  219. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/change_state_side_effect_test.rb +0 -41
  220. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/class_method_test.rb +0 -237
  221. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/date_time_inspect_test.rb +0 -21
  222. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/exception_raiser_test.rb +0 -42
  223. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/expectation_list_test.rb +0 -57
  224. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/expectation_test.rb +0 -459
  225. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/hash_inspect_test.rb +0 -16
  226. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/in_state_ordering_constraint_test.rb +0 -43
  227. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/metaclass_test.rb +0 -22
  228. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/method_matcher_test.rb +0 -23
  229. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/mock_test.rb +0 -290
  230. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/mockery_test.rb +0 -149
  231. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/multiple_yields_test.rb +0 -18
  232. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/no_yields_test.rb +0 -18
  233. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/object_inspect_test.rb +0 -37
  234. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/object_test.rb +0 -82
  235. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/parameter_matchers/all_of_test.rb +0 -26
  236. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/parameter_matchers/any_of_test.rb +0 -26
  237. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/parameter_matchers/anything_test.rb +0 -21
  238. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/parameter_matchers/equals_test.rb +0 -25
  239. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/parameter_matchers/has_entries_test.rb +0 -51
  240. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/parameter_matchers/has_entry_test.rb +0 -62
  241. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/parameter_matchers/has_key_test.rb +0 -36
  242. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/parameter_matchers/has_value_test.rb +0 -37
  243. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/parameter_matchers/includes_test.rb +0 -25
  244. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/parameter_matchers/instance_of_test.rb +0 -25
  245. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/parameter_matchers/is_a_test.rb +0 -25
  246. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/parameter_matchers/kind_of_test.rb +0 -25
  247. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/parameter_matchers/not_test.rb +0 -26
  248. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/parameter_matchers/regexp_matches_test.rb +0 -25
  249. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/parameter_matchers/responds_with_test.rb +0 -25
  250. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/parameter_matchers/stub_matcher.rb +0 -27
  251. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/parameter_matchers/yaml_equivalent_test.rb +0 -25
  252. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/parameters_matcher_test.rb +0 -121
  253. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/return_values_test.rb +0 -63
  254. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/sequence_test.rb +0 -104
  255. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/single_return_value_test.rb +0 -14
  256. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/single_yield_test.rb +0 -18
  257. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/state_machine_test.rb +0 -98
  258. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/string_inspect_test.rb +0 -11
  259. data/test/rails_root/vendor/gems/mocha-0.9.1/test/unit/yield_parameters_test.rb +0 -93
  260. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/CONTRIBUTION_GUIDELINES.rdoc +0 -12
  261. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/MIT-LICENSE +0 -22
  262. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/README.rdoc +0 -132
  263. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/Rakefile +0 -72
  264. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/bin/convert_to_should_syntax +0 -42
  265. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/lib/shoulda.rb +0 -17
  266. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/lib/shoulda/action_mailer.rb +0 -10
  267. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/lib/shoulda/action_mailer/assertions.rb +0 -39
  268. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/lib/shoulda/active_record.rb +0 -12
  269. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/lib/shoulda/active_record/assertions.rb +0 -85
  270. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/lib/shoulda/active_record/macros.rb +0 -715
  271. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/lib/shoulda/assertions.rb +0 -45
  272. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/lib/shoulda/context.rb +0 -306
  273. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/lib/shoulda/controller.rb +0 -30
  274. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/lib/shoulda/controller/formats/html.rb +0 -201
  275. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/lib/shoulda/controller/formats/xml.rb +0 -170
  276. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/lib/shoulda/controller/helpers.rb +0 -64
  277. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/lib/shoulda/controller/macros.rb +0 -316
  278. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/lib/shoulda/controller/resource_options.rb +0 -236
  279. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/lib/shoulda/helpers.rb +0 -10
  280. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/lib/shoulda/macros.rb +0 -74
  281. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/lib/shoulda/private_helpers.rb +0 -22
  282. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/lib/shoulda/proc_extensions.rb +0 -14
  283. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/lib/shoulda/rails.rb +0 -19
  284. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/lib/shoulda/tasks.rb +0 -3
  285. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/lib/shoulda/tasks/list_tests.rake +0 -24
  286. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/lib/shoulda/tasks/yaml_to_shoulda.rake +0 -28
  287. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/rails/init.rb +0 -1
  288. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/README +0 -36
  289. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/fail_macros.rb +0 -34
  290. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/fixtures/addresses.yml +0 -3
  291. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/fixtures/friendships.yml +0 -0
  292. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/fixtures/posts.yml +0 -5
  293. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/fixtures/products.yml +0 -0
  294. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/fixtures/taggings.yml +0 -0
  295. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/fixtures/tags.yml +0 -9
  296. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/fixtures/users.yml +0 -6
  297. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/functional/posts_controller_test.rb +0 -104
  298. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/functional/users_controller_test.rb +0 -38
  299. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/other/context_test.rb +0 -145
  300. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/other/convert_to_should_syntax_test.rb +0 -63
  301. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/other/helpers_test.rb +0 -183
  302. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/other/private_helpers_test.rb +0 -34
  303. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/other/should_test.rb +0 -266
  304. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/app/controllers/application.rb +0 -25
  305. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/app/controllers/posts_controller.rb +0 -85
  306. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/app/controllers/users_controller.rb +0 -84
  307. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/app/helpers/application_helper.rb +0 -3
  308. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/app/helpers/posts_helper.rb +0 -2
  309. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/app/helpers/users_helper.rb +0 -2
  310. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/app/models/address.rb +0 -7
  311. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/app/models/dog.rb +0 -5
  312. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/app/models/flea.rb +0 -3
  313. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/app/models/friendship.rb +0 -4
  314. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/app/models/post.rb +0 -12
  315. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/app/models/product.rb +0 -12
  316. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/app/models/tag.rb +0 -8
  317. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/app/models/tagging.rb +0 -4
  318. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/app/models/user.rb +0 -28
  319. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/app/views/layouts/posts.rhtml +0 -17
  320. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/app/views/layouts/users.rhtml +0 -17
  321. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/app/views/layouts/wide.html.erb +0 -1
  322. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/app/views/posts/edit.rhtml +0 -27
  323. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/app/views/posts/index.rhtml +0 -25
  324. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/app/views/posts/new.rhtml +0 -26
  325. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/app/views/posts/show.rhtml +0 -18
  326. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/app/views/users/edit.rhtml +0 -22
  327. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/app/views/users/index.rhtml +0 -22
  328. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/app/views/users/new.rhtml +0 -21
  329. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/app/views/users/show.rhtml +0 -13
  330. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/config/boot.rb +0 -109
  331. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/config/database.yml +0 -4
  332. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/config/environment.rb +0 -14
  333. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/config/environments/sqlite3.rb +0 -0
  334. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/config/initializers/new_rails_defaults.rb +0 -15
  335. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/config/initializers/shoulda.rb +0 -8
  336. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/config/routes.rb +0 -6
  337. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/db/migrate/001_create_users.rb +0 -18
  338. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/db/migrate/002_create_posts.rb +0 -13
  339. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/db/migrate/003_create_taggings.rb +0 -12
  340. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/db/migrate/004_create_tags.rb +0 -11
  341. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/db/migrate/005_create_dogs.rb +0 -12
  342. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/db/migrate/006_create_addresses.rb +0 -14
  343. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/db/migrate/007_create_fleas.rb +0 -11
  344. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/db/migrate/008_create_dogs_fleas.rb +0 -12
  345. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/db/migrate/009_create_products.rb +0 -17
  346. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/db/migrate/010_create_friendships.rb +0 -14
  347. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/db/schema.rb +0 -0
  348. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/log/sqlite3.log +0 -1
  349. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/public/404.html +0 -30
  350. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/public/422.html +0 -30
  351. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/public/500.html +0 -30
  352. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/script/console +0 -3
  353. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/rails_root/script/generate +0 -3
  354. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/test_helper.rb +0 -33
  355. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/unit/address_test.rb +0 -10
  356. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/unit/dog_test.rb +0 -7
  357. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/unit/flea_test.rb +0 -6
  358. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/unit/friendship_test.rb +0 -6
  359. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/unit/post_test.rb +0 -15
  360. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/unit/product_test.rb +0 -27
  361. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/unit/tag_test.rb +0 -14
  362. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/unit/tagging_test.rb +0 -6
  363. data/test/rails_root/vendor/gems/thoughtbot-shoulda-2.0.4/test/unit/user_test.rb +0 -52
  364. data/test/rails_root/vendor/plugins/facebooker/CHANGELOG.txt +0 -0
  365. data/test/rails_root/vendor/plugins/facebooker/COPYING +0 -19
  366. data/test/rails_root/vendor/plugins/facebooker/History.txt +0 -16
  367. data/test/rails_root/vendor/plugins/facebooker/Manifest.txt +0 -110
  368. data/test/rails_root/vendor/plugins/facebooker/README +0 -46
  369. data/test/rails_root/vendor/plugins/facebooker/README.txt +0 -81
  370. data/test/rails_root/vendor/plugins/facebooker/Rakefile +0 -62
  371. data/test/rails_root/vendor/plugins/facebooker/TODO.txt +0 -10
  372. data/test/rails_root/vendor/plugins/facebooker/examples/desktop_login.rb +0 -14
  373. data/test/rails_root/vendor/plugins/facebooker/facebooker.gemspec +0 -34
  374. data/test/rails_root/vendor/plugins/facebooker/generators/facebook/facebook_generator.rb +0 -14
  375. data/test/rails_root/vendor/plugins/facebooker/generators/facebook/templates/config/facebooker.yml +0 -41
  376. data/test/rails_root/vendor/plugins/facebooker/generators/facebook/templates/public/javascripts/facebooker.js +0 -106
  377. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_controller/USAGE +0 -33
  378. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_controller/facebook_controller_generator.rb +0 -40
  379. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_controller/templates/controller.rb +0 -7
  380. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_controller/templates/functional_test.rb +0 -11
  381. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_controller/templates/helper.rb +0 -2
  382. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_controller/templates/view.fbml.erb +0 -2
  383. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_controller/templates/view.html.erb +0 -2
  384. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_publisher/facebook_publisher_generator.rb +0 -14
  385. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_publisher/templates/create_facebook_templates.rb +0 -15
  386. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_publisher/templates/publisher.rb +0 -3
  387. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_scaffold/USAGE +0 -27
  388. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_scaffold/facebook_scaffold_generator.rb +0 -118
  389. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_scaffold/templates/controller.rb +0 -93
  390. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_scaffold/templates/facebook_style.css +0 -2579
  391. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_scaffold/templates/functional_test.rb +0 -89
  392. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_scaffold/templates/helper.rb +0 -2
  393. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_scaffold/templates/layout.fbml.erb +0 -6
  394. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_scaffold/templates/layout.html.erb +0 -17
  395. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_scaffold/templates/style.css +0 -74
  396. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_scaffold/templates/view_edit.fbml.erb +0 -13
  397. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_scaffold/templates/view_edit.html.erb +0 -18
  398. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_scaffold/templates/view_index.fbml.erb +0 -24
  399. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_scaffold/templates/view_index.html.erb +0 -24
  400. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_scaffold/templates/view_new.fbml.erb +0 -12
  401. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_scaffold/templates/view_new.html.erb +0 -17
  402. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_scaffold/templates/view_show.fbml.erb +0 -10
  403. data/test/rails_root/vendor/plugins/facebooker/generators/facebook_scaffold/templates/view_show.html.erb +0 -10
  404. data/test/rails_root/vendor/plugins/facebooker/generators/publisher/publisher_generator.rb +0 -14
  405. data/test/rails_root/vendor/plugins/facebooker/generators/receiver/receiver_generator.rb +0 -9
  406. data/test/rails_root/vendor/plugins/facebooker/generators/receiver/templates/xd_receiver.html +0 -10
  407. data/test/rails_root/vendor/plugins/facebooker/init.rb +0 -54
  408. data/test/rails_root/vendor/plugins/facebooker/install.rb +0 -12
  409. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker.rb +0 -143
  410. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/adapters/adapter_base.rb +0 -87
  411. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/adapters/bebo_adapter.rb +0 -73
  412. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/adapters/facebook_adapter.rb +0 -48
  413. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/admin.rb +0 -28
  414. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/batch_request.rb +0 -44
  415. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/data.rb +0 -57
  416. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/feed.rb +0 -78
  417. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/logging.rb +0 -41
  418. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/model.rb +0 -123
  419. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/models/affiliation.rb +0 -10
  420. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/models/album.rb +0 -11
  421. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/models/applicationproperties.rb +0 -39
  422. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/models/cookie.rb +0 -10
  423. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/models/education_info.rb +0 -11
  424. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/models/event.rb +0 -26
  425. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/models/friend_list.rb +0 -14
  426. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/models/group.rb +0 -35
  427. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/models/info_item.rb +0 -10
  428. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/models/info_section.rb +0 -10
  429. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/models/location.rb +0 -8
  430. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/models/notifications.rb +0 -17
  431. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/models/page.rb +0 -27
  432. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/models/photo.rb +0 -10
  433. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/models/tag.rb +0 -12
  434. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/models/user.rb +0 -352
  435. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/models/work_info.rb +0 -9
  436. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/parser.rb +0 -540
  437. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/rails/controller.rb +0 -246
  438. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/rails/facebook_asset_path.rb +0 -18
  439. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/rails/facebook_form_builder.rb +0 -112
  440. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/rails/facebook_pretty_errors.rb +0 -14
  441. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/rails/facebook_request_fix.rb +0 -24
  442. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/rails/facebook_session_handling.rb +0 -58
  443. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/rails/facebook_url_helper.rb +0 -191
  444. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/rails/facebook_url_rewriting.rb +0 -39
  445. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/rails/helpers.rb +0 -615
  446. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/rails/profile_publisher_extensions.rb +0 -42
  447. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/rails/publisher.rb +0 -475
  448. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/rails/routing.rb +0 -49
  449. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/rails/test_helpers.rb +0 -88
  450. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/rails/utilities.rb +0 -22
  451. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/server_cache.rb +0 -24
  452. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/service.rb +0 -31
  453. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/session.rb +0 -564
  454. data/test/rails_root/vendor/plugins/facebooker/lib/facebooker/version.rb +0 -9
  455. data/test/rails_root/vendor/plugins/facebooker/lib/net/http_multipart_post.rb +0 -123
  456. data/test/rails_root/vendor/plugins/facebooker/lib/tasks/facebooker.rake +0 -18
  457. data/test/rails_root/vendor/plugins/facebooker/lib/tasks/tunnel.rake +0 -46
  458. data/test/rails_root/vendor/plugins/facebooker/rails/init.rb +0 -1
  459. data/test/rails_root/vendor/plugins/facebooker/setup.rb +0 -1585
  460. data/test/rails_root/vendor/plugins/facebooker/templates/layout.erb +0 -24
  461. data/test/rails_root/vendor/plugins/facebooker/test/adapters_test.rb +0 -98
  462. data/test/rails_root/vendor/plugins/facebooker/test/batch_request_test.rb +0 -82
  463. data/test/rails_root/vendor/plugins/facebooker/test/event_test.rb +0 -15
  464. data/test/rails_root/vendor/plugins/facebooker/test/facebook_admin_test.rb +0 -75
  465. data/test/rails_root/vendor/plugins/facebooker/test/facebook_cache_test.rb +0 -43
  466. data/test/rails_root/vendor/plugins/facebooker/test/facebook_data_test.rb +0 -84
  467. data/test/rails_root/vendor/plugins/facebooker/test/facebooker_test.rb +0 -855
  468. data/test/rails_root/vendor/plugins/facebooker/test/fixtures/multipart_post_body_with_only_parameters.txt +0 -33
  469. data/test/rails_root/vendor/plugins/facebooker/test/fixtures/multipart_post_body_with_single_file.txt +0 -38
  470. data/test/rails_root/vendor/plugins/facebooker/test/fixtures/multipart_post_body_with_single_file_that_has_nil_key.txt +0 -38
  471. data/test/rails_root/vendor/plugins/facebooker/test/http_multipart_post_test.rb +0 -54
  472. data/test/rails_root/vendor/plugins/facebooker/test/logging_test.rb +0 -36
  473. data/test/rails_root/vendor/plugins/facebooker/test/model_test.rb +0 -91
  474. data/test/rails_root/vendor/plugins/facebooker/test/publisher_test.rb +0 -436
  475. data/test/rails_root/vendor/plugins/facebooker/test/rails_integration_test.rb +0 -1125
  476. data/test/rails_root/vendor/plugins/facebooker/test/session_test.rb +0 -587
  477. data/test/rails_root/vendor/plugins/facebooker/test/test_helper.rb +0 -60
  478. data/test/rails_root/vendor/plugins/facebooker/test/user_test.rb +0 -229
@@ -1,191 +0,0 @@
1
- # Extends the ActionView::Helpers::UrlHelper module. See it for details on
2
- # the usual url helper methods: url_for, link_to, button_to, etc.
3
- #
4
- # Mostly, the changes sanitize javascript into facebook javascript.
5
- # It sanitizes link_to solely by altering the private methods:
6
- # convert_options_to_javascript!, confirm_javascript_function, and
7
- # method_javascript_function. For button_to, it alters button_to
8
- # itself, as well as confirm_javascript_function. No other methods
9
- # need to be changed because of Facebook javascript.
10
- #
11
- # For button_to and link_to, adds alternate confirm options for facebook.
12
- # ==== Options
13
- # * <tt>:confirm => 'question?'</tt> - This will add a JavaScript confirm
14
- # prompt with the question specified.
15
- #
16
- # Example:
17
- # # Generates: <a href="http://rubyforge.org/projects/facebooker" onclick="
18
- # # var dlg = new Dialog().showChoice('Please Confirm', 'Go to Facebooker?').setStyle();
19
- # # var a=this;dlg.onconfirm = function() {
20
- # # document.setLocation(a.getHref());
21
- # # }; return false;">Facebooker</a>
22
- # link_to("Facebooker", "http://rubyforge.org/projects/facebooker", :confirm=>"Go to Facebooker?")
23
- #
24
- # Alternatively, options[:confirm] may be specified.
25
- # See the Facebook page http://wiki.developers.facebook.com/index.php/FBJS.
26
- # These options are:
27
- # <tt>:title</tt>:: Specifies the title of the Facebook dialog. Default is "Please Confirm".
28
- # <tt>:content</tt>:: Specifies the title of the Facebook dialog. Default is "Are you sure?".
29
- #
30
- # Example:
31
- # # Generates: <a href="http://rubyforge.org/projects/facebooker" onclick="
32
- # # var dlg = new Dialog().showChoice('the page says:', 'Go to Facebooker?').setStyle();
33
- # # var a=this;dlg.onconfirm = function() {
34
- # # document.setLocation(a.getHref());
35
- # # }; return false;">Facebooker</a>
36
- # link_to("Facebooker", "http://rubyforge.org/projects/facebooker", :confirm=>{:title=>"the page says:", :content=>"Go to Facebooker?"})
37
- #
38
- # Any other options passed are assumed to be css styles.
39
- # Again, see the Facebook page http://wiki.developers.facebook.com/index.php/FBJS.
40
- #
41
- # Example:
42
- # # Generates: <a href="http://rubyforge.org/projects/facebooker" onclick="
43
- # # var dlg = new Dialog().showChoice('the page says:', 'Are you sure?').setStyle({color: 'pink', width: '200px'});
44
- # # var a=this;dlg.onconfirm = function() {
45
- # # document.setLocation(a.getHref());
46
- # # }; return false;">Facebooker</a>
47
- # link_to("Facebooker", "http://rubyforge.org/projects/facebooker", :confirm=>{:title=>"the page says:, :color=>"pink", :width=>"200px"})
48
- module ActionView
49
- module Helpers
50
- module UrlHelper
51
- # Alters one and only one line of the Rails button_to. See below.
52
- def button_to_with_facebooker(name, options={}, html_options = {})
53
- if !request_comes_from_facebook?
54
- button_to_without_facebooker(name,options,html_options)
55
- else
56
- html_options = html_options.stringify_keys
57
- convert_boolean_attributes!(html_options, %w( disabled ))
58
-
59
- method_tag = ''
60
- if (method = html_options.delete('method')) && %w{put delete}.include?(method.to_s)
61
- method_tag = tag('input', :type => 'hidden', :name => '_method', :value => method.to_s)
62
- end
63
-
64
- form_method = method.to_s == 'get' ? 'get' : 'post'
65
-
66
- request_token_tag = ''
67
- if form_method == 'post' && protect_against_forgery?
68
- request_token_tag = tag(:input, :type => "hidden", :name => request_forgery_protection_token.to_s, :value => form_authenticity_token)
69
- end
70
-
71
- if confirm = html_options.delete("confirm")
72
- # this line is the only change => html_options["onclick"] = "return #{confirm_javascript_function(confirm)}"
73
- html_options["onclick"] = "#{confirm_javascript_function(confirm, 'a.getForm().submit();')}return false;"
74
- end
75
-
76
- url = options.is_a?(String) ? options : self.url_for(options)
77
- name ||= url
78
-
79
- html_options.merge!("type" => "submit", "value" => name)
80
-
81
- "<form method=\"#{form_method}\" action=\"#{escape_once url}\" class=\"button-to\"><div>" +
82
- method_tag + tag("input", html_options) + request_token_tag + "</div></form>"
83
- end
84
- end
85
-
86
- alias_method_chain :button_to, :facebooker
87
-
88
- private
89
-
90
- # Altered to throw an error on :popup and sanitize the javascript
91
- # for Facebook.
92
- def convert_options_to_javascript_with_facebooker!(html_options, url ='')
93
- if !request_comes_from_facebook?
94
- convert_options_to_javascript_without_facebooker!(html_options,url)
95
- else
96
- confirm, popup = html_options.delete("confirm"), html_options.delete("popup")
97
-
98
- method, href = html_options.delete("method"), html_options['href']
99
-
100
- html_options["onclick"] = case
101
- when popup
102
- raise ActionView::ActionViewError, "You can't use :popup"
103
- when method # or maybe (confirm and method)
104
- "#{method_javascript_function(method, url, href, confirm)}return false;"
105
- when confirm # and only confirm
106
- "#{confirm_javascript_function(confirm)}return false;"
107
- else
108
- html_options["onclick"]
109
- end
110
- end
111
- end
112
-
113
- alias_method_chain :convert_options_to_javascript!, :facebooker
114
-
115
-
116
- # Overrides a private method that link_to calls via convert_options_to_javascript! and
117
- # also, button_to calls directly. For Facebook, confirm can be a hash of options to
118
- # stylize the Facebook dialog. Takes :title, :content, :style options. See
119
- # the Facebook page http://wiki.developers.facebook.com/index.php/FBJS for valid
120
- # style formats like "color: 'black', background: 'white'" or like "'color','black'".
121
- #
122
- # == Examples ==
123
- #
124
- # link_to("Facebooker", "http://rubyforge.org/projects/facebooker", :confirm=>"Go to Facebooker?")
125
- # link_to("Facebooker", "http://rubyforge.org/projects/facebooker", :confirm=>{:title=>"the page says:, :content=>"Go to Facebooker?"})
126
- # link_to("Facebooker", "http://rubyforge.org/projects/facebooker", :confirm=>{:title=>"the page says:, :content=>"Go to Facebooker?", :color=>"pink"})
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
- style = confirm_options.empty? ? "" : convert_options_to_css(confirm_options)
136
- else
137
- title,content,style = 'Please Confirm', confirm, ""
138
- end
139
-
140
- "var dlg = new Dialog().showChoice('#{escape_javascript(title.to_s)}','#{escape_javascript(content.to_s)}').setStyle(#{style});"+
141
- "var a=this;dlg.onconfirm = function() { #{fun ? fun : 'document.setLocation(a.getHref());'} };"
142
- end
143
- end
144
-
145
- alias_method_chain :confirm_javascript_function, :facebooker
146
-
147
- def convert_options_to_css(options)
148
- key_pair = options.shift
149
- style = "{#{key_pair[0]}: '#{key_pair[1]}'"
150
- for key in options.keys
151
- style << ", #{key}: '#{options[key]}'"
152
- end
153
- style << "}"
154
- end
155
-
156
- # Dynamically creates a form for link_to with method. Calls confirm_javascript_function if and
157
- # only if (confirm && method) for link_to
158
- def method_javascript_function_with_facebooker(method, url = '', href = nil, confirm = nil)
159
- if !request_comes_from_facebook?
160
- method_javascript_function_without_facebooker(method,url,href)
161
- else
162
- action = (href && url.size > 0) ? "'#{url}'" : 'a.getHref()'
163
- submit_function =
164
- "var f = document.createElement('form'); f.setStyle('display','none'); " +
165
- "a.getParentNode().appendChild(f); f.setMethod('POST'); f.setAction(#{action});"
166
-
167
- unless method == :post
168
- submit_function << "var m = document.createElement('input'); m.setType('hidden'); "
169
- submit_function << "m.setName('_method'); m.setValue('#{method}'); f.appendChild(m);"
170
- end
171
-
172
- if protect_against_forgery?
173
- submit_function << "var s = document.createElement('input'); s.setType('hidden'); "
174
- submit_function << "s.setName('#{request_forgery_protection_token}'); s.setValue('#{escape_javascript form_authenticity_token}'); f.appendChild(s);"
175
- end
176
- submit_function << "f.submit();"
177
-
178
- if(confirm)
179
- confirm_javascript_function(confirm, submit_function)
180
- else
181
- "var a=this;" + submit_function
182
- end
183
- end
184
- end
185
-
186
- alias_method_chain :method_javascript_function, :facebooker
187
-
188
- end
189
- end
190
- end
191
-
@@ -1,39 +0,0 @@
1
- module ::ActionController
2
- class AbstractRequest
3
- def relative_url_root
4
- Facebooker.path_prefix
5
- end
6
- end
7
-
8
- class Base
9
- def self.relative_url_root
10
- Facebooker.path_prefix
11
- end
12
- end
13
-
14
- class UrlRewriter
15
- RESERVED_OPTIONS << :canvas
16
- def link_to_new_canvas?
17
- @request.parameters["fb_sig_in_new_facebook"] == "1"
18
- end
19
- def link_to_canvas?(params, options)
20
- option_override = options[:canvas]
21
- return false if option_override == false # important to check for false. nil should use default behavior
22
- option_override || @request.parameters["fb_sig_in_canvas"] == "1" || @request.parameters[:fb_sig_in_canvas] == "1"
23
- end
24
-
25
- def rewrite_url_with_facebooker(*args)
26
- options = args.first.is_a?(Hash) ? args.first : args.last
27
- is_link_to_canvas = link_to_canvas?(@request.request_parameters, options)
28
- if is_link_to_canvas && !options.has_key?(:host)
29
- options[:host] = Facebooker.canvas_server_base
30
- end
31
- options.delete(:canvas)
32
- Facebooker.request_for_canvas(is_link_to_canvas) do
33
- rewrite_url_without_facebooker(*args)
34
- end
35
- end
36
-
37
- alias_method_chain :rewrite_url, :facebooker
38
- end
39
- end
@@ -1,615 +0,0 @@
1
- module Facebooker
2
- module Rails
3
-
4
- # Facebook specific helpers for creating FBML
5
- #
6
- # All helpers that take a user as a parameter will get the Facebook UID from the facebook_id attribute if it exists.
7
- # It will use to_s if the facebook_id attribute is not present.
8
- #
9
- module Helpers
10
-
11
-
12
- # Create an fb:dialog
13
- # id must be a unique name e.g. "my_dialog"
14
- # cancel_button is true or false
15
- def fb_dialog( id, cancel_button, &block )
16
- content = capture(&block)
17
- concat( content_tag("fb:dialog", content, {:id => id, :cancel_button => cancel_button}), block.binding )
18
- end
19
-
20
- def fb_dialog_title( title )
21
- content_tag "fb:dialog-title", title
22
- end
23
-
24
- def fb_dialog_content( &block )
25
- content = capture(&block)
26
- concat( content_tag("fb:dialog-content", content), block.binding )
27
- end
28
-
29
- def fb_dialog_button( type, value, options={} )
30
- options.assert_valid_keys FB_DIALOG_BUTTON_VALID_OPTION_KEYS
31
- options.merge! :type => type, :value => value
32
- tag "fb:dialog-button", options
33
- end
34
-
35
- FB_DIALOG_BUTTON_VALID_OPTION_KEYS = [:close_dialog, :href, :form_id, :clickrewriteurl, :clickrewriteid, :clickrewriteform]
36
-
37
- # Create an fb:request-form without a selector
38
- #
39
- # The block passed to this tag is used as the content of the form
40
- #
41
- # The message param is the name sent to content_for that specifies the body of the message
42
- #
43
- # For example,
44
- #
45
- # <% content_for("invite_message") do %>
46
- # This gets sent in the invite. <%= fb_req_choice("with a button!",new_poke_path) %>
47
- # <% end %>
48
- # <% fb_request_form("Poke","invite_message",create_poke_path) do %>
49
- # Send a poke to: <%= fb_friend_selector %> <br />
50
- # <%= fb_request_form_submit %>
51
- # <% end %>
52
- def fb_request_form(type,message_param,url,options={},&block)
53
- content = capture(&block)
54
- message = @template.instance_variable_get("@content_for_#{message_param}")
55
- concat(content_tag("fb:request-form", content + token_tag,
56
- {:action=>url,:method=>"post",:invite=>true,:type=>type,:content=>message}.merge(options)),
57
- block.binding)
58
- end
59
-
60
- # Create a submit button for an <fb:request-form>
61
- # If the request is for an individual user you can optionally
62
- # Provide the user and a label for the request button.
63
- # For example
64
- # <% content_for("invite_user") do %>
65
- # This gets sent in the invite. <%= fb_req_choice("Come join us!",new_invite_path) %>
66
- # <% end %>
67
- # <% fb_request_form("Invite","invite_user",create_invite_path) do %>
68
- # Invite <%= fb_name(@facebook_user.friends.first.id)%> to the party <br />
69
- # <%= fb_request_form_submit(@facebook_user.friends.first.id,"Invite %n") %>
70
- # <% end %>
71
- # <em>See:</em> http://wiki.developers.facebook.com/index.php/Fb:request-form-submit for options
72
- def fb_request_form_submit(options={})
73
- tag("fb:request-form-submit",stringify_vals(options))
74
- end
75
-
76
-
77
- # Create an fb:request-form with an fb_multi_friend_selector inside
78
- #
79
- # The content of the block are used as the message on the form,
80
- #
81
- # For example:
82
- # <% fb_multi_friend_request("Poke","Choose some friends to Poke",create_poke_path) do %>
83
- # If you select some friends, they will see this message.
84
- # <%= fb_req_choice("They will get this button, too",new_poke_path) %>
85
- # <% end %>
86
- def fb_multi_friend_request(type,friend_selector_message,url,&block)
87
- content = capture(&block)
88
- concat(content_tag("fb:request-form",
89
- fb_multi_friend_selector(friend_selector_message) + token_tag,
90
- {:action=>url,:method=>"post",:invite=>true,:type=>type,:content=>content}
91
- ),
92
- block.binding)
93
- end
94
-
95
- # Render an <fb:friend-selector> element
96
- # <em>See:</em> http://wiki.developers.facebook.com/index.php/Fb:friend-selector for options
97
- #
98
- def fb_friend_selector(options={})
99
- tag("fb:friend-selector",stringify_vals(options))
100
- end
101
-
102
- # Render an <fb:multi-friend-input> element
103
- # <em> See: </em> http://wiki.developers.facebook.com/index.php/Fb:multi-friend-input for options
104
- def fb_multi_friend_input(options={})
105
- tag "fb:multi-friend-input",stringify_vals(options)
106
- end
107
-
108
- # Render an <fb:multi-friend-selector> with the passed in welcome message
109
- # Full version shows all profile pics for friends.
110
- # <em> See: </em> http://wiki.developers.facebook.com/index.php/Fb:multi-friend-selector for options
111
- # <em> Note: </em> I don't think the block is used here.
112
- def fb_multi_friend_selector(message,options={},&block)
113
- options = options.dup
114
- tag("fb:multi-friend-selector",stringify_vals(options.merge(:showborder=>false,:actiontext=>message,:max=>20)))
115
- end
116
-
117
- # Render a condensed <fb:multi-friend-selector> with the passed in welcome message
118
- # Condensed version show checkboxes for each friend.
119
- # <em> See: </em> http://wiki.developers.facebook.com/index.php/Fb:multi-friend-selector_%28condensed%29 for options
120
- # <em> Note: </em> I don't think the block is used here.
121
- def fb_multi_friend_selector_condensed(options={},&block)
122
- options = options.dup
123
- tag("fb:multi-friend-selector",stringify_vals(options.merge(:condensed=>true)))
124
- end
125
-
126
- # Render a button in a request using the <fb:req-choice> tag
127
- # url must be an absolute url
128
- # This should be used inside the block of an fb_multi_friend_request
129
- def fb_req_choice(label,url)
130
- tag "fb:req-choice",:label=>label,:url=>url
131
- end
132
-
133
- # Create a facebook form using <fb:editor>
134
- #
135
- # It yields a form builder that will convert the standard rails form helpers
136
- # into the facebook specific version.
137
- #
138
- # Example:
139
- # <% facebook_form_for(:poke,@poke,:url => create_poke_path) do |f| %>
140
- # <%= f.text_field :message, :label=>"message" %>
141
- # <%= f.buttons "Save Poke" %>
142
- # <% end %>
143
- #
144
- # will generate
145
- #
146
- # <fb:editor action="/pokes/create">
147
- # <fb:editor-text name="poke[message]" id="poke_message" value="" label="message" />
148
- # <fb:editor-buttonset>
149
- # <fb:editor-button label="Save Poke"
150
- # </fb:editor-buttonset>
151
- # </fb:editor>
152
- def facebook_form_for( record_or_name_or_array,*args, &proc)
153
-
154
- raise ArgumentError, "Missing block" unless block_given?
155
- options = args.last.is_a?(Hash) ? args.pop : {}
156
-
157
- case record_or_name_or_array
158
- when String, Symbol
159
- object_name = record_or_name_or_array
160
- when Array
161
- object = record_or_name_or_array.last
162
- object_name = ActionController::RecordIdentifier.singular_class_name(object)
163
- apply_form_for_options!(record_or_name_or_array, options)
164
- args.unshift object
165
- else
166
- object = record_or_name_or_array
167
- object_name = ActionController::RecordIdentifier.singular_class_name(object)
168
- apply_form_for_options!([object], options)
169
- args.unshift object
170
- end
171
- method = (options[:html]||{})[:method]
172
- options[:builder] ||= Facebooker::Rails::FacebookFormBuilder
173
- editor_options={}
174
-
175
- action=options.delete(:url)
176
- editor_options[:action]= action unless action.blank?
177
- width=options.delete(:width)
178
- editor_options[:width]=width unless width.blank?
179
- width=options.delete(:labelwidth)
180
- editor_options[:labelwidth]=width unless width.blank?
181
-
182
- concat(tag("fb:editor",editor_options,true) , proc.binding)
183
- concat(tag(:input,{:type=>"hidden",:name=>:_method, :value=>method},false), proc.binding) unless method.blank?
184
- concat(token_tag, proc.binding)
185
- fields_for( object_name,*(args << options), &proc)
186
- concat("</fb:editor>",proc.binding)
187
- end
188
-
189
- # Render an fb:name tag for the given user
190
- # This renders the name of the user specified. You can use this tag as both subject and object of
191
- # a sentence. <em> See </em> http://wiki.developers.facebook.com/index.php/Fb:name for full description.
192
- # Use this tag on FBML pages instead of retrieving the user's info and rendering the name explicitly.
193
- #
194
- def fb_name(user, options={})
195
- options = options.dup
196
- options.transform_keys!(FB_NAME_OPTION_KEYS_TO_TRANSFORM)
197
- options.assert_valid_keys(FB_NAME_VALID_OPTION_KEYS)
198
- options.merge!(:uid => cast_to_facebook_id(user))
199
- tag("fb:name", stringify_vals(options))
200
- end
201
-
202
- FB_NAME_OPTION_KEYS_TO_TRANSFORM = {:first_name_only => :firstnameonly,
203
- :last_name_only => :lastnameonly,
204
- :show_network => :shownetwork,
205
- :use_you => :useyou,
206
- :if_cant_see => :ifcantsee,
207
- :subject_id => :subjectid}
208
- FB_NAME_VALID_OPTION_KEYS = [:firstnameonly, :linked, :lastnameonly, :possessive, :reflexive,
209
- :shownetwork, :useyou, :ifcantsee, :capitalize, :subjectid]
210
-
211
- # Render an <fb:pronoun> tag for the specified user
212
- # Options give flexibility for placing in any part of a sentence.
213
- # <em> See </em> http://wiki.developers.facebook.com/index.php/Fb:pronoun for complete list of options.
214
- #
215
- def fb_pronoun(user, options={})
216
- options = options.dup
217
- options.transform_keys!(FB_PRONOUN_OPTION_KEYS_TO_TRANSFORM)
218
- options.assert_valid_keys(FB_PRONOUN_VALID_OPTION_KEYS)
219
- options.merge!(:uid => cast_to_facebook_id(user))
220
- tag("fb:pronoun", stringify_vals(options))
221
- end
222
-
223
- FB_PRONOUN_OPTION_KEYS_TO_TRANSFORM = {:use_you => :useyou, :use_they => :usethey}
224
- FB_PRONOUN_VALID_OPTION_KEYS = [:useyou, :possessive, :reflexive, :objective,
225
- :usethey, :capitalize]
226
-
227
- # Render an fb:ref tag.
228
- # Options must contain either url or handle.
229
- # * <em> url </em> The URL from which to fetch the FBML. You may need to call fbml.refreshRefUrl to refresh cache
230
- # * <em> handle </em> The string previously set by fbml.setRefHandle that identifies the FBML
231
- # <em> See </em> http://wiki.developers.facebook.com/index.php/Fb:ref for complete description
232
- def fb_ref(options)
233
- options.assert_valid_keys(FB_REF_VALID_OPTION_KEYS)
234
- validate_fb_ref_has_either_url_or_handle(options)
235
- validate_fb_ref_does_not_have_both_url_and_handle(options)
236
- tag("fb:ref", stringify_vals(options))
237
- end
238
-
239
- def validate_fb_ref_has_either_url_or_handle(options)
240
- unless options.has_key?(:url) || options.has_key?(:handle)
241
- raise ArgumentError, "fb_ref requires :url or :handle"
242
- end
243
- end
244
-
245
- def validate_fb_ref_does_not_have_both_url_and_handle(options)
246
- if options.has_key?(:url) && options.has_key?(:handle)
247
- raise ArgumentError, "fb_ref may not have both :url and :handle"
248
- end
249
- end
250
-
251
- FB_REF_VALID_OPTION_KEYS = [:url, :handle]
252
-
253
- # Render an <fb:profile-pic> for the specified user.
254
- #
255
- # You can optionally specify the size using the :size=> option.
256
- #
257
- # Valid sizes are :thumb, :small, :normal and :square
258
- def fb_profile_pic(user, options={})
259
- options = options.dup
260
- validate_fb_profile_pic_size(options)
261
- options.merge!(:uid => cast_to_facebook_id(user))
262
- tag("fb:profile-pic", stringify_vals(options))
263
- end
264
-
265
- # Render an fb:photo tag.
266
- # photo is either a Facebooker::Photo or an id of a Facebook photo or an object that responds to photo_id.
267
- # <em> See: </em> http://wiki.developers.facebook.com/index.php/Fb:photo for complete list of options.
268
- def fb_photo(photo, options={})
269
- options = options.dup
270
- options.assert_valid_keys(FB_PHOTO_VALID_OPTION_KEYS)
271
- options.merge!(:pid => cast_to_photo_id(photo))
272
- validate_fb_photo_size(options)
273
- validate_fb_photo_align_value(options)
274
- tag("fb:photo", stringify_vals(options))
275
- end
276
-
277
- FB_PHOTO_VALID_OPTION_KEYS = [:uid, :size, :align]
278
-
279
- def cast_to_photo_id(object)
280
- object.respond_to?(:photo_id) ? object.photo_id : object
281
- end
282
-
283
- VALID_FB_SHARED_PHOTO_SIZES = [:thumb, :small, :normal, :square]
284
- VALID_FB_PHOTO_SIZES = VALID_FB_SHARED_PHOTO_SIZES
285
- VALID_FB_PROFILE_PIC_SIZES = VALID_FB_SHARED_PHOTO_SIZES
286
- VALID_PERMISSIONS=[:email, :offline_access, :status_update, :photo_upload, :create_listing]
287
-
288
- # Render an fb:tabs tag containing some number of fb:tab_item tags.
289
- # Example:
290
- # <% fb_tabs do %>
291
- # <%= fb_tab_item("Home", "home") %>
292
- # <%= fb_tab_item("Office", "office") %>
293
- # <% end %>
294
- def fb_tabs(&block)
295
- content = capture(&block)
296
- concat(content_tag("fb:tabs", content), block.binding)
297
- end
298
-
299
- # Render an fb:tab_item tag.
300
- # Use this in conjunction with fb_tabs
301
- # Options can contains :selected => true to indicate that a tab is the current tab.
302
- # <em> See: </em> http://wiki.developers.facebook.com/index.php/Fb:tab-item for complete list of options
303
- def fb_tab_item(title, url, options={})
304
- options= options.dup
305
- options.assert_valid_keys(FB_TAB_ITEM_VALID_OPTION_KEYS)
306
- options.merge!(:title => title, :href => url)
307
- validate_fb_tab_item_align_value(options)
308
- tag("fb:tab-item", stringify_vals(options))
309
- end
310
-
311
- FB_TAB_ITEM_VALID_OPTION_KEYS = [:align, :selected]
312
-
313
- def validate_fb_tab_item_align_value(options)
314
- if options.has_key?(:align) && !VALID_FB_TAB_ITEM_ALIGN_VALUES.include?(options[:align].to_sym)
315
- raise(ArgumentError, "Unkown value for align: #{options[:align]}")
316
- end
317
- end
318
-
319
- def validate_fb_photo_align_value(options)
320
- if options.has_key?(:align) && !VALID_FB_PHOTO_ALIGN_VALUES.include?(options[:align].to_sym)
321
- raise(ArgumentError, "Unkown value for align: #{options[:align]}")
322
- end
323
- end
324
-
325
- VALID_FB_SHARED_ALIGN_VALUES = [:left, :right]
326
- VALID_FB_PHOTO_ALIGN_VALUES = VALID_FB_SHARED_ALIGN_VALUES
327
- VALID_FB_TAB_ITEM_ALIGN_VALUES = VALID_FB_SHARED_ALIGN_VALUES
328
-
329
-
330
- # Create a Facebook wall. It can contain fb_wall_posts
331
- #
332
- # For Example:
333
- # <% fb_wall do %>
334
- # <%= fb_wall_post(@user,"This is my message") %>
335
- # <%= fb_wall_post(@otheruser,"This is another message") %>
336
- # <% end %>
337
- def fb_wall(&proc)
338
- content = capture(&proc)
339
- concat(content_tag("fb:wall",content,{}),proc.binding)
340
- end
341
-
342
- # Render an <fb:wallpost> tag
343
- # TODO: Optionally takes a time parameter t = int The current time, which is displayed in epoch seconds.
344
- def fb_wallpost(user,message)
345
- content_tag("fb:wallpost",message,:uid=>cast_to_facebook_id(user))
346
- end
347
- alias_method :fb_wall_post, :fb_wallpost
348
-
349
- # Render an <fb:error> tag
350
- # If message and text are present then this will render fb:error and fb:message tag
351
- # TODO: Optionally takes a decoration tag with value of 'no_padding' or 'shorten'
352
- def fb_error(message, text=nil)
353
- fb_status_msg("error", message, text)
354
- end
355
-
356
- # Render an <fb:explanation> tag
357
- # If message and text are present then this will render fb:error and fb:message tag
358
- # TODO: Optionally takes a decoration tag with value of 'no_padding' or 'shorten'
359
- def fb_explanation(message, text=nil)
360
- fb_status_msg("explanation", message, text)
361
- end
362
-
363
- # Render an <fb:success> tag
364
- # If message and text are present then this will render fb:error and fb:message tag
365
- # TODO: Optionally takes a decoration tag with value of 'no_padding' or 'shorten'
366
- def fb_success(message, text=nil)
367
- fb_status_msg("success", message, text)
368
- end
369
-
370
- # Render flash values as <fb:message> and <fb:error> tags
371
- #
372
- # values in flash[:notice] will be rendered as an <fb:message>
373
- #
374
- # values in flash[:error] will be rendered as an <fb:error>
375
- # TODO: Allow flash[:info] to render fb_explanation
376
- def facebook_messages
377
- message=""
378
- unless flash[:notice].blank?
379
- message += fb_success(flash[:notice])
380
- end
381
- unless flash[:error].blank?
382
- message += fb_error(flash[:error])
383
- end
384
- message
385
- end
386
-
387
- # Create a dashboard. It can contain fb_action, fb_help, and fb_create_button
388
- #
389
- # For Example:
390
- # <% fb_dashboard do %>
391
- # <%= APP_NAME %>
392
- # <%= fb_action 'My Matches', search_path %>
393
- # <%= fb_help 'Feedback', "http://www.facebook.com/apps/application.php?id=6236036681" %>
394
- # <%= fb_create_button 'Invite Friends', main_path %>
395
- # <% end %>
396
- def fb_dashboard(&proc)
397
- if block_given?
398
- content = capture(&proc)
399
- concat(content_tag("fb:dashboard",content,{}),proc.binding)
400
- else
401
- content_tag("fb:dashboard",content,{})
402
- end
403
- end
404
-
405
- # Content for the wide profile box goes in this tag
406
- def fb_wide(&proc)
407
- content = capture(&proc)
408
- concat(content_tag("fb:wide", content, {}), proc.binding)
409
- end
410
-
411
- # Content for the narrow profile box goes in this tag
412
- def fb_narrow(&proc)
413
- content = capture(&proc)
414
- concat(content_tag("fb:narrow", content, {}), proc.binding)
415
- end
416
-
417
- # Renders an action using the <fb:action> tag
418
- def fb_action(name, url)
419
- "<fb:action href=\"#{url_for(url)}\">#{name}</fb:action>"
420
- end
421
-
422
- # Render a <fb:help> tag
423
- # For use inside <fb:dashboard>
424
- def fb_help(name, url)
425
- "<fb:help href=\"#{url_for(url)}\">#{name}</fb:help>"
426
- end
427
-
428
- # Render a <fb:create-button> tag
429
- # For use inside <fb:dashboard>
430
- def fb_create_button(name, url)
431
- "<fb:create-button href=\"#{url_for(url)}\">#{name}</fb:create-button>"
432
- end
433
-
434
- # Create a comment area
435
- # All the data for this content area is stored on the facebook servers.
436
- # <em>See:</em> http://wiki.developers.facebook.com/index.php/Fb:comments for full details
437
- def fb_comments(xid,canpost=true,candelete=false,numposts=5,options={})
438
- options = options.dup
439
- title = (title = options.delete(:title)) ? fb_title(title) : nil
440
- content_tag "fb:comments",title,stringify_vals(options.merge(:xid=>xid,:canpost=>canpost.to_s,:candelete=>candelete.to_s,:numposts=>numposts))
441
- end
442
-
443
- # Adds a title to the title bar
444
- #
445
- # Facebook | App Name | This is the canvas page window title
446
- #
447
- # +title+: This is the canvas page window
448
- def fb_title(title)
449
- "<fb:title>#{title}</fb:title>"
450
- end
451
-
452
- # Create a Google Analytics tag
453
- #
454
- # +uacct+: Your Urchin/Google Analytics account ID.
455
- def fb_google_analytics(uacct, options={})
456
- options = options.dup
457
- tag "fb:google-analytics", stringify_vals(options.merge(:uacct => uacct))
458
- end
459
-
460
- # Render if-is-app-user tag
461
- # This tag renders the enclosing content only if the user specified has accepted the terms of service for the application.
462
- # Use fb_if_user_has_added_app to determine wether the user has added the app.
463
- # Example:
464
- # <% fb_if_is_app_user(@facebook_user) do %>
465
- # Thanks for accepting our terms of service!
466
- # <% fb_else do %>
467
- # Hey you haven't agreed to our terms. <%= link_to("Please accept our terms of service.", :action => "terms_of_service") %>
468
- # <% end %>
469
- #<% end %>
470
- def fb_if_is_app_user(user=nil,options={},&proc)
471
- content = capture(&proc)
472
- options = options.dup
473
- options.merge!(:uid=>cast_to_facebook_id(user)) if user
474
- concat(content_tag("fb:if-is-app-user",content,stringify_vals(options)),proc.binding)
475
- end
476
-
477
- # Render if-user-has-added-app tag
478
- # This tag renders the enclosing content only if the user specified has installed the application
479
- #
480
- # Example:
481
- # <% fb_if_user_has_added_app(@facebook_user) do %>
482
- # Hey you are an app user!
483
- # <% fb_else do %>
484
- # Hey you aren't an app user. <%= link_to("Add App and see the other side.", :action => "added_app") %>
485
- # <% end %>
486
- #<% end %>
487
- def fb_if_user_has_added_app(user,options={},&proc)
488
- content = capture(&proc)
489
- options = options.dup
490
- concat(content_tag("fb:if-user-has-added-app",content,stringify_vals(options.merge(:uid=>cast_to_facebook_id(user)))),proc.binding)
491
- end
492
-
493
- # Render fb:if-is-user tag
494
- # This tag only renders enclosing content if the user is one of those specified
495
- # user can be a single user or an Array of users
496
- # Example:
497
- # <% fb_if_is_user(@check_user) do %>
498
- # <%= fb_name(@facebook_user) %> are one of the users. <%= link_to("Check the other side", :action => "friend") %>
499
- # <% fb_else do %>
500
- # <%= fb_name(@facebook_user) %> are not one of the users <%= fb_name(@check_user) %>
501
- # <%= link_to("Check the other side", :action => "you") %>
502
- # <% end %>
503
- # <% end %>
504
- def fb_if_is_user(user,&proc)
505
- content = capture(&proc)
506
- user = [user] unless user.is_a? Array
507
- user_list=user.map{|u| cast_to_facebook_id(u)}.join(",")
508
- concat(content_tag("fb:if-is-user",content,{:uid=>user_list}),proc.binding)
509
- end
510
-
511
- # Render fb:else tag
512
- # Must be used within if block such as fb_if_is_user or fb_if_is_app_user . See example in fb_if_is_app_user
513
- def fb_else(&proc)
514
- content = capture(&proc)
515
- concat(content_tag("fb:else",content),proc.binding)
516
- end
517
-
518
- #
519
- # Return the URL for the about page of the application
520
- def fb_about_url
521
- "http://#{Facebooker.www_server_base_url}/apps/application.php?api_key=#{Facebooker.api_key}"
522
- end
523
-
524
- #
525
- # Embed a discussion board named xid on the current page
526
- #
527
- def fb_board(xid,options={})
528
- options = options.dup
529
- tag("fb:board",stringify_vals(options.merge(:xid=>xid)))
530
- end
531
-
532
- def fb_add_profile_section
533
- tag "fb:add-section-button",:section=>"profile"
534
- end
535
-
536
- def fb_add_info_section
537
- tag "fb:add-section-button",:section=>"info"
538
- end
539
-
540
- def fb_prompt_permission(permission,message,callback=nil)
541
- raise(ArgumentError, "Unknown value for permission: #{permission}") unless VALID_PERMISSIONS.include?(permission.to_sym)
542
- args={:perms=>permission}
543
- args[:next_fbjs]=callback unless callback.nil?
544
- content_tag("fb:prompt-permission",message,args)
545
- end
546
-
547
- protected
548
-
549
- def cast_to_facebook_id(object)
550
- Facebooker::User.cast_to_facebook_id(object)
551
- end
552
-
553
- def validate_fb_profile_pic_size(options)
554
- if options.has_key?(:size) && !VALID_FB_PROFILE_PIC_SIZES.include?(options[:size].to_sym)
555
- raise(ArgumentError, "Unkown value for size: #{options[:size]}")
556
- end
557
- end
558
-
559
- def validate_fb_photo_size(options)
560
- if options.has_key?(:size) && !VALID_FB_PHOTO_SIZES.include?(options[:size].to_sym)
561
- raise(ArgumentError, "Unkown value for size: #{options[:size]}")
562
- end
563
- end
564
-
565
- private
566
- def stringify_vals(hash)
567
- result={}
568
- hash.each do |key,value|
569
- result[key]=value.to_s
570
- end
571
- result
572
- end
573
-
574
- def fb_status_msg(type, message, text)
575
- if text.blank?
576
- tag("fb:#{type}", :message => message)
577
- else
578
- content_tag("fb:#{type}", content_tag("fb:message", message) + text)
579
- end
580
- end
581
-
582
- def token_tag
583
- unless protect_against_forgery?
584
- ''
585
- else
586
- tag(:input, :type => "hidden", :name => request_forgery_protection_token.to_s, :value => form_authenticity_token)
587
- end
588
- end
589
- end
590
- end
591
- end
592
-
593
- class Hash
594
- def transform_keys!(transformation_hash)
595
- transformation_hash.each_pair{|key, value| transform_key!(key, value)}
596
- end
597
-
598
-
599
- def transform_key!(old_key, new_key)
600
- swapkey!(new_key, old_key)
601
- end
602
-
603
- ### This method is lifted from Ruby Facets core
604
- def swapkey!( newkey, oldkey )
605
- self[newkey] = self.delete(oldkey) if self.has_key?(oldkey)
606
- self
607
- end
608
-
609
- # We can allow css attributes.
610
- FB_ALWAYS_VALID_OPTION_KEYS = [:class, :style]
611
- def assert_valid_keys(*valid_keys)
612
- unknown_keys = keys - [valid_keys + FB_ALWAYS_VALID_OPTION_KEYS].flatten
613
- raise(ArgumentError, "Unknown key(s): #{unknown_keys.join(", ")}") unless unknown_keys.empty?
614
- end
615
- end