gs_graph 2.6.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (348) hide show
  1. data/.document +5 -0
  2. data/.gitattributes +22 -0
  3. data/.gitignore +26 -0
  4. data/.rspec +2 -0
  5. data/.travis.yml +3 -0
  6. data/Gemfile +11 -0
  7. data/Gemfile.lock +95 -0
  8. data/LICENSE +20 -0
  9. data/README.rdoc +314 -0
  10. data/Rakefile +25 -0
  11. data/VERSION +1 -0
  12. data/assets/fb_graph.ai +1726 -6
  13. data/assets/fb_graph.png +0 -0
  14. data/gs_graph.gemspec +28 -0
  15. data/lib/gs_graph.rb +174 -0
  16. data/lib/gs_graph/achievement.rb +44 -0
  17. data/lib/gs_graph/action.rb +12 -0
  18. data/lib/gs_graph/ad_account.rb +51 -0
  19. data/lib/gs_graph/ad_campaign.rb +39 -0
  20. data/lib/gs_graph/ad_campaign_stat.rb +22 -0
  21. data/lib/gs_graph/ad_connection_object.rb +53 -0
  22. data/lib/gs_graph/ad_creative.rb +44 -0
  23. data/lib/gs_graph/ad_group.rb +51 -0
  24. data/lib/gs_graph/ad_group_stat.rb +22 -0
  25. data/lib/gs_graph/ad_keyword.rb +20 -0
  26. data/lib/gs_graph/ad_keyword_suggestion.rb +8 -0
  27. data/lib/gs_graph/ad_keyword_valid.rb +23 -0
  28. data/lib/gs_graph/ad_preview.rb +10 -0
  29. data/lib/gs_graph/ad_user.rb +58 -0
  30. data/lib/gs_graph/age_range.rb +12 -0
  31. data/lib/gs_graph/album.rb +59 -0
  32. data/lib/gs_graph/app_request.rb +24 -0
  33. data/lib/gs_graph/application.rb +119 -0
  34. data/lib/gs_graph/auth.rb +88 -0
  35. data/lib/gs_graph/auth/cookie.rb +20 -0
  36. data/lib/gs_graph/auth/signed_request.rb +44 -0
  37. data/lib/gs_graph/broad_targeting_category.rb +13 -0
  38. data/lib/gs_graph/checkin.rb +51 -0
  39. data/lib/gs_graph/collection.rb +55 -0
  40. data/lib/gs_graph/comment.rb +24 -0
  41. data/lib/gs_graph/comparison.rb +13 -0
  42. data/lib/gs_graph/connection.rb +37 -0
  43. data/lib/gs_graph/connections.rb +3 -0
  44. data/lib/gs_graph/connections/accounts.rb +23 -0
  45. data/lib/gs_graph/connections/achievements.rb +21 -0
  46. data/lib/gs_graph/connections/activities.rb +14 -0
  47. data/lib/gs_graph/connections/ad_accounts.rb +15 -0
  48. data/lib/gs_graph/connections/ad_campaign_stats.rb +22 -0
  49. data/lib/gs_graph/connections/ad_campaigns.rb +30 -0
  50. data/lib/gs_graph/connections/ad_connection_objects.rb +14 -0
  51. data/lib/gs_graph/connections/ad_creatives.rb +14 -0
  52. data/lib/gs_graph/connections/ad_group_stats.rb +22 -0
  53. data/lib/gs_graph/connections/ad_groups.rb +35 -0
  54. data/lib/gs_graph/connections/ad_previews.rb +10 -0
  55. data/lib/gs_graph/connections/admins.rb +10 -0
  56. data/lib/gs_graph/connections/albums.rb +21 -0
  57. data/lib/gs_graph/connections/app_notifications.rb +10 -0
  58. data/lib/gs_graph/connections/app_requests.rb +21 -0
  59. data/lib/gs_graph/connections/attending.rb +26 -0
  60. data/lib/gs_graph/connections/banned.rb +31 -0
  61. data/lib/gs_graph/connections/blocked.rb +36 -0
  62. data/lib/gs_graph/connections/books.rb +14 -0
  63. data/lib/gs_graph/connections/broad_targeting_categories.rb +14 -0
  64. data/lib/gs_graph/connections/checkins.rb +21 -0
  65. data/lib/gs_graph/connections/comments.rb +21 -0
  66. data/lib/gs_graph/connections/conversations.rb +14 -0
  67. data/lib/gs_graph/connections/declined.rb +25 -0
  68. data/lib/gs_graph/connections/docs.rb +14 -0
  69. data/lib/gs_graph/connections/events.rb +21 -0
  70. data/lib/gs_graph/connections/family.rb +14 -0
  71. data/lib/gs_graph/connections/feed.rb +21 -0
  72. data/lib/gs_graph/connections/former_participants.rb +14 -0
  73. data/lib/gs_graph/connections/friend_lists.rb +21 -0
  74. data/lib/gs_graph/connections/friend_requests.rb +12 -0
  75. data/lib/gs_graph/connections/friends.rb +14 -0
  76. data/lib/gs_graph/connections/games.rb +14 -0
  77. data/lib/gs_graph/connections/groups.rb +14 -0
  78. data/lib/gs_graph/connections/home.rb +14 -0
  79. data/lib/gs_graph/connections/inbox.rb +20 -0
  80. data/lib/gs_graph/connections/insights.rb +27 -0
  81. data/lib/gs_graph/connections/interests.rb +14 -0
  82. data/lib/gs_graph/connections/invited.rb +36 -0
  83. data/lib/gs_graph/connections/likes.rb +29 -0
  84. data/lib/gs_graph/connections/links.rb +21 -0
  85. data/lib/gs_graph/connections/maybe.rb +25 -0
  86. data/lib/gs_graph/connections/members.rb +22 -0
  87. data/lib/gs_graph/connections/messages.rb +22 -0
  88. data/lib/gs_graph/connections/milestones.rb +21 -0
  89. data/lib/gs_graph/connections/movies.rb +14 -0
  90. data/lib/gs_graph/connections/music.rb +14 -0
  91. data/lib/gs_graph/connections/mutual_friends.rb +26 -0
  92. data/lib/gs_graph/connections/noreply.rb +23 -0
  93. data/lib/gs_graph/connections/notes.rb +21 -0
  94. data/lib/gs_graph/connections/notifications.rb +18 -0
  95. data/lib/gs_graph/connections/offers.rb +22 -0
  96. data/lib/gs_graph/connections/outbox.rb +20 -0
  97. data/lib/gs_graph/connections/participants.rb +14 -0
  98. data/lib/gs_graph/connections/payments.rb +14 -0
  99. data/lib/gs_graph/connections/permissions.rb +16 -0
  100. data/lib/gs_graph/connections/photos.rb +21 -0
  101. data/lib/gs_graph/connections/picture.rb +39 -0
  102. data/lib/gs_graph/connections/pokes.rb +12 -0
  103. data/lib/gs_graph/connections/posts.rb +14 -0
  104. data/lib/gs_graph/connections/promotable_posts.rb +14 -0
  105. data/lib/gs_graph/connections/question_options.rb +14 -0
  106. data/lib/gs_graph/connections/questions.rb +22 -0
  107. data/lib/gs_graph/connections/reach_estimates.rb +12 -0
  108. data/lib/gs_graph/connections/roles.rb +36 -0
  109. data/lib/gs_graph/connections/scores.rb +22 -0
  110. data/lib/gs_graph/connections/senders.rb +14 -0
  111. data/lib/gs_graph/connections/settings.rb +65 -0
  112. data/lib/gs_graph/connections/statuses.rb +14 -0
  113. data/lib/gs_graph/connections/subscribed_to.rb +14 -0
  114. data/lib/gs_graph/connections/subscribers.rb +14 -0
  115. data/lib/gs_graph/connections/subscriptions.rb +53 -0
  116. data/lib/gs_graph/connections/tabs.rb +23 -0
  117. data/lib/gs_graph/connections/tagged.rb +14 -0
  118. data/lib/gs_graph/connections/tags.rb +23 -0
  119. data/lib/gs_graph/connections/television.rb +14 -0
  120. data/lib/gs_graph/connections/test_users.rb +19 -0
  121. data/lib/gs_graph/connections/threads.rb +14 -0
  122. data/lib/gs_graph/connections/user_achievements.rb +22 -0
  123. data/lib/gs_graph/connections/user_likes.rb +19 -0
  124. data/lib/gs_graph/connections/videos.rb +21 -0
  125. data/lib/gs_graph/connections/votes.rb +9 -0
  126. data/lib/gs_graph/cover.rb +10 -0
  127. data/lib/gs_graph/debugger.rb +28 -0
  128. data/lib/gs_graph/device.rb +11 -0
  129. data/lib/gs_graph/doc.rb +18 -0
  130. data/lib/gs_graph/domain.rb +32 -0
  131. data/lib/gs_graph/education.rb +32 -0
  132. data/lib/gs_graph/event.rb +52 -0
  133. data/lib/gs_graph/exception.rb +139 -0
  134. data/lib/gs_graph/friend_list.rb +13 -0
  135. data/lib/gs_graph/friend_request.rb +14 -0
  136. data/lib/gs_graph/group.rb +29 -0
  137. data/lib/gs_graph/image.rb +11 -0
  138. data/lib/gs_graph/insight.rb +13 -0
  139. data/lib/gs_graph/klass.rb +31 -0
  140. data/lib/gs_graph/link.rb +32 -0
  141. data/lib/gs_graph/location.rb +20 -0
  142. data/lib/gs_graph/message.rb +30 -0
  143. data/lib/gs_graph/milestone.rb +26 -0
  144. data/lib/gs_graph/node.rb +149 -0
  145. data/lib/gs_graph/note.rb +32 -0
  146. data/lib/gs_graph/notification.rb +32 -0
  147. data/lib/gs_graph/offer.rb +33 -0
  148. data/lib/gs_graph/open_graph.rb +3 -0
  149. data/lib/gs_graph/open_graph/action.rb +42 -0
  150. data/lib/gs_graph/open_graph/application_context.rb +10 -0
  151. data/lib/gs_graph/open_graph/object.rb +29 -0
  152. data/lib/gs_graph/open_graph/user_context.rb +21 -0
  153. data/lib/gs_graph/order.rb +55 -0
  154. data/lib/gs_graph/page.rb +57 -0
  155. data/lib/gs_graph/page/category_attributes.rb +117 -0
  156. data/lib/gs_graph/photo.rb +48 -0
  157. data/lib/gs_graph/picture.rb +14 -0
  158. data/lib/gs_graph/place.rb +7 -0
  159. data/lib/gs_graph/poke.rb +19 -0
  160. data/lib/gs_graph/post.rb +117 -0
  161. data/lib/gs_graph/privacy.rb +27 -0
  162. data/lib/gs_graph/project.rb +4 -0
  163. data/lib/gs_graph/promotable_post.rb +34 -0
  164. data/lib/gs_graph/property.rb +13 -0
  165. data/lib/gs_graph/query.rb +47 -0
  166. data/lib/gs_graph/question.rb +26 -0
  167. data/lib/gs_graph/question_option.rb +22 -0
  168. data/lib/gs_graph/reach_estimate.rb +22 -0
  169. data/lib/gs_graph/role.rb +13 -0
  170. data/lib/gs_graph/score.rb +16 -0
  171. data/lib/gs_graph/searchable.rb +33 -0
  172. data/lib/gs_graph/searchable/result.rb +31 -0
  173. data/lib/gs_graph/serialization.rb +19 -0
  174. data/lib/gs_graph/status.rb +27 -0
  175. data/lib/gs_graph/subscription.rb +14 -0
  176. data/lib/gs_graph/tab.rb +17 -0
  177. data/lib/gs_graph/tag.rb +30 -0
  178. data/lib/gs_graph/tagged_object.rb +23 -0
  179. data/lib/gs_graph/targeting.rb +23 -0
  180. data/lib/gs_graph/test_user.rb +24 -0
  181. data/lib/gs_graph/thread.rb +71 -0
  182. data/lib/gs_graph/user.rb +153 -0
  183. data/lib/gs_graph/user_achievement.rb +35 -0
  184. data/lib/gs_graph/venue.rb +14 -0
  185. data/lib/gs_graph/video.rb +41 -0
  186. data/lib/gs_graph/work.rb +48 -0
  187. data/lib/patch/rack/oauth2/access_token.rb +11 -0
  188. data/lib/patch/rack/oauth2/access_token/introspectable.rb +37 -0
  189. data/lib/patch/rack/oauth2/client.rb +13 -0
  190. data/lib/patch/rack/oauth2/grant/fb_exchange_token.rb +11 -0
  191. data/lib/patch/rack/oauth2/util.rb +14 -0
  192. data/spec/gs_graph/achievement_spec.rb +59 -0
  193. data/spec/gs_graph/ad_account_spec.rb +124 -0
  194. data/spec/gs_graph/ad_campaign_spec.rb +99 -0
  195. data/spec/gs_graph/ad_connection_object_spec.rb +71 -0
  196. data/spec/gs_graph/ad_creative_spec.rb +87 -0
  197. data/spec/gs_graph/ad_group_spec.rb +95 -0
  198. data/spec/gs_graph/ad_keyword_spec.rb +27 -0
  199. data/spec/gs_graph/ad_keyword_suggestion_spec.rb +17 -0
  200. data/spec/gs_graph/ad_keyword_valid_spec.rb +19 -0
  201. data/spec/gs_graph/ad_user_spec.rb +67 -0
  202. data/spec/gs_graph/album_spec.rb +93 -0
  203. data/spec/gs_graph/app_request_spec.rb +40 -0
  204. data/spec/gs_graph/application_spec.rb +251 -0
  205. data/spec/gs_graph/auth/cookie_spec.rb +29 -0
  206. data/spec/gs_graph/auth/signed_request_spec.rb +22 -0
  207. data/spec/gs_graph/auth_spec.rb +223 -0
  208. data/spec/gs_graph/broad_targeting_category_spec.rb +17 -0
  209. data/spec/gs_graph/checkin_spec.rb +42 -0
  210. data/spec/gs_graph/collection_spec.rb +50 -0
  211. data/spec/gs_graph/comment_spec.rb +31 -0
  212. data/spec/gs_graph/connection_spec.rb +42 -0
  213. data/spec/gs_graph/connections/accounts_spec.rb +78 -0
  214. data/spec/gs_graph/connections/achievements_spec.rb +27 -0
  215. data/spec/gs_graph/connections/activities_spec.rb +34 -0
  216. data/spec/gs_graph/connections/ad_accounts_spec.rb +28 -0
  217. data/spec/gs_graph/connections/ad_campaign_stat_spec.rb +35 -0
  218. data/spec/gs_graph/connections/ad_campaigns_spec.rb +36 -0
  219. data/spec/gs_graph/connections/ad_connection_objects_spec.rb +20 -0
  220. data/spec/gs_graph/connections/ad_creatives_spec.rb +29 -0
  221. data/spec/gs_graph/connections/ad_group_stat_spec.rb +54 -0
  222. data/spec/gs_graph/connections/ad_groups_spec.rb +92 -0
  223. data/spec/gs_graph/connections/ad_previews_spec.rb +18 -0
  224. data/spec/gs_graph/connections/admins_spec.rb +20 -0
  225. data/spec/gs_graph/connections/albums_spec.rb +63 -0
  226. data/spec/gs_graph/connections/app_notifications_spec.rb +23 -0
  227. data/spec/gs_graph/connections/app_requests_spec.rb +28 -0
  228. data/spec/gs_graph/connections/attending_spec.rb +47 -0
  229. data/spec/gs_graph/connections/banned_spec.rb +63 -0
  230. data/spec/gs_graph/connections/blocked_spec.rb +56 -0
  231. data/spec/gs_graph/connections/books_spec.rb +32 -0
  232. data/spec/gs_graph/connections/broad_targeting_categories_spec.rb +18 -0
  233. data/spec/gs_graph/connections/checkins_spec.rb +153 -0
  234. data/spec/gs_graph/connections/comments_spec.rb +75 -0
  235. data/spec/gs_graph/connections/conversations_spec.rb +19 -0
  236. data/spec/gs_graph/connections/declined_spec.rb +47 -0
  237. data/spec/gs_graph/connections/docs_spec.rb +14 -0
  238. data/spec/gs_graph/connections/events_spec.rb +52 -0
  239. data/spec/gs_graph/connections/family_spec.rb +32 -0
  240. data/spec/gs_graph/connections/feed_spec.rb +124 -0
  241. data/spec/gs_graph/connections/former_participants_spec.rb +44 -0
  242. data/spec/gs_graph/connections/friend_lists_spec.rb +26 -0
  243. data/spec/gs_graph/connections/friend_requests_spec.rb +16 -0
  244. data/spec/gs_graph/connections/friends_spec.rb +51 -0
  245. data/spec/gs_graph/connections/games_spec.rb +20 -0
  246. data/spec/gs_graph/connections/groups_spec.rb +31 -0
  247. data/spec/gs_graph/connections/home_spec.rb +62 -0
  248. data/spec/gs_graph/connections/inbox_spec.rb +16 -0
  249. data/spec/gs_graph/connections/insights_spec.rb +104 -0
  250. data/spec/gs_graph/connections/interests_spec.rb +12 -0
  251. data/spec/gs_graph/connections/invited_spec.rb +84 -0
  252. data/spec/gs_graph/connections/likes_spec.rb +127 -0
  253. data/spec/gs_graph/connections/links_spec.rb +31 -0
  254. data/spec/gs_graph/connections/maybe_spec.rb +47 -0
  255. data/spec/gs_graph/connections/members_spec.rb +57 -0
  256. data/spec/gs_graph/connections/messages_spec.rb +58 -0
  257. data/spec/gs_graph/connections/milestones_spec.rb +40 -0
  258. data/spec/gs_graph/connections/movies_spec.rb +12 -0
  259. data/spec/gs_graph/connections/music_spec.rb +12 -0
  260. data/spec/gs_graph/connections/mutual_friends_spec.rb +28 -0
  261. data/spec/gs_graph/connections/noreply_spec.rb +39 -0
  262. data/spec/gs_graph/connections/notes_spec.rb +31 -0
  263. data/spec/gs_graph/connections/notifications_spec.rb +30 -0
  264. data/spec/gs_graph/connections/outbox_spec.rb +16 -0
  265. data/spec/gs_graph/connections/participants_spec.rb +42 -0
  266. data/spec/gs_graph/connections/payments_spec.rb +17 -0
  267. data/spec/gs_graph/connections/permissions_spec.rb +44 -0
  268. data/spec/gs_graph/connections/photos_spec.rb +39 -0
  269. data/spec/gs_graph/connections/picture_spec.rb +92 -0
  270. data/spec/gs_graph/connections/pokes_spec.rb +16 -0
  271. data/spec/gs_graph/connections/posts_spec.rb +34 -0
  272. data/spec/gs_graph/connections/promotable_posts_spec.rb +24 -0
  273. data/spec/gs_graph/connections/question_options_spec.rb +14 -0
  274. data/spec/gs_graph/connections/questions_spec.rb +31 -0
  275. data/spec/gs_graph/connections/reach_estimates_spec.rb +18 -0
  276. data/spec/gs_graph/connections/roles_spec.rb +59 -0
  277. data/spec/gs_graph/connections/scores_spec.rb +40 -0
  278. data/spec/gs_graph/connections/senders_spec.rb +42 -0
  279. data/spec/gs_graph/connections/settings_spec.rb +62 -0
  280. data/spec/gs_graph/connections/statuses_spec.rb +72 -0
  281. data/spec/gs_graph/connections/subscribed_to_spec.rb +12 -0
  282. data/spec/gs_graph/connections/subscribers_spec.rb +12 -0
  283. data/spec/gs_graph/connections/subscriptions_spec.rb +47 -0
  284. data/spec/gs_graph/connections/tabs_spec.rb +47 -0
  285. data/spec/gs_graph/connections/tagged_spec.rb +42 -0
  286. data/spec/gs_graph/connections/tags_spec.rb +30 -0
  287. data/spec/gs_graph/connections/television_spec.rb +12 -0
  288. data/spec/gs_graph/connections/test_users_spec.rb +65 -0
  289. data/spec/gs_graph/connections/threads_spec.rb +12 -0
  290. data/spec/gs_graph/connections/user_achievements_spec.rb +37 -0
  291. data/spec/gs_graph/connections/user_likes_spec.rb +55 -0
  292. data/spec/gs_graph/connections/videos_spec.rb +27 -0
  293. data/spec/gs_graph/connections/votes_spec.rb +15 -0
  294. data/spec/gs_graph/debugger_spec.rb +33 -0
  295. data/spec/gs_graph/doc_spec.rb +27 -0
  296. data/spec/gs_graph/domain_spec.rb +23 -0
  297. data/spec/gs_graph/education_spec.rb +61 -0
  298. data/spec/gs_graph/event_spec.rb +70 -0
  299. data/spec/gs_graph/exception_spec.rb +310 -0
  300. data/spec/gs_graph/friend_list_spec.rb +22 -0
  301. data/spec/gs_graph/group_spec.rb +28 -0
  302. data/spec/gs_graph/image_spec.rb +16 -0
  303. data/spec/gs_graph/insight_spec.rb +18 -0
  304. data/spec/gs_graph/link_spec.rb +41 -0
  305. data/spec/gs_graph/location_spec.rb +28 -0
  306. data/spec/gs_graph/message_spec.rb +47 -0
  307. data/spec/gs_graph/node_spec.rb +91 -0
  308. data/spec/gs_graph/note_spec.rb +37 -0
  309. data/spec/gs_graph/notification_spec.rb +59 -0
  310. data/spec/gs_graph/offer_spec.rb +30 -0
  311. data/spec/gs_graph/open_graph/action_spec.rb +112 -0
  312. data/spec/gs_graph/open_graph/application_context_spec.rb +28 -0
  313. data/spec/gs_graph/open_graph/object_spec.rb +76 -0
  314. data/spec/gs_graph/open_graph/user_context_spec.rb +33 -0
  315. data/spec/gs_graph/order_spec.rb +66 -0
  316. data/spec/gs_graph/page/local_business_spec.rb +88 -0
  317. data/spec/gs_graph/page/movie_spec.rb +25 -0
  318. data/spec/gs_graph/page/music_spec.rb +25 -0
  319. data/spec/gs_graph/page/person_spec.rb +23 -0
  320. data/spec/gs_graph/page/product_spec.rb +36 -0
  321. data/spec/gs_graph/page_spec.rb +81 -0
  322. data/spec/gs_graph/photo_spec.rb +85 -0
  323. data/spec/gs_graph/place_spec.rb +8 -0
  324. data/spec/gs_graph/post_spec.rb +238 -0
  325. data/spec/gs_graph/privacy_spec.rb +33 -0
  326. data/spec/gs_graph/project_spec.rb +46 -0
  327. data/spec/gs_graph/promotable_post_spec.rb +57 -0
  328. data/spec/gs_graph/qeustion_option_spec.rb +35 -0
  329. data/spec/gs_graph/query_spec.rb +73 -0
  330. data/spec/gs_graph/question_spec.rb +73 -0
  331. data/spec/gs_graph/reach_estimate_spec.rb +48 -0
  332. data/spec/gs_graph/searchable_spec.rb +47 -0
  333. data/spec/gs_graph/seriarization_spec.rb +29 -0
  334. data/spec/gs_graph/status_spec.rb +31 -0
  335. data/spec/gs_graph/subscription_spec.rb +5 -0
  336. data/spec/gs_graph/tag_spec.rb +34 -0
  337. data/spec/gs_graph/tagged_object_spec.rb +45 -0
  338. data/spec/gs_graph/targeting_spec.rb +34 -0
  339. data/spec/gs_graph/test_user_spec.rb +50 -0
  340. data/spec/gs_graph/thread_spec.rb +86 -0
  341. data/spec/gs_graph/user_achievement_spec.rb +53 -0
  342. data/spec/gs_graph/user_spec.rb +185 -0
  343. data/spec/gs_graph/venue_spec.rb +23 -0
  344. data/spec/gs_graph/video_spec.rb +31 -0
  345. data/spec/gs_graph/work_spec.rb +101 -0
  346. data/spec/gs_graph_spec.rb +57 -0
  347. data/spec/spec_helper.rb +9 -0
  348. metadata +538 -0
data/.document ADDED
@@ -0,0 +1,5 @@
1
+ README.rdoc
2
+ lib/**/*.rb
3
+ bin/*
4
+ features/**/*.feature
5
+ LICENSE
data/.gitattributes ADDED
@@ -0,0 +1,22 @@
1
+ # Auto detect text files and perform LF normalization
2
+ * text=auto
3
+
4
+ # Custom for Visual Studio
5
+ *.cs diff=csharp
6
+ *.sln merge=union
7
+ *.csproj merge=union
8
+ *.vbproj merge=union
9
+ *.fsproj merge=union
10
+ *.dbproj merge=union
11
+
12
+ # Standard to msysgit
13
+ *.doc diff=astextplain
14
+ *.DOC diff=astextplain
15
+ *.docx diff=astextplain
16
+ *.DOCX diff=astextplain
17
+ *.dot diff=astextplain
18
+ *.DOT diff=astextplain
19
+ *.pdf diff=astextplain
20
+ *.PDF diff=astextplain
21
+ *.rtf diff=astextplain
22
+ *.RTF diff=astextplain
data/.gitignore ADDED
@@ -0,0 +1,26 @@
1
+ ## MAC OS
2
+ .DS_Store
3
+
4
+ ## TEXTMATE
5
+ *.tmproj
6
+ tmtags
7
+
8
+ ## EMACS
9
+ *~
10
+ \#*
11
+ .\#*
12
+
13
+ ## VIM
14
+ *.swp
15
+
16
+ ## RVM
17
+ .rvmrc
18
+
19
+ ## PROJECT::GENERAL
20
+ coverage*
21
+ rdoc
22
+ pkg
23
+
24
+ ## PROJECT::SPECIFIC
25
+ .rbenv-version
26
+ /nbproject/private/
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format=documentation
data/.travis.yml ADDED
@@ -0,0 +1,3 @@
1
+ rvm:
2
+ - 1.9.2
3
+ - 1.9.3
data/Gemfile ADDED
@@ -0,0 +1,11 @@
1
+ source 'http://rubygems.org'
2
+
3
+ platforms :jruby do
4
+ gem 'jruby-openssl', '>= 0.7'
5
+ end
6
+
7
+ group :test do
8
+ gem 'oj'
9
+ end
10
+
11
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,95 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ gs_graph (2.6.4)
5
+ httpclient (>= 2.2.0.2)
6
+ multi_json (>= 1.3)
7
+ rack-oauth2 (>= 0.14.4)
8
+ tzinfo
9
+
10
+ GEM
11
+ remote: http://rubygems.org/
12
+ specs:
13
+ actionpack (3.2.11)
14
+ activemodel (= 3.2.11)
15
+ activesupport (= 3.2.11)
16
+ builder (~> 3.0.0)
17
+ erubis (~> 2.7.0)
18
+ journey (~> 1.0.4)
19
+ rack (~> 1.4.0)
20
+ rack-cache (~> 1.2)
21
+ rack-test (~> 0.6.1)
22
+ sprockets (~> 2.2.1)
23
+ activemodel (3.2.11)
24
+ activesupport (= 3.2.11)
25
+ builder (~> 3.0.0)
26
+ activesupport (3.2.11)
27
+ i18n (~> 0.6)
28
+ multi_json (~> 1.0)
29
+ addressable (2.3.2)
30
+ attr_required (0.0.5)
31
+ builder (3.0.4)
32
+ configatron (2.9.1)
33
+ yamler (>= 0.1.0)
34
+ cover_me (1.2.0)
35
+ configatron
36
+ hashie
37
+ crack (0.3.2)
38
+ diff-lcs (1.1.3)
39
+ erubis (2.7.0)
40
+ gs_graph-mock (0.1.1)
41
+ gs_graph
42
+ rspec
43
+ webmock
44
+ hashie (1.2.0)
45
+ hike (1.2.1)
46
+ httpclient (2.3.2)
47
+ i18n (0.6.1)
48
+ journey (1.0.4)
49
+ multi_json (1.5.0)
50
+ oj (2.0.2)
51
+ rack (1.4.4)
52
+ rack-cache (1.2)
53
+ rack (>= 0.4)
54
+ rack-oauth2 (1.0.0)
55
+ activesupport (>= 2.3)
56
+ attr_required (>= 0.0.5)
57
+ httpclient (>= 2.2.0.2)
58
+ i18n
59
+ multi_json (>= 1.3.6)
60
+ rack (>= 1.1)
61
+ rack-test (0.6.2)
62
+ rack (>= 1.0)
63
+ rake (10.0.3)
64
+ rspec (2.12.0)
65
+ rspec-core (~> 2.12.0)
66
+ rspec-expectations (~> 2.12.0)
67
+ rspec-mocks (~> 2.12.0)
68
+ rspec-core (2.12.2)
69
+ rspec-expectations (2.12.1)
70
+ diff-lcs (~> 1.1.3)
71
+ rspec-mocks (2.12.2)
72
+ sprockets (2.2.2)
73
+ hike (~> 1.2)
74
+ multi_json (~> 1.0)
75
+ rack (~> 1.0)
76
+ tilt (~> 1.1, != 1.3.0)
77
+ tilt (1.3.3)
78
+ tzinfo (0.3.35)
79
+ webmock (1.9.0)
80
+ addressable (>= 2.2.7)
81
+ crack (>= 0.1.7)
82
+ yamler (0.1.0)
83
+
84
+ PLATFORMS
85
+ ruby
86
+
87
+ DEPENDENCIES
88
+ actionpack (>= 3.0.6)
89
+ cover_me (>= 1.2.0)
90
+ gs_graph!
91
+ gs_graph-mock (>= 0.1.1)
92
+ jruby-openssl (>= 0.7)
93
+ oj
94
+ rake (>= 0.8)
95
+ rspec (>= 2)
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2010 nov matake
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,314 @@
1
+ = GSGraph
2
+
3
+ A full-stack GameStamper/GoPlay Graph API wrapper in Ruby
4
+ for use with Rails. This project (and README) is based off of the original Facebook project fb_graph
5
+ by nov mattake (https://github.com/rockycaamano/fb_graph)
6
+ and is a direct descendent of the contributions of rockycaamano
7
+ (https://github.com/rockycaamano/gs_graph).
8
+
9
+ == Installation
10
+
11
+ We have not yet registered this gem with rubygems.org. Once we do, the install will be simply:
12
+
13
+ gem install gs_graph
14
+
15
+ However, as of now, you will need to do the following:
16
+
17
+ 1. check out the repository
18
+ 2. in the gs_graph directory on your system, run:
19
+
20
+ gem build gs_graph.gemspec
21
+
22
+ 3. from within your project, run:
23
+
24
+ gem install [PATH_TO_GSGRAPH_GEM]/gsgraph-2.6.5.gem
25
+
26
+ == Use
27
+
28
+ Because the GoPlay network has potentially many different APIs for accessing graph data, and because Ruby on Rails locks down
29
+ http entities such as the request and session, there is an extra step required for using this SDK in a Ruby on Rails app.
30
+ In your application controller, simply include the following in order to allow GSGraph to access the correct APIs:
31
+
32
+ class ApplicationController < ActionController::Base
33
+
34
+ before_filter :setup
35
+ protected
36
+ def setup
37
+ GSGraph::setup session, request
38
+ end
39
+
40
+
41
+ == Examples
42
+
43
+ Now GSGraph supports all objects listed here: http://developers.gamestamper.com/docs/reference/api/
44
+ Almost all connections for each object are also supported. ("attachments" and "shares" connections of message object are not supported yet)
45
+
46
+ You can also play with a Rails sample app here. http://fbgraphsample.heroku.com/
47
+
48
+ See GitHub wiki for more examples.
49
+ https://github.com/nov/gs_graph/wiki
50
+
51
+ === GET
52
+
53
+ ==== Basic Objects
54
+
55
+ user = GSGraph::User.me(ACCESS_TOKEN)
56
+
57
+ user = GSGraph::User.fetch('matake')
58
+ user.name # => 'Nov Matake'
59
+ user.picture # => 'https://graph.gamestamper.com/matake/picture'
60
+
61
+ # gs_graph doesn't access to Graph API until you call "fetch"
62
+ user = GSGraph::User.new('matake', :access_token => YOUR_ACCESS_TOKEN)
63
+ user.identifier # => "matake"
64
+ user.name # => nil
65
+ user.link # => nil
66
+ user = user.fetch
67
+ user.name # => "Nov Matake"
68
+ user.description # => "http://www.gamestamper.com/matake"
69
+
70
+ page = GSGraph::Page.fetch('smartfmteam')
71
+ page.name # => 'smart.fm'
72
+ page.picture # => 'https://graph.gamestamper.com/smart.fm/picture'
73
+
74
+ :
75
+
76
+ ==== Connections
77
+
78
+ # Public connections
79
+ user = GSGraph::User.fetch('matake')
80
+ user.feed
81
+ user.posts
82
+ user.friends
83
+ user.tagged
84
+ user.family
85
+ :
86
+
87
+ # Private connections requires "access_token"
88
+ GSGraph::User.new('matake').friends # => raise GSGraph::Unauthorized
89
+ user = GSGraph::User.fetch('matake', :access_token => ACCESS_TOKEN)
90
+ user.albums
91
+ user.events
92
+ user.friends
93
+ user.likes
94
+ :
95
+
96
+ # "home" connection is only available for "me"
97
+ me = User.new('me', :access_token => ACCESS_TOKEN)
98
+ me.home
99
+ :
100
+
101
+ By default, GSGraph will only return the default fields. In order to
102
+ get a non-default field, you have to supply the connect with an options hash
103
+ specifying the field. An example for events:
104
+
105
+ user.events({:fields => "owner,name,description,picture"}) # { and } optional
106
+
107
+ An overview of which fields you can include in the graph API can be found at
108
+ https://developers.gamestamper.com/docs/reference/api/, which has a description
109
+ of the specific objects fields in the sidebar under "Objects".
110
+
111
+ ==== Search
112
+
113
+ # all objects
114
+ GSGraph::Searchable.search("GSGraph") # => Array of Hash
115
+
116
+ # specify type
117
+ GSGraph::Page.search("GSGraph") # => Array of GSGraph::Page
118
+ GSGraph::User.search("matake", :access_token => ACCESS_TOKEN) # => Array of GSGraph::User
119
+
120
+ ==== Pagination
121
+
122
+ # collection
123
+ user = GSGraph::User.new('matake', :access_token => ACCESS_TOKEN)
124
+ likes = user.likes # => Array of GSGraph::Like
125
+ likes.next # => Array of GSGraph::Like (next page)
126
+ likes.previous # => Array of GSGraph::Like (previous page)
127
+ likes.collection.next # => Hash for pagination options (ex. {"limit"=>"25", "until"=>"2010-08-08T03:17:21+0000"})
128
+ likes.collection.previous # => Hash for pagination options (ex. {"limit"=>"25", "since"=>"2010-08-08T06:28:20+0000"})
129
+ user.likes(likes.collection.next) # => same with likes.next
130
+ user.likes(likes.collection.previous) # => same with likes.previous
131
+
132
+ # search results
133
+ results = GSGraph::Page.search("GSGraph") # => Array of GSGraph::Page
134
+ results.next # => Array of GSGraph::Page (next page)
135
+ results.previous # => Array of GSGraph::Page (next page)
136
+ results.klass # => GSGraph::Page
137
+ results.collection.next # => Hash for pagination options (ex. {"limit"=>"25", "until"=>"2010-08-08T03:17:21+0000"})
138
+ results.collection.previous # => Hash for pagination options (ex. {"limit"=>"25", "since"=>"2010-08-08T06:28:20+0000"})
139
+ results.klass.search(results.query, results.collection.next) # => same with results.next
140
+ results.klass.search(results.query, results.collection.previous) # => same with results.previous
141
+
142
+ === POST
143
+
144
+ ==== Update status (wall post)
145
+
146
+ me = GSGraph::User.me(ACCESS_TOKEN)
147
+ me.feed!(
148
+ :message => 'Updating via GSGraph',
149
+ :picture => 'https://graph.gamestamper.com/matake/picture',
150
+ :link => 'https://github.com/nov/gs_graph',
151
+ :name => 'GSGraph',
152
+ :description => 'A Ruby wrapper for Facebook Graph API'
153
+ )
154
+
155
+ ==== Post a like/comment to a post
156
+
157
+ post = GSGraph::Page.new(117513961602338).feed.first
158
+ bool = post.like!(
159
+ :access_token => ACCESS_TOKEN
160
+ )
161
+ comment = post.comment!(
162
+ :access_token => ACCESS_TOKEN,
163
+ :message => 'Hey, I\'m testing you!'
164
+ )
165
+
166
+ ==== Post a note
167
+
168
+ page = GSGraph::Page.new(117513961602338)
169
+ note = page.note!(
170
+ :access_token => ACCESS_TOKEN,
171
+ :subject => 'testing',
172
+ :message => 'Hey, I\'m testing you!'
173
+ )
174
+
175
+ ==== Post a link
176
+
177
+ me = GSGraph::User.me(ACCESS_TOKEN)
178
+ link = me.link!(
179
+ :link => 'https://github.com/nov/gs_graph',
180
+ :message => 'A Ruby wrapper for Facebook Graph API.'
181
+ )
182
+
183
+ ==== Create Event, respond to it
184
+
185
+ me = GSGraph::User.me(ACCESS_TOKEN)
186
+ event = me.event!(
187
+ :name => 'GSGraph test event',
188
+ :start_time => 1.week.from_now,
189
+ :end_time => 2.week.from_now
190
+ )
191
+ bool = event.attending!(
192
+ :access_token => ACCESS_TOKEN
193
+ )
194
+ bool = event.maybe!(
195
+ :access_token => ACCESS_TOKEN
196
+ )
197
+ bool = event.declined!(
198
+ :access_token => ACCESS_TOKEN
199
+ )
200
+
201
+ ==== Create an album
202
+
203
+ me = GSGraph::User.me(ACCESS_TOKEN)
204
+ album = me.album!(
205
+ :name => 'GSGraph test',
206
+ :message => 'test test test'
207
+ ) # => now facebook Graph API returns weird response for this call
208
+
209
+ ==== Upload a photo to an album
210
+
211
+ me = GSGraph::User.me(ACCESS_TOKEN)
212
+ album = me.albums.first
213
+ album.photo!(
214
+ :access_token => ACCESS_TOKEN,
215
+ :source => File.new('/Users/nov/Desktop/nov.gif', 'rb'), # 'rb' is needed only on windows
216
+ :message => 'Hello, where is photo?'
217
+ )
218
+
219
+ === DELETE
220
+
221
+ ==== Delete an object
222
+
223
+ post = GSGraph::Page.new(117513961602338).feed.first
224
+ bool = post.like!(
225
+ :access_token => ACCESS_TOKEN
226
+ )
227
+ comment = post.comment!(
228
+ :access_token => ACCESS_TOKEN,
229
+ :message => 'Hey, I\'m testing you!'
230
+ )
231
+ comment.destroy(:access_token => ACCESS_TOKEN)
232
+ post.unlike!(:access_token => ACCESS_TOKEN)
233
+ post.destroy(:access_token => ACCESS_TOKEN)
234
+
235
+ === Authentication
236
+
237
+ Both Facebook JavaScript SDK and normal OAuth2 flow is supported.
238
+ Below I show simple sample code.
239
+ You can also see https://github.com/nov/gs_graph_sample for more details Rails3 sample application.
240
+
241
+ In addition, if you are migrating an application that uses old-style session keys you can exchange
242
+ the keys for access tokens.
243
+ See more here: http://developers.gamestamper.com/docs/authentication/fb_sig/
244
+
245
+ ==== JavaScript SDK
246
+
247
+ fb_auth = GSGraph::Auth.new(YOUR_APP_ID, YOUR_APPLICATION_SECRET)
248
+ fb_auth.client # => Rack::OAuth2::Client
249
+
250
+ # get Facebook's auth cookie in advance using their JS SDK
251
+ fb_auth.from_cookie(cookies)
252
+ fb_auth.access_token # => Rack::OAuth2::AccessToken
253
+ fb_auth.user # => GSGraph::User (only basic attributes)
254
+ fb_auth.user.fetch # => fetch more details
255
+
256
+ ==== Normal OAuth2 Flow
257
+
258
+ # setup client
259
+ client = fb_auth.client
260
+ client.redirect_uri = "http://your.client.com/facebook/callback"
261
+
262
+ # redirect user to facebook
263
+ redirect_to client.authorization_uri(
264
+ :scope => [:email, :read_stream, :offline_access]
265
+ )
266
+
267
+ # in callback
268
+ client.authorization_code = params[:code]
269
+ access_token = client.access_token! :client_auth_body # => Rack::OAuth2::AccessToken
270
+ GSGraph::User.me(access_token).fetch # => GSGraph::User
271
+
272
+ ==== Extend Access Token Lifetime
273
+
274
+ # setup client
275
+ fb_auth = GSGraph::Auth.new(YOUR_APP_ID, YOUR_APPLICATION_SECRET)
276
+ fb_auth.exchange_token! 'short-life-access-token'
277
+ fb_auth.access_token # => Rack::OAuth2::AccessToken
278
+
279
+
280
+ === Analytics
281
+
282
+ app = GSGraph::Application.new(YOUR_APP_ID, :secret => YOUR_APPLICATION_SECRET)
283
+ app.insights # => Array of GSGraph::Insight
284
+
285
+ === Test User
286
+
287
+ Not tested well yet.
288
+ Sample is here.
289
+ https://gist.github.com/752974
290
+
291
+ === FQL
292
+
293
+ Not tested well yet.
294
+ Sample is here.
295
+ https://gist.github.com/752914
296
+
297
+ === More Examples?
298
+
299
+ See GitHub wiki for more examples.
300
+ https://github.com/nov/gs_graph/wiki
301
+
302
+ == Note on Patches/Pull Requests
303
+
304
+ * Fork the project.
305
+ * Make your feature addition or bug fix.
306
+ * Add tests for it. This is important so I don't break it in a
307
+ future version unintentionally.
308
+ * Commit, do not mess with rakefile, version, or history.
309
+ (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
310
+ * Send me a pull request. Bonus points for topic branches.
311
+
312
+ == Copyright
313
+
314
+ Copyright (c) 2010 nov matake. See LICENSE for details.