gs_graph 2.6.5

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 (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.