github_api 0.11.3 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1063) hide show
  1. data/README.md +33 -16
  2. data/Rakefile +3 -3
  3. data/features/activity/events.feature +7 -7
  4. data/features/activity/notifications.feature +1 -1
  5. data/features/activity/starring.feature +2 -2
  6. data/features/activity/watching.feature +26 -2
  7. data/features/arguments_parsing.feature +3 -3
  8. data/features/auto_pagination.feature +7 -7
  9. data/features/cassettes/activity/events/issue.json +1 -0
  10. data/features/cassettes/activity/events/network.json +1 -0
  11. data/features/cassettes/activity/events/org.json +1 -0
  12. data/features/cassettes/activity/events/performed.json +1 -0
  13. data/features/cassettes/activity/events/public.json +1 -0
  14. data/features/cassettes/activity/events/received.json +1 -0
  15. data/features/cassettes/activity/events/repo.json +1 -0
  16. data/features/cassettes/activity/notifications/list_user.json +1 -0
  17. data/features/cassettes/activity/starring/list.json +1 -0
  18. data/features/cassettes/activity/starring/star.json +1 -0
  19. data/features/cassettes/activity/starring/starred.json +1 -0
  20. data/features/cassettes/activity/starring/starring.json +1 -0
  21. data/features/cassettes/activity/starring/unstar.json +1 -0
  22. data/features/cassettes/activity/watching/create.json +1 -0
  23. data/features/cassettes/activity/watching/delete.json +1 -0
  24. data/features/cassettes/activity/watching/list.json +1 -0
  25. data/features/cassettes/activity/watching/subscribed.json +1 -0
  26. data/features/cassettes/activity/watching/unwatch.json +1 -0
  27. data/features/cassettes/activity/watching/watch.json +1 -0
  28. data/features/cassettes/activity/watching/watched.json +1 -0
  29. data/features/cassettes/activity/watching/watching.json +1 -0
  30. data/features/cassettes/arguments/orgs/get.json +1 -0
  31. data/features/cassettes/arguments/pulls/get.json +1 -0
  32. data/features/cassettes/arguments/repo_commits/get.json +1 -0
  33. data/features/cassettes/auto_pagination/repos/get.json +1 -0
  34. data/features/cassettes/auto_pagination/repos/global_list.json +1 -0
  35. data/features/cassettes/auto_pagination/repos/list.json +1 -0
  36. data/features/cassettes/emojis/list.json +1 -0
  37. data/features/cassettes/errors/repos/create.json +1 -0
  38. data/features/cassettes/gists/comments/all.json +1 -0
  39. data/features/cassettes/gists/comments/first.json +1 -0
  40. data/features/cassettes/gists/fork.json +1 -0
  41. data/features/cassettes/gists/gist.json +1 -0
  42. data/features/cassettes/gists/gists/commits.json +1 -0
  43. data/features/cassettes/gists/gists/forks.json +1 -0
  44. data/features/cassettes/gists/gists/public_all.json +1 -0
  45. data/features/cassettes/gists/gists/starred.json +1 -0
  46. data/features/cassettes/gists/gists/user_all.json +1 -0
  47. data/features/cassettes/gists/star.json +1 -0
  48. data/features/cassettes/gists/starred.json +1 -0
  49. data/features/cassettes/gists/unstar.json +1 -0
  50. data/features/cassettes/git_data/commits/get.json +1 -0
  51. data/features/cassettes/git_data/references/all.json +1 -0
  52. data/features/cassettes/git_data/references/all_tags.json +1 -0
  53. data/features/cassettes/git_data/references/one.json +1 -0
  54. data/features/cassettes/gitignore/get.json +1 -0
  55. data/features/cassettes/gitignore/get_raw.json +1 -0
  56. data/features/cassettes/gitignore/list.json +1 -0
  57. data/features/cassettes/issues/assignees/ckeck.json +1 -0
  58. data/features/cassettes/issues/assignees/ckeck_not.json +1 -0
  59. data/features/cassettes/issues/assignees/list.json +1 -0
  60. data/features/cassettes/issues/comments/create.json +1 -0
  61. data/features/cassettes/issues/comments/delete.json +1 -0
  62. data/features/cassettes/issues/comments/edit.json +1 -0
  63. data/features/cassettes/issues/comments/get.json +1 -0
  64. data/features/cassettes/issues/comments/list_issue.json +1 -0
  65. data/features/cassettes/issues/comments/list_repo.json +1 -0
  66. data/features/cassettes/issues/create.json +1 -0
  67. data/features/cassettes/issues/edit.json +1 -0
  68. data/features/cassettes/issues/events/get.json +1 -0
  69. data/features/cassettes/issues/events/list_issue.json +1 -0
  70. data/features/cassettes/issues/events/list_repo.json +1 -0
  71. data/features/cassettes/issues/get.json +1 -0
  72. data/features/cassettes/issues/labels/add.json +1 -0
  73. data/features/cassettes/issues/labels/create.json +1 -0
  74. data/features/cassettes/issues/labels/delete.json +1 -0
  75. data/features/cassettes/issues/labels/get.json +1 -0
  76. data/features/cassettes/issues/labels/list_issue.json +1 -0
  77. data/features/cassettes/issues/labels/list_milestone.json +1 -0
  78. data/features/cassettes/issues/labels/list_repo.json +1 -0
  79. data/features/cassettes/issues/labels/remove_all.json +1 -0
  80. data/features/cassettes/issues/labels/remove_one.json +1 -0
  81. data/features/cassettes/issues/labels/replace.json +1 -0
  82. data/features/cassettes/issues/labels/update.json +1 -0
  83. data/features/cassettes/issues/list/repo.json +1 -0
  84. data/features/cassettes/issues/list/user.json +1 -0
  85. data/features/cassettes/issues/milestones/create.json +1 -0
  86. data/features/cassettes/issues/milestones/delete.json +1 -0
  87. data/features/cassettes/issues/milestones/get.json +1 -0
  88. data/features/cassettes/issues/milestones/list.json +1 -0
  89. data/features/cassettes/issues/milestones/update.json +1 -0
  90. data/features/cassettes/markdown/render.json +1 -0
  91. data/features/cassettes/markdown/render_raw.json +1 -0
  92. data/features/cassettes/media/get_default.json +1 -0
  93. data/features/cassettes/media/get_full_json.json +1 -0
  94. data/features/cassettes/media/get_html_json.json +1 -0
  95. data/features/cassettes/media/get_raw_json.json +1 -0
  96. data/features/cassettes/media/get_text_json.json +1 -0
  97. data/features/cassettes/meta/get.json +1 -0
  98. data/features/cassettes/orgs/get.json +1 -0
  99. data/features/cassettes/orgs/list/oauth_user.json +1 -0
  100. data/features/cassettes/orgs/list/user.json +1 -0
  101. data/features/cassettes/orgs/members/list.json +1 -0
  102. data/features/cassettes/orgs/members/list_public.json +1 -0
  103. data/features/cassettes/orgs/members/member_false.json +1 -0
  104. data/features/cassettes/orgs/members/member_public_false.json +1 -0
  105. data/features/cassettes/orgs/members/member_public_true.json +1 -0
  106. data/features/cassettes/pagination/issues/list/first.json +1 -0
  107. data/features/cassettes/pagination/issues/list/last.json +1 -0
  108. data/features/cassettes/pagination/issues/list/lastest.json +1 -0
  109. data/features/cassettes/pagination/issues/list/next.json +1 -0
  110. data/features/cassettes/pagination/issues/list/prev.json +1 -0
  111. data/features/cassettes/pagination/repos/commits/list.json +1 -0
  112. data/features/cassettes/pagination/repos/commits/next.json +1 -0
  113. data/features/cassettes/pagination/repos/commits/sha.json +1 -0
  114. data/features/cassettes/pagination/repos/commits/sha/next.json +1 -0
  115. data/features/cassettes/pagination/repos/diff.json +1 -0
  116. data/features/cassettes/pagination/repos/diff/next.json +1 -0
  117. data/features/cassettes/pagination/repos/list.json +1 -0
  118. data/features/cassettes/pagination/repos/list/next.json +1 -0
  119. data/features/cassettes/pagination/repos/per_page/each_page.json +1 -0
  120. data/features/cassettes/pagination/repos/per_page/first.json +1 -0
  121. data/features/cassettes/pull_requests/comments/list_pull.json +1 -0
  122. data/features/cassettes/pull_requests/comments/list_repo.json +1 -0
  123. data/features/cassettes/pull_requests/create.json +1 -0
  124. data/features/cassettes/pull_requests/get.json +1 -0
  125. data/features/cassettes/pull_requests/list.json +1 -0
  126. data/features/cassettes/pull_requests/merge.json +1 -0
  127. data/features/cassettes/pull_requests/merged.json +1 -0
  128. data/features/cassettes/ratelimit/get.json +1 -0
  129. data/features/cassettes/ratelimit/get_remaining.json +1 -0
  130. data/features/cassettes/ratelimit/get_reset.json +1 -0
  131. data/features/cassettes/repos/assets/delete.json +1 -0
  132. data/features/cassettes/repos/assets/edit.json +1 -0
  133. data/features/cassettes/repos/assets/get.json +1 -0
  134. data/features/cassettes/repos/assets/list.json +1 -0
  135. data/features/cassettes/repos/assets/upload.json +1 -0
  136. data/features/cassettes/repos/branch.json +1 -0
  137. data/features/cassettes/repos/branch_mutation_one.json +1 -0
  138. data/features/cassettes/repos/branch_mutation_two.json +1 -0
  139. data/features/cassettes/repos/branches.json +1 -0
  140. data/features/cassettes/repos/comments/list.json +1 -0
  141. data/features/cassettes/repos/commits/compare.json +1 -0
  142. data/features/cassettes/repos/commits/get.json +1 -0
  143. data/features/cassettes/repos/commits/list.json +1 -0
  144. data/features/cassettes/repos/contents/archive.json +1 -0
  145. data/features/cassettes/repos/contents/create.json +1 -0
  146. data/features/cassettes/repos/contents/delete.json +1 -0
  147. data/features/cassettes/repos/contents/get.json +1 -0
  148. data/features/cassettes/repos/contents/readme.json +1 -0
  149. data/features/cassettes/repos/contents/update.json +1 -0
  150. data/features/cassettes/repos/create.json +1 -0
  151. data/features/cassettes/repos/deployments/create.json +1 -0
  152. data/features/cassettes/repos/deployments/create_status.json +1 -0
  153. data/features/cassettes/repos/deployments/list.json +1 -0
  154. data/features/cassettes/repos/deployments/list_statuses.json +1 -0
  155. data/features/cassettes/repos/forks/list.json +1 -0
  156. data/features/cassettes/repos/forks/list_sort.json +1 -0
  157. data/features/cassettes/repos/get.json +1 -0
  158. data/features/cassettes/repos/languages.json +1 -0
  159. data/features/cassettes/repos/list.json +1 -0
  160. data/features/cassettes/repos/list_org.json +1 -0
  161. data/features/cassettes/repos/list_org_instance.json +1 -0
  162. data/features/cassettes/repos/list_repos.json +1 -0
  163. data/features/cassettes/repos/pages/get.json +1 -0
  164. data/features/cassettes/repos/pages/list_builds.json +1 -0
  165. data/features/cassettes/repos/releases/create.json +1 -0
  166. data/features/cassettes/repos/releases/delete.json +1 -0
  167. data/features/cassettes/repos/releases/edit.json +1 -0
  168. data/features/cassettes/repos/releases/get.json +1 -0
  169. data/features/cassettes/repos/releases/list.json +1 -0
  170. data/features/cassettes/repos/stats/commits.json +1 -0
  171. data/features/cassettes/repos/stats/contribs.json +1 -0
  172. data/features/cassettes/repos/stats/frequency.json +1 -0
  173. data/features/cassettes/repos/stats/participation.json +1 -0
  174. data/features/cassettes/repos/stats/punch.json +1 -0
  175. data/features/cassettes/repos/statuses/list.json +1 -0
  176. data/features/cassettes/repos/statuses/list_combined.json +1 -0
  177. data/features/cassettes/repos/tags.json +1 -0
  178. data/features/cassettes/say/custom.json +1 -0
  179. data/features/cassettes/say/random.json +1 -0
  180. data/features/cassettes/search/code.json +1 -0
  181. data/features/cassettes/search/code_query.json +1 -0
  182. data/features/cassettes/search/code_unicode.json +1 -0
  183. data/features/cassettes/search/issues.json +1 -0
  184. data/features/cassettes/search/legacy/email.json +1 -0
  185. data/features/cassettes/search/legacy/issues.json +1 -0
  186. data/features/cassettes/search/legacy/repos.json +1 -0
  187. data/features/cassettes/search/legacy/users.json +1 -0
  188. data/features/cassettes/search/legacy/users_keyword.json +1 -0
  189. data/features/cassettes/search/repos.json +1 -0
  190. data/features/cassettes/search/users.json +1 -0
  191. data/features/cassettes/search/users_keyword.json +1 -0
  192. data/features/cassettes/users/all.json +1 -0
  193. data/features/cassettes/users/emails/add.json +1 -0
  194. data/features/cassettes/users/emails/all.json +1 -0
  195. data/features/cassettes/users/emails/delete.json +1 -0
  196. data/features/cassettes/users/followers/follow.json +1 -0
  197. data/features/cassettes/users/followers/following.json +1 -0
  198. data/features/cassettes/users/followers/following_.json +1 -0
  199. data/features/cassettes/users/followers/following_another.json +1 -0
  200. data/features/cassettes/users/followers/list.json +1 -0
  201. data/features/cassettes/users/followers/unfollow.json +1 -0
  202. data/features/cassettes/users/get/oauth.json +1 -0
  203. data/features/cassettes/users/get/user.json +1 -0
  204. data/features/cassettes/users/keys/create.json +1 -0
  205. data/features/cassettes/users/keys/delete.json +1 -0
  206. data/features/cassettes/users/keys/user.json +1 -0
  207. data/features/cassettes/users/keys/user_all.json +1 -0
  208. data/features/cassettes/users/keys/user_all.yml +1 -1
  209. data/features/emojis.feature +1 -1
  210. data/features/error_codes.feature +1 -1
  211. data/features/gists.feature +24 -6
  212. data/features/gists/comments.feature +11 -11
  213. data/features/git_data/commmits.feature +1 -1
  214. data/features/git_data/references.feature +7 -7
  215. data/features/github_api.feature +13 -13
  216. data/features/gitignore.feature +2 -2
  217. data/features/issues.feature +1 -1
  218. data/features/issues/assignees.feature +1 -1
  219. data/features/issues/comments.feature +12 -12
  220. data/features/issues/events.feature +4 -4
  221. data/features/issues/labels.feature +9 -9
  222. data/features/issues/milestones.feature +7 -7
  223. data/features/markdown.feature +10 -10
  224. data/features/media_type.feature +1 -1
  225. data/features/meta.feature +1 -1
  226. data/features/orgs.feature +1 -1
  227. data/features/orgs/members.feature +8 -8
  228. data/features/pagination.feature +34 -34
  229. data/features/pull_requests.feature +36 -1
  230. data/features/pull_requests/comments.feature +4 -4
  231. data/features/rate_limit.feature +7 -1
  232. data/features/repos.feature +20 -6
  233. data/features/repos/assets.feature +2 -2
  234. data/features/repos/comments.feature +14 -0
  235. data/features/repos/commits.feature +35 -0
  236. data/features/repos/contents.feature +11 -11
  237. data/features/repos/deployments.feature +50 -0
  238. data/features/repos/forks.feature +2 -2
  239. data/features/repos/pages.feature +1 -1
  240. data/features/repos/releases.feature +3 -3
  241. data/features/repos/statistics.feature +14 -14
  242. data/features/repos/statuses.feature +14 -1
  243. data/features/say.feature +43 -43
  244. data/features/search.feature +3 -3
  245. data/features/search/legacy.feature +1 -1
  246. data/features/step_definitions/common_steps.rb +12 -1
  247. data/features/support/vcr.rb +6 -1
  248. data/features/users.feature +1 -1
  249. data/features/users/emails.feature +4 -4
  250. data/features/users/followers.feature +63 -0
  251. data/features/users/keys.feature +22 -1
  252. data/lib/github_api.rb +30 -25
  253. data/lib/github_api/api.rb +227 -24
  254. data/lib/github_api/api/actions.rb +5 -7
  255. data/lib/github_api/api/arguments.rb +248 -0
  256. data/lib/github_api/api/config.rb +107 -0
  257. data/lib/github_api/api/config/property.rb +30 -0
  258. data/lib/github_api/api/config/property_set.rb +118 -0
  259. data/lib/github_api/api/factory.rb +33 -0
  260. data/lib/github_api/client.rb +40 -56
  261. data/lib/github_api/client/activity.rb +25 -0
  262. data/lib/github_api/client/activity/events.rb +216 -0
  263. data/lib/github_api/client/activity/notifications.rb +184 -0
  264. data/lib/github_api/client/activity/starring.rb +128 -0
  265. data/lib/github_api/client/activity/watching.rb +174 -0
  266. data/lib/github_api/client/authorizations.rb +143 -0
  267. data/lib/github_api/client/authorizations/app.rb +98 -0
  268. data/lib/github_api/client/emojis.rb +17 -0
  269. data/lib/github_api/client/gists.rb +259 -0
  270. data/lib/github_api/client/gists/comments.rb +100 -0
  271. data/lib/github_api/client/git_data.rb +29 -0
  272. data/lib/github_api/client/git_data/blobs.rb +50 -0
  273. data/lib/github_api/client/git_data/commits.rb +99 -0
  274. data/lib/github_api/client/git_data/references.rb +146 -0
  275. data/lib/github_api/client/git_data/tags.rb +94 -0
  276. data/lib/github_api/client/git_data/trees.rb +111 -0
  277. data/lib/github_api/client/gitignore.rb +55 -0
  278. data/lib/github_api/client/issues.rb +246 -0
  279. data/lib/github_api/client/issues/assignees.rb +42 -0
  280. data/lib/github_api/client/issues/comments.rb +144 -0
  281. data/lib/github_api/client/issues/events.rb +48 -0
  282. data/lib/github_api/client/issues/labels.rb +187 -0
  283. data/lib/github_api/client/issues/milestones.rb +144 -0
  284. data/lib/github_api/client/markdown.rb +60 -0
  285. data/lib/github_api/client/meta.rb +17 -0
  286. data/lib/github_api/client/orgs.rb +98 -0
  287. data/lib/github_api/client/orgs/members.rb +125 -0
  288. data/lib/github_api/client/orgs/teams.rb +291 -0
  289. data/lib/github_api/client/pull_requests.rb +205 -0
  290. data/lib/github_api/client/pull_requests/comments.rb +165 -0
  291. data/lib/github_api/client/repos.rb +451 -0
  292. data/lib/github_api/client/repos/collaborators.rb +83 -0
  293. data/lib/github_api/client/repos/comments.rb +124 -0
  294. data/lib/github_api/client/repos/commits.rb +78 -0
  295. data/lib/github_api/client/repos/contents.rb +240 -0
  296. data/lib/github_api/client/repos/deployments.rb +135 -0
  297. data/lib/github_api/client/repos/downloads.rb +60 -0
  298. data/lib/github_api/client/repos/forks.rb +46 -0
  299. data/lib/github_api/client/repos/hooks.rb +212 -0
  300. data/lib/github_api/client/repos/keys.rb +81 -0
  301. data/lib/github_api/client/repos/merging.rb +45 -0
  302. data/lib/github_api/client/repos/pages.rb +46 -0
  303. data/lib/github_api/client/repos/pub_sub_hubbub.rb +133 -0
  304. data/lib/github_api/client/repos/releases.rb +153 -0
  305. data/lib/github_api/client/repos/releases/assets.rb +134 -0
  306. data/lib/github_api/client/repos/statistics.rb +87 -0
  307. data/lib/github_api/client/repos/statuses.rb +89 -0
  308. data/lib/github_api/client/say.rb +23 -0
  309. data/lib/github_api/client/scopes.rb +18 -0
  310. data/lib/github_api/client/search.rb +130 -0
  311. data/lib/github_api/client/search/legacy.rb +109 -0
  312. data/lib/github_api/client/users.rb +115 -0
  313. data/lib/github_api/client/users/emails.rb +62 -0
  314. data/lib/github_api/client/users/followers.rb +113 -0
  315. data/lib/github_api/client/users/keys.rb +102 -0
  316. data/lib/github_api/configuration.rb +25 -95
  317. data/lib/github_api/connection.rb +13 -15
  318. data/lib/github_api/normalizer.rb +1 -3
  319. data/lib/github_api/rate_limit.rb +6 -0
  320. data/lib/github_api/request.rb +49 -37
  321. data/lib/github_api/request/basic_auth.rb +1 -1
  322. data/lib/github_api/request/jsonize.rb +7 -5
  323. data/lib/github_api/request/oauth2.rb +1 -1
  324. data/lib/github_api/request/verbs.rb +60 -0
  325. data/lib/github_api/version.rb +2 -2
  326. data/spec/fixtures/auths/check.json +36 -0
  327. data/spec/fixtures/repos/deployment.json +31 -0
  328. data/spec/fixtures/repos/deployment_status.json +33 -0
  329. data/spec/fixtures/repos/deployment_statuses.json +68 -0
  330. data/spec/fixtures/repos/deployments.json +33 -0
  331. data/spec/github/api/arguments/dsl_spec.rb +10 -0
  332. data/spec/github/api/arguments/parse_spec.rb +88 -0
  333. data/spec/github/api/callbacks_spec.rb +59 -0
  334. data/spec/github/api/namespace_spec.rb +41 -0
  335. data/spec/github/api/property_spec.rb +100 -0
  336. data/spec/github/api/set_spec.rb +2 -3
  337. data/spec/github/api_factory_spec.rb +4 -4
  338. data/spec/github/api_spec.rb +2 -3
  339. data/spec/github/client/activity/events/issue_spec.rb +51 -0
  340. data/spec/github/client/activity/events/network_spec.rb +49 -0
  341. data/spec/github/client/activity/events/org_spec.rb +50 -0
  342. data/spec/github/client/activity/events/performed_spec.rb +73 -0
  343. data/spec/github/client/activity/events/public_spec.rb +44 -0
  344. data/spec/github/client/activity/events/received_spec.rb +72 -0
  345. data/spec/github/client/activity/events/repository_spec.rb +53 -0
  346. data/spec/github/client/activity/events/user_org_spec.rb +53 -0
  347. data/spec/github/client/activity/notifications/create_spec.rb +44 -0
  348. data/spec/github/client/activity/notifications/delete_spec.rb +41 -0
  349. data/spec/github/client/activity/notifications/get_spec.rb +58 -0
  350. data/spec/github/client/activity/notifications/list_spec.rb +75 -0
  351. data/spec/github/client/activity/notifications/mark_spec.rb +74 -0
  352. data/spec/github/client/activity/notifications/subscribed_spec.rb +48 -0
  353. data/spec/github/client/activity/starring/list_spec.rb +53 -0
  354. data/spec/github/client/activity/starring/star_spec.rb +36 -0
  355. data/spec/github/client/activity/starring/starred_spec.rb +53 -0
  356. data/spec/github/client/activity/starring/starring_spec.rb +38 -0
  357. data/spec/github/client/activity/starring/unstar_spec.rb +37 -0
  358. data/spec/github/client/activity/watching/list_spec.rb +47 -0
  359. data/spec/github/client/activity/watching/unwatch_spec.rb +37 -0
  360. data/spec/github/client/activity/watching/watch_spec.rb +37 -0
  361. data/spec/github/client/activity/watching/watched_spec.rb +53 -0
  362. data/spec/github/client/activity/watching/watching_spec.rb +39 -0
  363. data/spec/github/client/authorizations/app/check_spec.rb +68 -0
  364. data/spec/github/client/authorizations/app/create_spec.rb +44 -0
  365. data/spec/github/client/authorizations/app/delete_spec.rb +59 -0
  366. data/spec/github/client/authorizations/create_spec.rb +49 -0
  367. data/spec/github/client/authorizations/delete_spec.rb +38 -0
  368. data/spec/github/client/authorizations/get_spec.rb +48 -0
  369. data/spec/github/client/authorizations/list_spec.rb +54 -0
  370. data/spec/github/client/authorizations/update_spec.rb +49 -0
  371. data/spec/github/client/gists/comments/create_spec.rb +51 -0
  372. data/spec/github/client/gists/comments/delete_spec.rb +32 -0
  373. data/spec/github/client/gists/comments/edit_spec.rb +52 -0
  374. data/spec/github/client/gists/comments/get_spec.rb +48 -0
  375. data/spec/github/client/gists/comments/list_spec.rb +51 -0
  376. data/spec/github/client/gists/comments_spec.rb +11 -0
  377. data/spec/github/client/gists/create_spec.rb +64 -0
  378. data/spec/github/client/gists/delete_spec.rb +31 -0
  379. data/spec/github/client/gists/edit_spec.rb +60 -0
  380. data/spec/github/client/gists/fork_spec.rb +41 -0
  381. data/spec/github/client/gists/get_spec.rb +47 -0
  382. data/spec/github/client/gists/is_starred_spec.rb +44 -0
  383. data/spec/github/client/gists/list_spec.rb +78 -0
  384. data/spec/github/client/gists/star_spec.rb +30 -0
  385. data/spec/github/client/gists/starred_spec.rb +44 -0
  386. data/spec/github/client/gists/unstar_spec.rb +30 -0
  387. data/spec/github/client/git_data/blobs/create_spec.rb +64 -0
  388. data/spec/github/client/git_data/blobs/get_spec.rb +49 -0
  389. data/spec/github/client/git_data/blobs_spec.rb +9 -0
  390. data/spec/github/client/git_data/commits/create_spec.rb +77 -0
  391. data/spec/github/client/git_data/commits/get_spec.rb +50 -0
  392. data/spec/github/client/git_data/commits_spec.rb +9 -0
  393. data/spec/github/client/git_data/references/create_spec.rb +67 -0
  394. data/spec/github/client/git_data/references/delete_spec.rb +39 -0
  395. data/spec/github/client/git_data/references/get_spec.rb +56 -0
  396. data/spec/github/client/git_data/references/list_spec.rb +111 -0
  397. data/spec/github/client/git_data/references/update_spec.rb +62 -0
  398. data/spec/github/client/git_data/references_spec.rb +11 -0
  399. data/spec/github/client/git_data/tags/create_spec.rb +63 -0
  400. data/spec/github/client/git_data/tags/get_spec.rb +48 -0
  401. data/spec/github/client/git_data/tags_spec.rb +9 -0
  402. data/spec/github/client/git_data/trees/create_spec.rb +68 -0
  403. data/spec/github/client/git_data/trees/get_spec.rb +69 -0
  404. data/spec/github/client/git_data/trees_spec.rb +9 -0
  405. data/spec/github/client/gitignore/get_spec.rb +53 -0
  406. data/spec/github/client/gitignore/list_spec.rb +41 -0
  407. data/spec/github/client/issues/assignees/check_spec.rb +46 -0
  408. data/spec/github/client/issues/assignees/list_spec.rb +47 -0
  409. data/spec/github/client/issues/assignees_spec.rb +5 -0
  410. data/spec/github/client/issues/comments/create_spec.rb +49 -0
  411. data/spec/github/client/issues/comments/delete_spec.rb +35 -0
  412. data/spec/github/client/issues/comments/edit_spec.rb +49 -0
  413. data/spec/github/client/issues/comments/get_spec.rb +48 -0
  414. data/spec/github/client/issues/comments/list_spec.rb +78 -0
  415. data/spec/github/client/issues/comments_spec.rb +9 -0
  416. data/spec/github/client/issues/create_spec.rb +60 -0
  417. data/spec/github/client/issues/edit_spec.rb +61 -0
  418. data/spec/github/client/issues/events/get_spec.rb +50 -0
  419. data/spec/github/client/issues/events/list_spec.rb +85 -0
  420. data/spec/github/client/issues/events_spec.rb +7 -0
  421. data/spec/github/client/issues/get_spec.rb +48 -0
  422. data/spec/github/client/issues/labels/add_spec.rb +50 -0
  423. data/spec/github/client/issues/labels/create_spec.rb +59 -0
  424. data/spec/github/client/issues/labels/delete_spec.rb +38 -0
  425. data/spec/github/client/issues/labels/get_spec.rb +47 -0
  426. data/spec/github/client/issues/labels/list_spec.rb +102 -0
  427. data/spec/github/client/issues/labels/remove_spec.rb +57 -0
  428. data/spec/github/client/issues/labels/replace_spec.rb +48 -0
  429. data/spec/github/client/issues/labels/update_spec.rb +60 -0
  430. data/spec/github/client/issues/labels_spec.rb +9 -0
  431. data/spec/github/client/issues/list_spec.rb +100 -0
  432. data/spec/github/client/issues/milestones/create_spec.rb +56 -0
  433. data/spec/github/client/issues/milestones/delete_spec.rb +41 -0
  434. data/spec/github/client/issues/milestones/get_spec.rb +51 -0
  435. data/spec/github/client/issues/milestones/list_spec.rb +52 -0
  436. data/spec/github/client/issues/milestones/update_spec.rb +56 -0
  437. data/spec/github/client/issues/milestones_spec.rb +11 -0
  438. data/spec/github/client/orgs/edit_spec.rb +53 -0
  439. data/spec/github/client/orgs/get_spec.rb +43 -0
  440. data/spec/github/client/orgs/list_spec.rb +62 -0
  441. data/spec/github/client/orgs/members/conceal_spec.rb +36 -0
  442. data/spec/github/client/orgs/members/delete_spec.rb +34 -0
  443. data/spec/github/client/orgs/members/list_spec.rb +82 -0
  444. data/spec/github/client/orgs/members/member_spec.rb +66 -0
  445. data/spec/github/client/orgs/members/publicize_spec.rb +36 -0
  446. data/spec/github/client/orgs/members_spec.rb +5 -0
  447. data/spec/github/client/orgs/teams/add_member_spec.rb +40 -0
  448. data/spec/github/client/orgs/teams/add_repo_spec.rb +39 -0
  449. data/spec/github/client/orgs/teams/create_spec.rb +58 -0
  450. data/spec/github/client/orgs/teams/delete_spec.rb +35 -0
  451. data/spec/github/client/orgs/teams/edit_spec.rb +57 -0
  452. data/spec/github/client/orgs/teams/get_spec.rb +44 -0
  453. data/spec/github/client/orgs/teams/list_members_spec.rb +49 -0
  454. data/spec/github/client/orgs/teams/list_repos_spec.rb +49 -0
  455. data/spec/github/client/orgs/teams/list_spec.rb +72 -0
  456. data/spec/github/client/orgs/teams/remove_member_spec.rb +39 -0
  457. data/spec/github/client/orgs/teams/remove_repo_spec.rb +39 -0
  458. data/spec/github/client/orgs/teams/team_member_spec.rb +41 -0
  459. data/spec/github/client/orgs/teams/team_repo_spec.rb +42 -0
  460. data/spec/github/client/orgs/teams_spec.rb +7 -0
  461. data/spec/github/client/pull_requests/comments/create_spec.rb +58 -0
  462. data/spec/github/client/pull_requests/comments/delete_spec.rb +35 -0
  463. data/spec/github/client/pull_requests/comments/edit_spec.rb +50 -0
  464. data/spec/github/client/pull_requests/comments/get_spec.rb +51 -0
  465. data/spec/github/client/pull_requests/comments/list_spec.rb +76 -0
  466. data/spec/github/client/pull_requests/comments_spec.rb +11 -0
  467. data/spec/github/client/pull_requests/commits_spec.rb +50 -0
  468. data/spec/github/client/pull_requests/create_spec.rb +55 -0
  469. data/spec/github/client/pull_requests/files_spec.rb +50 -0
  470. data/spec/github/client/pull_requests/get_spec.rb +48 -0
  471. data/spec/github/client/pull_requests/list_spec.rb +53 -0
  472. data/spec/github/client/pull_requests/merge_spec.rb +44 -0
  473. data/spec/github/client/pull_requests/merged_spec.rb +38 -0
  474. data/spec/github/client/pull_requests/update_spec.rb +55 -0
  475. data/spec/github/client/repos/assets/delete_spec.rb +39 -0
  476. data/spec/github/client/repos/assets/edit_spec.rb +40 -0
  477. data/spec/github/client/repos/assets/get_spec.rb +44 -0
  478. data/spec/github/client/repos/assets/list_spec.rb +54 -0
  479. data/spec/github/client/repos/assets/upload_spec.rb +43 -0
  480. data/spec/github/client/repos/branch_spec.rb +41 -0
  481. data/spec/github/client/repos/branches_spec.rb +53 -0
  482. data/spec/github/client/repos/collaborators/add_spec.rb +38 -0
  483. data/spec/github/client/repos/collaborators/get_spec.rb +49 -0
  484. data/spec/github/client/repos/collaborators/list_spec.rb +54 -0
  485. data/spec/github/client/repos/collaborators/remove_spec.rb +38 -0
  486. data/spec/github/client/repos/collaborators_spec.rb +7 -0
  487. data/spec/github/client/repos/comments/create_spec.rb +59 -0
  488. data/spec/github/client/repos/comments/delete_spec.rb +42 -0
  489. data/spec/github/client/repos/comments/get_spec.rb +51 -0
  490. data/spec/github/client/repos/comments/list_spec.rb +94 -0
  491. data/spec/github/client/repos/comments/update_spec.rb +47 -0
  492. data/spec/github/client/repos/commits/compare_spec.rb +36 -0
  493. data/spec/github/client/repos/commits/get_spec.rb +49 -0
  494. data/spec/github/client/repos/commits/list_spec.rb +51 -0
  495. data/spec/github/client/repos/contents/archive_spec.rb +38 -0
  496. data/spec/github/client/repos/contents/create_spec.rb +41 -0
  497. data/spec/github/client/repos/contents/delete_spec.rb +55 -0
  498. data/spec/github/client/repos/contents/get_spec.rb +35 -0
  499. data/spec/github/client/repos/contents/readme_spec.rb +30 -0
  500. data/spec/github/client/repos/contributors_spec.rb +58 -0
  501. data/spec/github/client/repos/create_spec.rb +77 -0
  502. data/spec/github/client/repos/delete_spec.rb +37 -0
  503. data/spec/github/client/repos/deployments/create_spec.rb +54 -0
  504. data/spec/github/client/repos/deployments/create_status_spec.rb +54 -0
  505. data/spec/github/client/repos/deployments/list_spec.rb +51 -0
  506. data/spec/github/client/repos/deployments/statuses_spec.rb +49 -0
  507. data/spec/github/client/repos/downloads/delete_spec.rb +44 -0
  508. data/spec/github/client/repos/downloads/get_spec.rb +52 -0
  509. data/spec/github/client/repos/downloads/list_spec.rb +54 -0
  510. data/spec/github/client/repos/downloads_spec.rb +13 -0
  511. data/spec/github/client/repos/edit_spec.rb +59 -0
  512. data/spec/github/client/repos/forks/create_spec.rb +44 -0
  513. data/spec/github/client/repos/forks/list_spec.rb +53 -0
  514. data/spec/github/client/repos/get_spec.rb +50 -0
  515. data/spec/github/client/repos/hooks/create_spec.rb +67 -0
  516. data/spec/github/client/repos/hooks/delete_spec.rb +39 -0
  517. data/spec/github/client/repos/hooks/edit_spec.rb +76 -0
  518. data/spec/github/client/repos/hooks/get_spec.rb +48 -0
  519. data/spec/github/client/repos/hooks/list_spec.rb +53 -0
  520. data/spec/github/client/repos/hooks/ping_spec.rb +39 -0
  521. data/spec/github/client/repos/hooks/test_spec.rb +39 -0
  522. data/spec/github/client/repos/hooks_spec.rb +13 -0
  523. data/spec/github/client/repos/keys/create_spec.rb +49 -0
  524. data/spec/github/client/repos/keys/delete_spec.rb +39 -0
  525. data/spec/github/client/repos/keys/get_spec.rb +44 -0
  526. data/spec/github/client/repos/keys/list_spec.rb +53 -0
  527. data/spec/github/client/repos/keys_spec.rb +9 -0
  528. data/spec/github/client/repos/languages_spec.rb +61 -0
  529. data/spec/github/client/repos/list_spec.rb +120 -0
  530. data/spec/github/client/repos/merging/merge_spec.rb +59 -0
  531. data/spec/github/client/repos/pub_sub_hubbub/subscribe_service_spec.rb +26 -0
  532. data/spec/github/client/repos/pub_sub_hubbub/subscribe_spec.rb +46 -0
  533. data/spec/github/client/repos/pub_sub_hubbub/unsubscribe_service_spec.rb +20 -0
  534. data/spec/github/client/repos/pub_sub_hubbub/unsubscribe_spec.rb +58 -0
  535. data/spec/github/client/repos/releases/create_spec.rb +43 -0
  536. data/spec/github/client/repos/releases/delete_spec.rb +39 -0
  537. data/spec/github/client/repos/releases/edit_spec.rb +39 -0
  538. data/spec/github/client/repos/releases/get_spec.rb +44 -0
  539. data/spec/github/client/repos/releases/list_spec.rb +53 -0
  540. data/spec/github/client/repos/statistics/code_frequency_spec.rb +25 -0
  541. data/spec/github/client/repos/statistics/commit_activity_spec.rb +29 -0
  542. data/spec/github/client/repos/statistics/contributors_spec.rb +29 -0
  543. data/spec/github/client/repos/statistics/participation_spec.rb +25 -0
  544. data/spec/github/client/repos/statistics/punch_card_spec.rb +25 -0
  545. data/spec/github/client/repos/statuses/create_spec.rb +56 -0
  546. data/spec/github/client/repos/statuses/list_spec.rb +53 -0
  547. data/spec/github/client/repos/statuses_spec.rb +11 -0
  548. data/spec/github/client/repos/tags_spec.rb +59 -0
  549. data/spec/github/client/repos/teams_spec.rb +59 -0
  550. data/spec/github/client/scopes/list_spec.rb +33 -0
  551. data/spec/github/client/search/code_spec.rb +38 -0
  552. data/spec/github/client/search/issues_spec.rb +38 -0
  553. data/spec/github/client/search/legacy/email_spec.rb +34 -0
  554. data/spec/github/client/search/legacy/issues_spec.rb +39 -0
  555. data/spec/github/client/search/legacy/repos_spec.rb +36 -0
  556. data/spec/github/client/search/legacy/users_spec.rb +36 -0
  557. data/spec/github/client/search/repos_spec.rb +38 -0
  558. data/spec/github/client/search/users_spec.rb +38 -0
  559. data/spec/github/client/users/emails/add_spec.rb +33 -0
  560. data/spec/github/client/users/emails/delete_spec.rb +33 -0
  561. data/spec/github/client/users/emails/list_spec.rb +52 -0
  562. data/spec/github/client/users/followers/follow_spec.rb +33 -0
  563. data/spec/github/client/users/followers/following_spec.rb +65 -0
  564. data/spec/github/client/users/followers/is_following_spec.rb +41 -0
  565. data/spec/github/client/users/followers/list_spec.rb +62 -0
  566. data/spec/github/client/users/followers/unfollow_spec.rb +33 -0
  567. data/spec/github/client/users/get_spec.rb +61 -0
  568. data/spec/github/client/users/keys/create_spec.rb +51 -0
  569. data/spec/github/client/users/keys/delete_spec.rb +37 -0
  570. data/spec/github/client/users/keys/get_spec.rb +50 -0
  571. data/spec/github/client/users/keys/list_spec.rb +77 -0
  572. data/spec/github/client/users/keys/update_spec.rb +56 -0
  573. data/spec/github/client/users/list_spec.rb +45 -0
  574. data/spec/github/client/users/update_spec.rb +56 -0
  575. data/spec/github/client_spec.rb +14 -38
  576. data/spec/github/configuration_spec.rb +22 -27
  577. data/spec/github/paged_request_spec.rb +1 -1
  578. data/spec/github/pagination/iterator/number_spec.rb +1 -1
  579. data/spec/github/pagination/iterator/sha_spec.rb +1 -1
  580. data/spec/github/request/jsonize_spec.rb +7 -8
  581. data/spec/github/request/request_spec.rb +3 -1
  582. data/spec/github/request_spec.rb +11 -5
  583. data/spec/github/validations/format_spec.rb +1 -1
  584. data/spec/github_spec.rb +1 -4
  585. data/spec/integration/activity_spec.rb +5 -5
  586. data/spec/integration/arguments_spec.rb +11 -17
  587. data/spec/integration/authorizations_spec.rb +1 -1
  588. data/spec/integration/gists_spec.rb +2 -2
  589. data/spec/integration/git_data_spec.rb +6 -6
  590. data/spec/integration/issues_spec.rb +6 -6
  591. data/spec/integration/options_spec.rb +7 -6
  592. data/spec/integration/orgs_spec.rb +6 -4
  593. data/spec/integration/pull_requests_spec.rb +2 -2
  594. data/spec/integration/repos_spec.rb +14 -14
  595. data/spec/integration/search_spec.rb +2 -2
  596. data/spec/integration/users_spec.rb +4 -4
  597. data/spec/spec_helper.rb +11 -12
  598. metadata +544 -602
  599. data/features/cassettes/activity/events/issue.yml +0 -192
  600. data/features/cassettes/activity/events/network.yml +0 -134
  601. data/features/cassettes/activity/events/org.yml +0 -325
  602. data/features/cassettes/activity/events/performed.yml +0 -362
  603. data/features/cassettes/activity/events/public.yml +0 -284
  604. data/features/cassettes/activity/events/received.yml +0 -422
  605. data/features/cassettes/activity/events/repo.yml +0 -134
  606. data/features/cassettes/activity/events/user_org.yml +0 -48
  607. data/features/cassettes/activity/notifications/list_user.yml +0 -54
  608. data/features/cassettes/activity/starring/list.yml +0 -98
  609. data/features/cassettes/activity/starring/star.yml +0 -48
  610. data/features/cassettes/activity/starring/starred.yml +0 -195
  611. data/features/cassettes/activity/starring/starring.yml +0 -56
  612. data/features/cassettes/activity/starring/unstar.yml +0 -46
  613. data/features/cassettes/activity/watching/list.yml +0 -76
  614. data/features/cassettes/activity/watching/unwatch.yml +0 -46
  615. data/features/cassettes/activity/watching/watch.yml +0 -48
  616. data/features/cassettes/activity/watching/watched.yml +0 -166
  617. data/features/cassettes/activity/watching/watching.yml +0 -56
  618. data/features/cassettes/arguments/orgs/get.yml +0 -69
  619. data/features/cassettes/arguments/pulls/get.yml +0 -112
  620. data/features/cassettes/arguments/repo_commits/get.yml +0 -89
  621. data/features/cassettes/auto_pagination/repos/get.yml +0 -86
  622. data/features/cassettes/auto_pagination/repos/global_list.yml +0 -1157
  623. data/features/cassettes/auto_pagination/repos/list.yml +0 -1235
  624. data/features/cassettes/emojis/list.yml +0 -258
  625. data/features/cassettes/errors/repos/create.yml +0 -88
  626. data/features/cassettes/gists/comments/all.yml +0 -161
  627. data/features/cassettes/gists/comments/first.yml +0 -86
  628. data/features/cassettes/gists/fork.yml +0 -78
  629. data/features/cassettes/gists/gist.yml +0 -105
  630. data/features/cassettes/gists/gists/public_all.yml +0 -253
  631. data/features/cassettes/gists/gists/starred.yml +0 -75
  632. data/features/cassettes/gists/gists/user_all.yml +0 -143
  633. data/features/cassettes/gists/star.yml +0 -71
  634. data/features/cassettes/gists/starred.yml +0 -75
  635. data/features/cassettes/gists/unstar.yml +0 -67
  636. data/features/cassettes/git_data/commits/get.yml +0 -69
  637. data/features/cassettes/git_data/references/all.yml +0 -410
  638. data/features/cassettes/git_data/references/all_tags.yml +0 -172
  639. data/features/cassettes/git_data/references/one.yml +0 -128
  640. data/features/cassettes/gitignore/get.yml +0 -60
  641. data/features/cassettes/gitignore/get_raw.yml +0 -224
  642. data/features/cassettes/gitignore/list.yml +0 -67
  643. data/features/cassettes/issues/assignees/ckeck.yml +0 -46
  644. data/features/cassettes/issues/assignees/ckeck_not.yml +0 -105
  645. data/features/cassettes/issues/assignees/list.yml +0 -64
  646. data/features/cassettes/issues/comments/create.yml +0 -55
  647. data/features/cassettes/issues/comments/delete.yml +0 -46
  648. data/features/cassettes/issues/comments/edit.yml +0 -53
  649. data/features/cassettes/issues/comments/get.yml +0 -71
  650. data/features/cassettes/issues/comments/list_issue.yml +0 -82
  651. data/features/cassettes/issues/comments/list_repo.yml +0 -266
  652. data/features/cassettes/issues/create.yml +0 -46
  653. data/features/cassettes/issues/edit.yml +0 -44
  654. data/features/cassettes/issues/events/get.yml +0 -139
  655. data/features/cassettes/issues/events/list_issue.yml +0 -71
  656. data/features/cassettes/issues/events/list_repo.yml +0 -222
  657. data/features/cassettes/issues/get.yml +0 -62
  658. data/features/cassettes/issues/labels/add.yml +0 -52
  659. data/features/cassettes/issues/labels/create.yml +0 -54
  660. data/features/cassettes/issues/labels/delete.yml +0 -46
  661. data/features/cassettes/issues/labels/get.yml +0 -63
  662. data/features/cassettes/issues/labels/list_issue.yml +0 -64
  663. data/features/cassettes/issues/labels/list_milestone.yml +0 -65
  664. data/features/cassettes/issues/labels/list_repo.yml +0 -65
  665. data/features/cassettes/issues/labels/remove_all.yml +0 -46
  666. data/features/cassettes/issues/labels/remove_one.yml +0 -46
  667. data/features/cassettes/issues/labels/replace.yml +0 -52
  668. data/features/cassettes/issues/labels/update.yml +0 -52
  669. data/features/cassettes/issues/list/repo.yml +0 -251
  670. data/features/cassettes/issues/list/user.yml +0 -44
  671. data/features/cassettes/issues/milestones/create.yml +0 -55
  672. data/features/cassettes/issues/milestones/delete.yml +0 -46
  673. data/features/cassettes/issues/milestones/get.yml +0 -175
  674. data/features/cassettes/issues/milestones/list.yml +0 -54
  675. data/features/cassettes/issues/milestones/update.yml +0 -53
  676. data/features/cassettes/markdown/render.yml +0 -46
  677. data/features/cassettes/markdown/render_raw.yml +0 -46
  678. data/features/cassettes/media/get_default.yml +0 -84
  679. data/features/cassettes/media/get_full_json.yml +0 -83
  680. data/features/cassettes/media/get_html_json.yml +0 -81
  681. data/features/cassettes/media/get_raw_json.yml +0 -80
  682. data/features/cassettes/media/get_text_json.yml +0 -80
  683. data/features/cassettes/meta/get.yml +0 -59
  684. data/features/cassettes/orgs/get.yml +0 -85
  685. data/features/cassettes/orgs/list/oauth_user.yml +0 -75
  686. data/features/cassettes/orgs/list/user.yml +0 -134
  687. data/features/cassettes/orgs/members/list.yml +0 -139
  688. data/features/cassettes/orgs/members/list_public.yml +0 -140
  689. data/features/cassettes/orgs/members/member_false.yml +0 -52
  690. data/features/cassettes/orgs/members/member_public_false.yml +0 -55
  691. data/features/cassettes/orgs/members/member_public_true.yml +0 -48
  692. data/features/cassettes/pagination/issues/list/first.yml +0 -432
  693. data/features/cassettes/pagination/issues/list/last.yml +0 -297
  694. data/features/cassettes/pagination/issues/list/next.yml +0 -377
  695. data/features/cassettes/pagination/issues/list/prev.yml +0 -386
  696. data/features/cassettes/pagination/repos/commits/list.yml +0 -224
  697. data/features/cassettes/pagination/repos/commits/next.yml +0 -225
  698. data/features/cassettes/pagination/repos/commits/sha.yml +0 -181
  699. data/features/cassettes/pagination/repos/commits/sha/next.yml +0 -205
  700. data/features/cassettes/pagination/repos/diff.yml +0 -174
  701. data/features/cassettes/pagination/repos/diff/next.yml +0 -147
  702. data/features/cassettes/pagination/repos/list.yml +0 -212
  703. data/features/cassettes/pagination/repos/list/next.yml +0 -184
  704. data/features/cassettes/pagination/repos/per_page/each_page.yml +0 -497
  705. data/features/cassettes/pagination/repos/per_page/first.yml +0 -173
  706. data/features/cassettes/pull_requests/comments/get.yml +0 -159
  707. data/features/cassettes/pull_requests/comments/list_pull.yml +0 -54
  708. data/features/cassettes/pull_requests/comments/list_repo.yml +0 -54
  709. data/features/cassettes/pull_requests/get.yml +0 -120
  710. data/features/cassettes/pull_requests/list.yml +0 -254
  711. data/features/cassettes/ratelimit/get.yml +0 -64
  712. data/features/cassettes/ratelimit/get_remaining.yml +0 -64
  713. data/features/cassettes/repos/assets/delete.yml +0 -52
  714. data/features/cassettes/repos/assets/edit.yml +0 -65
  715. data/features/cassettes/repos/assets/get.yml +0 -74
  716. data/features/cassettes/repos/assets/list.yml +0 -73
  717. data/features/cassettes/repos/assets/upload.yml +0 -66
  718. data/features/cassettes/repos/branch.yml +0 -61
  719. data/features/cassettes/repos/branches.yml +0 -83
  720. data/features/cassettes/repos/contents/archive.yml +0 -54
  721. data/features/cassettes/repos/contents/create.yml +0 -60
  722. data/features/cassettes/repos/contents/delete.yml +0 -59
  723. data/features/cassettes/repos/contents/get.yml +0 -226
  724. data/features/cassettes/repos/contents/readme.yml +0 -271
  725. data/features/cassettes/repos/contents/update.yml +0 -62
  726. data/features/cassettes/repos/create.yml +0 -46
  727. data/features/cassettes/repos/forks/list.yml +0 -314
  728. data/features/cassettes/repos/forks/list_sort.yml +0 -318
  729. data/features/cassettes/repos/get.yml +0 -89
  730. data/features/cassettes/repos/languages.yml +0 -75
  731. data/features/cassettes/repos/list.yml +0 -123
  732. data/features/cassettes/repos/list_org.yml +0 -167
  733. data/features/cassettes/repos/list_org_instance.yml +0 -300
  734. data/features/cassettes/repos/list_repos.yml +0 -801
  735. data/features/cassettes/repos/pages/get.yml +0 -71
  736. data/features/cassettes/repos/pages/list_builds.yml +0 -63
  737. data/features/cassettes/repos/pages/list_latest_builds.yml +0 -62
  738. data/features/cassettes/repos/releases/create.yml +0 -64
  739. data/features/cassettes/repos/releases/delete.yml +0 -52
  740. data/features/cassettes/repos/releases/edit.yml +0 -63
  741. data/features/cassettes/repos/releases/get.yml +0 -78
  742. data/features/cassettes/repos/releases/list.yml +0 -81
  743. data/features/cassettes/repos/stats/commits.yml +0 -80
  744. data/features/cassettes/repos/stats/contribs.yml +0 -221
  745. data/features/cassettes/repos/stats/frequency.yml +0 -54
  746. data/features/cassettes/repos/stats/participation.yml +0 -68
  747. data/features/cassettes/repos/stats/punch.yml +0 -76
  748. data/features/cassettes/repos/statuses/create.yml +0 -52
  749. data/features/cassettes/repos/statuses/list.yml +0 -64
  750. data/features/cassettes/repos/tags.yml +0 -102
  751. data/features/cassettes/repos/teams.yml +0 -48
  752. data/features/cassettes/say/custom.yml +0 -60
  753. data/features/cassettes/say/random.yml +0 -60
  754. data/features/cassettes/search/code.yml +0 -252
  755. data/features/cassettes/search/code_query.yml +0 -203
  756. data/features/cassettes/search/code_unicode.yml +0 -93
  757. data/features/cassettes/search/issues.yml +0 -626
  758. data/features/cassettes/search/legacy/email.yml +0 -72
  759. data/features/cassettes/search/legacy/issues.yml +0 -119
  760. data/features/cassettes/search/legacy/repos.yml +0 -394
  761. data/features/cassettes/search/legacy/users.yml +0 -72
  762. data/features/cassettes/search/legacy/users_keyword.yml +0 -63
  763. data/features/cassettes/search/repos.yml +0 -407
  764. data/features/cassettes/search/users.yml +0 -72
  765. data/features/cassettes/search/users_keyword.yml +0 -65
  766. data/features/cassettes/users/all.yml +0 -256
  767. data/features/cassettes/users/emails/add.yml +0 -75
  768. data/features/cassettes/users/emails/all.yml +0 -75
  769. data/features/cassettes/users/emails/delete.yml +0 -40
  770. data/lib/github_api/activity.rb +0 -33
  771. data/lib/github_api/activity/events.rb +0 -206
  772. data/lib/github_api/activity/notifications.rb +0 -157
  773. data/lib/github_api/activity/starring.rb +0 -94
  774. data/lib/github_api/activity/watching.rb +0 -92
  775. data/lib/github_api/api_factory.rb +0 -31
  776. data/lib/github_api/arguments.rb +0 -166
  777. data/lib/github_api/authorizations.rb +0 -140
  778. data/lib/github_api/authorizations/app.rb +0 -77
  779. data/lib/github_api/compatibility.rb +0 -23
  780. data/lib/github_api/emojis.rb +0 -20
  781. data/lib/github_api/gists.rb +0 -205
  782. data/lib/github_api/gists/comments.rb +0 -87
  783. data/lib/github_api/git_data.rb +0 -39
  784. data/lib/github_api/git_data/blobs.rb +0 -46
  785. data/lib/github_api/git_data/commits.rb +0 -83
  786. data/lib/github_api/git_data/references.rb +0 -133
  787. data/lib/github_api/git_data/tags.rb +0 -78
  788. data/lib/github_api/git_data/trees.rb +0 -92
  789. data/lib/github_api/gitignore.rb +0 -50
  790. data/lib/github_api/issues.rb +0 -238
  791. data/lib/github_api/issues/assignees.rb +0 -44
  792. data/lib/github_api/issues/comments.rb +0 -115
  793. data/lib/github_api/issues/events.rb +0 -47
  794. data/lib/github_api/issues/labels.rb +0 -167
  795. data/lib/github_api/issues/milestones.rb +0 -125
  796. data/lib/github_api/markdown.rb +0 -60
  797. data/lib/github_api/meta.rb +0 -19
  798. data/lib/github_api/orgs.rb +0 -94
  799. data/lib/github_api/orgs/members.rb +0 -108
  800. data/lib/github_api/orgs/teams.rb +0 -243
  801. data/lib/github_api/pull_requests.rb +0 -192
  802. data/lib/github_api/pull_requests/comments.rb +0 -144
  803. data/lib/github_api/repos.rb +0 -449
  804. data/lib/github_api/repos/collaborators.rb +0 -73
  805. data/lib/github_api/repos/comments.rb +0 -117
  806. data/lib/github_api/repos/commits.rb +0 -71
  807. data/lib/github_api/repos/contents.rb +0 -188
  808. data/lib/github_api/repos/deployments.rb +0 -8
  809. data/lib/github_api/repos/downloads.rb +0 -112
  810. data/lib/github_api/repos/forks.rb +0 -42
  811. data/lib/github_api/repos/hooks.rb +0 -154
  812. data/lib/github_api/repos/keys.rb +0 -96
  813. data/lib/github_api/repos/merging.rb +0 -42
  814. data/lib/github_api/repos/pages.rb +0 -49
  815. data/lib/github_api/repos/pub_sub_hubbub.rb +0 -117
  816. data/lib/github_api/repos/releases.rb +0 -144
  817. data/lib/github_api/repos/releases/assets.rb +0 -126
  818. data/lib/github_api/repos/statistics.rb +0 -94
  819. data/lib/github_api/repos/statuses.rb +0 -63
  820. data/lib/github_api/s3_uploader.rb +0 -57
  821. data/lib/github_api/say.rb +0 -23
  822. data/lib/github_api/scopes.rb +0 -20
  823. data/lib/github_api/search.rb +0 -125
  824. data/lib/github_api/search/legacy.rb +0 -94
  825. data/lib/github_api/users.rb +0 -112
  826. data/lib/github_api/users/emails.rb +0 -58
  827. data/lib/github_api/users/followers.rb +0 -99
  828. data/lib/github_api/users/keys.rb +0 -92
  829. data/spec/github/activity/events/issue_spec.rb +0 -51
  830. data/spec/github/activity/events/network_spec.rb +0 -49
  831. data/spec/github/activity/events/org_spec.rb +0 -50
  832. data/spec/github/activity/events/performed_spec.rb +0 -73
  833. data/spec/github/activity/events/public_spec.rb +0 -44
  834. data/spec/github/activity/events/received_spec.rb +0 -72
  835. data/spec/github/activity/events/repository_spec.rb +0 -53
  836. data/spec/github/activity/events/user_org_spec.rb +0 -53
  837. data/spec/github/activity/notifications/create_spec.rb +0 -44
  838. data/spec/github/activity/notifications/delete_spec.rb +0 -41
  839. data/spec/github/activity/notifications/get_spec.rb +0 -58
  840. data/spec/github/activity/notifications/list_spec.rb +0 -75
  841. data/spec/github/activity/notifications/mark_spec.rb +0 -74
  842. data/spec/github/activity/notifications/subscribed_spec.rb +0 -48
  843. data/spec/github/activity/starring/list_spec.rb +0 -53
  844. data/spec/github/activity/starring/star_spec.rb +0 -36
  845. data/spec/github/activity/starring/starred_spec.rb +0 -53
  846. data/spec/github/activity/starring/starring_spec.rb +0 -38
  847. data/spec/github/activity/starring/unstar_spec.rb +0 -37
  848. data/spec/github/activity/watching/list_spec.rb +0 -47
  849. data/spec/github/activity/watching/unwatch_spec.rb +0 -37
  850. data/spec/github/activity/watching/watch_spec.rb +0 -37
  851. data/spec/github/activity/watching/watched_spec.rb +0 -53
  852. data/spec/github/activity/watching/watching_spec.rb +0 -39
  853. data/spec/github/arguments/parse_spec.rb +0 -68
  854. data/spec/github/authorizations/app/create_spec.rb +0 -44
  855. data/spec/github/authorizations/app/delete_spec.rb +0 -59
  856. data/spec/github/authorizations/create_spec.rb +0 -49
  857. data/spec/github/authorizations/delete_spec.rb +0 -40
  858. data/spec/github/authorizations/get_spec.rb +0 -49
  859. data/spec/github/authorizations/list_spec.rb +0 -55
  860. data/spec/github/authorizations/update_spec.rb +0 -50
  861. data/spec/github/gists/comments/create_spec.rb +0 -51
  862. data/spec/github/gists/comments/delete_spec.rb +0 -32
  863. data/spec/github/gists/comments/edit_spec.rb +0 -52
  864. data/spec/github/gists/comments/get_spec.rb +0 -48
  865. data/spec/github/gists/comments/list_spec.rb +0 -51
  866. data/spec/github/gists/comments_spec.rb +0 -11
  867. data/spec/github/gists/create_spec.rb +0 -64
  868. data/spec/github/gists/delete_spec.rb +0 -31
  869. data/spec/github/gists/edit_spec.rb +0 -60
  870. data/spec/github/gists/fork_spec.rb +0 -41
  871. data/spec/github/gists/get_spec.rb +0 -47
  872. data/spec/github/gists/is_starred_spec.rb +0 -44
  873. data/spec/github/gists/list_spec.rb +0 -78
  874. data/spec/github/gists/star_spec.rb +0 -30
  875. data/spec/github/gists/starred_spec.rb +0 -44
  876. data/spec/github/gists/unstar_spec.rb +0 -30
  877. data/spec/github/git_data/blobs/create_spec.rb +0 -64
  878. data/spec/github/git_data/blobs/get_spec.rb +0 -49
  879. data/spec/github/git_data/blobs_spec.rb +0 -9
  880. data/spec/github/git_data/commits/create_spec.rb +0 -77
  881. data/spec/github/git_data/commits/get_spec.rb +0 -50
  882. data/spec/github/git_data/commits_spec.rb +0 -9
  883. data/spec/github/git_data/references/create_spec.rb +0 -67
  884. data/spec/github/git_data/references/delete_spec.rb +0 -40
  885. data/spec/github/git_data/references/get_spec.rb +0 -56
  886. data/spec/github/git_data/references/list_spec.rb +0 -111
  887. data/spec/github/git_data/references/update_spec.rb +0 -62
  888. data/spec/github/git_data/references_spec.rb +0 -11
  889. data/spec/github/git_data/tags/create_spec.rb +0 -63
  890. data/spec/github/git_data/tags/get_spec.rb +0 -48
  891. data/spec/github/git_data/tags_spec.rb +0 -9
  892. data/spec/github/git_data/trees/create_spec.rb +0 -68
  893. data/spec/github/git_data/trees/get_spec.rb +0 -69
  894. data/spec/github/git_data/trees_spec.rb +0 -9
  895. data/spec/github/gitignore/get_spec.rb +0 -54
  896. data/spec/github/gitignore/list_spec.rb +0 -42
  897. data/spec/github/issues/assignees/check_spec.rb +0 -46
  898. data/spec/github/issues/assignees/list_spec.rb +0 -47
  899. data/spec/github/issues/assignees_spec.rb +0 -5
  900. data/spec/github/issues/comments/create_spec.rb +0 -50
  901. data/spec/github/issues/comments/delete_spec.rb +0 -36
  902. data/spec/github/issues/comments/edit_spec.rb +0 -50
  903. data/spec/github/issues/comments/get_spec.rb +0 -49
  904. data/spec/github/issues/comments/list_spec.rb +0 -79
  905. data/spec/github/issues/comments_spec.rb +0 -9
  906. data/spec/github/issues/create_spec.rb +0 -60
  907. data/spec/github/issues/edit_spec.rb +0 -61
  908. data/spec/github/issues/events/get_spec.rb +0 -51
  909. data/spec/github/issues/events/list_spec.rb +0 -86
  910. data/spec/github/issues/events_spec.rb +0 -7
  911. data/spec/github/issues/get_spec.rb +0 -49
  912. data/spec/github/issues/labels/add_spec.rb +0 -50
  913. data/spec/github/issues/labels/create_spec.rb +0 -59
  914. data/spec/github/issues/labels/delete_spec.rb +0 -39
  915. data/spec/github/issues/labels/get_spec.rb +0 -47
  916. data/spec/github/issues/labels/list_spec.rb +0 -102
  917. data/spec/github/issues/labels/remove_spec.rb +0 -58
  918. data/spec/github/issues/labels/replace_spec.rb +0 -49
  919. data/spec/github/issues/labels/update_spec.rb +0 -61
  920. data/spec/github/issues/labels_spec.rb +0 -7
  921. data/spec/github/issues/list_spec.rb +0 -100
  922. data/spec/github/issues/milestones/create_spec.rb +0 -56
  923. data/spec/github/issues/milestones/delete_spec.rb +0 -42
  924. data/spec/github/issues/milestones/get_spec.rb +0 -51
  925. data/spec/github/issues/milestones/list_spec.rb +0 -52
  926. data/spec/github/issues/milestones/update_spec.rb +0 -57
  927. data/spec/github/issues/milestones_spec.rb +0 -11
  928. data/spec/github/orgs/edit_spec.rb +0 -54
  929. data/spec/github/orgs/get_spec.rb +0 -44
  930. data/spec/github/orgs/list_spec.rb +0 -63
  931. data/spec/github/orgs/members/conceal_spec.rb +0 -37
  932. data/spec/github/orgs/members/delete_spec.rb +0 -35
  933. data/spec/github/orgs/members/list_spec.rb +0 -82
  934. data/spec/github/orgs/members/member_spec.rb +0 -67
  935. data/spec/github/orgs/members/publicize_spec.rb +0 -37
  936. data/spec/github/orgs/members_spec.rb +0 -5
  937. data/spec/github/orgs/teams/add_member_spec.rb +0 -40
  938. data/spec/github/orgs/teams/add_repo_spec.rb +0 -39
  939. data/spec/github/orgs/teams/create_spec.rb +0 -58
  940. data/spec/github/orgs/teams/delete_spec.rb +0 -36
  941. data/spec/github/orgs/teams/edit_spec.rb +0 -57
  942. data/spec/github/orgs/teams/get_spec.rb +0 -45
  943. data/spec/github/orgs/teams/list_members_spec.rb +0 -49
  944. data/spec/github/orgs/teams/list_repos_spec.rb +0 -49
  945. data/spec/github/orgs/teams/list_spec.rb +0 -49
  946. data/spec/github/orgs/teams/remove_member_spec.rb +0 -40
  947. data/spec/github/orgs/teams/remove_repo_spec.rb +0 -40
  948. data/spec/github/orgs/teams/team_member_spec.rb +0 -42
  949. data/spec/github/orgs/teams/team_repo_spec.rb +0 -43
  950. data/spec/github/orgs/teams_spec.rb +0 -7
  951. data/spec/github/pull_requests/comments/create_spec.rb +0 -59
  952. data/spec/github/pull_requests/comments/delete_spec.rb +0 -35
  953. data/spec/github/pull_requests/comments/edit_spec.rb +0 -51
  954. data/spec/github/pull_requests/comments/get_spec.rb +0 -52
  955. data/spec/github/pull_requests/comments/list_spec.rb +0 -76
  956. data/spec/github/pull_requests/comments_spec.rb +0 -11
  957. data/spec/github/pull_requests/commits_spec.rb +0 -51
  958. data/spec/github/pull_requests/create_spec.rb +0 -56
  959. data/spec/github/pull_requests/files_spec.rb +0 -51
  960. data/spec/github/pull_requests/get_spec.rb +0 -49
  961. data/spec/github/pull_requests/list_spec.rb +0 -54
  962. data/spec/github/pull_requests/merge_spec.rb +0 -44
  963. data/spec/github/pull_requests/merged_spec.rb +0 -39
  964. data/spec/github/pull_requests/update_spec.rb +0 -55
  965. data/spec/github/repos/assets/delete_spec.rb +0 -40
  966. data/spec/github/repos/assets/edit_spec.rb +0 -40
  967. data/spec/github/repos/assets/get_spec.rb +0 -45
  968. data/spec/github/repos/assets/list_spec.rb +0 -55
  969. data/spec/github/repos/assets/upload_spec.rb +0 -44
  970. data/spec/github/repos/branch_spec.rb +0 -42
  971. data/spec/github/repos/branches_spec.rb +0 -54
  972. data/spec/github/repos/collaborators/add_spec.rb +0 -39
  973. data/spec/github/repos/collaborators/get_spec.rb +0 -49
  974. data/spec/github/repos/collaborators/list_spec.rb +0 -55
  975. data/spec/github/repos/collaborators/remove_spec.rb +0 -39
  976. data/spec/github/repos/collaborators_spec.rb +0 -7
  977. data/spec/github/repos/comments/create_spec.rb +0 -59
  978. data/spec/github/repos/comments/delete_spec.rb +0 -43
  979. data/spec/github/repos/comments/get_spec.rb +0 -52
  980. data/spec/github/repos/comments/list_spec.rb +0 -96
  981. data/spec/github/repos/comments/update_spec.rb +0 -48
  982. data/spec/github/repos/commits/compare_spec.rb +0 -37
  983. data/spec/github/repos/commits/get_spec.rb +0 -50
  984. data/spec/github/repos/commits/list_spec.rb +0 -52
  985. data/spec/github/repos/contents/archive_spec.rb +0 -38
  986. data/spec/github/repos/contents/create_spec.rb +0 -41
  987. data/spec/github/repos/contents/delete_spec.rb +0 -55
  988. data/spec/github/repos/contents/get_spec.rb +0 -35
  989. data/spec/github/repos/contents/readme_spec.rb +0 -30
  990. data/spec/github/repos/contributors_spec.rb +0 -59
  991. data/spec/github/repos/create_spec.rb +0 -77
  992. data/spec/github/repos/delete_spec.rb +0 -38
  993. data/spec/github/repos/downloads/create_spec.rb +0 -64
  994. data/spec/github/repos/downloads/delete_spec.rb +0 -45
  995. data/spec/github/repos/downloads/get_spec.rb +0 -53
  996. data/spec/github/repos/downloads/list_spec.rb +0 -55
  997. data/spec/github/repos/downloads/upload_spec.rb +0 -32
  998. data/spec/github/repos/downloads_spec.rb +0 -13
  999. data/spec/github/repos/edit_spec.rb +0 -60
  1000. data/spec/github/repos/forks/create_spec.rb +0 -45
  1001. data/spec/github/repos/forks/list_spec.rb +0 -54
  1002. data/spec/github/repos/get_spec.rb +0 -51
  1003. data/spec/github/repos/hooks/create_spec.rb +0 -68
  1004. data/spec/github/repos/hooks/delete_spec.rb +0 -40
  1005. data/spec/github/repos/hooks/edit_spec.rb +0 -77
  1006. data/spec/github/repos/hooks/get_spec.rb +0 -49
  1007. data/spec/github/repos/hooks/list_spec.rb +0 -54
  1008. data/spec/github/repos/hooks/test_spec.rb +0 -40
  1009. data/spec/github/repos/hooks_spec.rb +0 -13
  1010. data/spec/github/repos/keys/create_spec.rb +0 -50
  1011. data/spec/github/repos/keys/delete_spec.rb +0 -40
  1012. data/spec/github/repos/keys/edit_spec.rb +0 -42
  1013. data/spec/github/repos/keys/get_spec.rb +0 -45
  1014. data/spec/github/repos/keys/list_spec.rb +0 -54
  1015. data/spec/github/repos/keys_spec.rb +0 -9
  1016. data/spec/github/repos/languages_spec.rb +0 -61
  1017. data/spec/github/repos/list_spec.rb +0 -120
  1018. data/spec/github/repos/merging/merge_spec.rb +0 -58
  1019. data/spec/github/repos/pub_sub_hubbub/subscribe_service_spec.rb +0 -27
  1020. data/spec/github/repos/pub_sub_hubbub/subscribe_spec.rb +0 -47
  1021. data/spec/github/repos/pub_sub_hubbub/unsubscribe_service_spec.rb +0 -21
  1022. data/spec/github/repos/pub_sub_hubbub/unsubscribe_spec.rb +0 -58
  1023. data/spec/github/repos/releases/create_spec.rb +0 -44
  1024. data/spec/github/repos/releases/delete_spec.rb +0 -40
  1025. data/spec/github/repos/releases/edit_spec.rb +0 -40
  1026. data/spec/github/repos/releases/get_spec.rb +0 -45
  1027. data/spec/github/repos/releases/list_spec.rb +0 -54
  1028. data/spec/github/repos/statistics/code_frequency_spec.rb +0 -25
  1029. data/spec/github/repos/statistics/commit_activity_spec.rb +0 -29
  1030. data/spec/github/repos/statistics/contributors_spec.rb +0 -29
  1031. data/spec/github/repos/statistics/participation_spec.rb +0 -25
  1032. data/spec/github/repos/statistics/punch_card_spec.rb +0 -25
  1033. data/spec/github/repos/statuses/create_spec.rb +0 -56
  1034. data/spec/github/repos/statuses/list_spec.rb +0 -53
  1035. data/spec/github/repos/statuses_spec.rb +0 -11
  1036. data/spec/github/repos/tags_spec.rb +0 -59
  1037. data/spec/github/repos/teams_spec.rb +0 -59
  1038. data/spec/github/s3_uploader_spec.rb +0 -51
  1039. data/spec/github/scopes/list_spec.rb +0 -33
  1040. data/spec/github/search/code_spec.rb +0 -38
  1041. data/spec/github/search/issues_spec.rb +0 -38
  1042. data/spec/github/search/legacy/email_spec.rb +0 -34
  1043. data/spec/github/search/legacy/issues_spec.rb +0 -39
  1044. data/spec/github/search/legacy/repos_spec.rb +0 -36
  1045. data/spec/github/search/legacy/users_spec.rb +0 -36
  1046. data/spec/github/search/repos_spec.rb +0 -38
  1047. data/spec/github/search/users_spec.rb +0 -38
  1048. data/spec/github/users/emails/add_spec.rb +0 -33
  1049. data/spec/github/users/emails/delete_spec.rb +0 -33
  1050. data/spec/github/users/emails/list_spec.rb +0 -52
  1051. data/spec/github/users/followers/follow_spec.rb +0 -33
  1052. data/spec/github/users/followers/following_spec.rb +0 -65
  1053. data/spec/github/users/followers/is_following_spec.rb +0 -41
  1054. data/spec/github/users/followers/list_spec.rb +0 -62
  1055. data/spec/github/users/followers/unfollow_spec.rb +0 -33
  1056. data/spec/github/users/get_spec.rb +0 -61
  1057. data/spec/github/users/keys/create_spec.rb +0 -51
  1058. data/spec/github/users/keys/delete_spec.rb +0 -37
  1059. data/spec/github/users/keys/get_spec.rb +0 -50
  1060. data/spec/github/users/keys/list_spec.rb +0 -78
  1061. data/spec/github/users/keys/update_spec.rb +0 -56
  1062. data/spec/github/users/list_spec.rb +0 -45
  1063. data/spec/github/users/update_spec.rb +0 -56
@@ -1,19 +1,18 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module Github
4
+ # Core class responsible for api interface operations
4
5
  class API
5
-
6
6
  # Returns all API public methods for a given class.
7
- def self.inherited(klass)
8
- klass.class_eval <<-RUBY_EVAL, __FILE__, __LINE__ + 1
7
+ def self.extend_with_actions(child_class)
8
+ child_class.class_eval <<-RUBY_EVAL, __FILE__, __LINE__ + 1
9
9
  def self.actions
10
- self.new.api_methods_in(#{klass})
10
+ self.new.api_methods_in(#{child_class})
11
11
  end
12
12
  def actions
13
- api_methods_in(#{klass})
13
+ api_methods_in(#{child_class})
14
14
  end
15
15
  RUBY_EVAL
16
- super
17
16
  end
18
17
 
19
18
  def api_methods_in(klass)
@@ -45,6 +44,5 @@ module Github
45
44
  end
46
45
  args
47
46
  end
48
-
49
47
  end # API
50
48
  end # Github
@@ -0,0 +1,248 @@
1
+ # encoding: utf-8
2
+
3
+ module Github
4
+ class API
5
+ # A class responsible for handilng request arguments
6
+ class Arguments
7
+ include Normalizer
8
+ include ParameterFilter
9
+ include Validations
10
+
11
+ AUTO_PAGINATION = 'auto_pagination'.freeze
12
+
13
+ # Parameters passed to request
14
+ attr_reader :params
15
+
16
+ # The remaining unparsed arguments
17
+ attr_reader :remaining
18
+
19
+ # The request api
20
+ attr_reader :api
21
+
22
+ # Initialize an Arguments
23
+ #
24
+ # @param [Hash] options
25
+ #
26
+ # @option options [Array[String]] :required
27
+ # arguments that must be present before request is fired
28
+ #
29
+ # @option options [Github::API] :api
30
+ # the reference to the current api
31
+ #
32
+ # @api public
33
+ def initialize(options = {}, &block)
34
+ normalize! options
35
+
36
+ @api = options.fetch('api')
37
+ @required = options.fetch('required', []).map(&:to_s)
38
+ @optional = options.fetch('optional', []).map(&:to_s)
39
+ @assigns = {}
40
+
41
+ yield_or_eval(&block)
42
+ end
43
+
44
+ # Specify required attribute(s)
45
+ #
46
+ # @api public
47
+ def require(*attrs, &block)
48
+ attrs_clone = attrs.clone
49
+ @required = Array(attrs_clone)
50
+ self
51
+ end
52
+ alias :required :require
53
+
54
+ # Specify optional attribute(s)
55
+ #
56
+ # @api public
57
+ def optional(*attrs, &block)
58
+ end
59
+
60
+ # Hash like access to request arguments
61
+ #
62
+ # @param [String, Symbol] property
63
+ # the property name
64
+ #
65
+ # @api public
66
+ def [](property)
67
+ @assigns[property.to_s]
68
+ end
69
+
70
+ def []=(property, value)
71
+ @assigns[property.to_s] = value
72
+ end
73
+
74
+ def method_missing(method_name, *args, &block)
75
+ if @assigns.key?(method_name.to_s)
76
+ self[method_name]
77
+ else
78
+ super
79
+ end
80
+ end
81
+
82
+ def respond_to_missing?(method_name, include_private = false)
83
+ @assigns.key?(method_name) || super
84
+ end
85
+
86
+ # Parse arguments to allow for flexible api calls
87
+ #
88
+ # Arguments can be part of parameters hash or be simple string arguments.
89
+ #
90
+ # @api public
91
+ def parse(*args, &block)
92
+ options = ParamsHash.new(args.extract_options!)
93
+ normalize! options
94
+
95
+ if args.size.zero? # Arguments are inside the parameters hash
96
+ parse_hash(options)
97
+ else
98
+ parse_array(*args)
99
+ end
100
+ @params = options
101
+ @remaining = args[@required.size..-1]
102
+ extract_pagination(options)
103
+
104
+ yield_or_eval(&block)
105
+ self
106
+ end
107
+
108
+ # Remove unknown keys from parameters hash.
109
+ #
110
+ # = Parameters
111
+ # :recursive - boolean that toggles whether nested filtering should be applied
112
+ #
113
+ def permit(keys, key=nil, options={})
114
+ filter! keys, (key.nil? ? params : params[key]), options if keys.any?
115
+ self
116
+ end
117
+
118
+ # Check if required keys are present inside parameters hash.
119
+ #
120
+ # @api public
121
+ def assert_required(required)
122
+ assert_required_keys required, params
123
+ self
124
+ end
125
+
126
+ # Check if parameters match expected values.
127
+ #
128
+ # @api public
129
+ def assert_values(values, key=nil)
130
+ assert_valid_values values, (key.nil? ? params : params[key])
131
+ self
132
+ end
133
+
134
+ private
135
+
136
+ # Parse array arguments and assign in order to required properties
137
+ #
138
+ # @param [Array[Object]] args
139
+ #
140
+ # @raise ArgumentError
141
+ #
142
+ # @return [nil]
143
+ #
144
+ # @api public
145
+ def parse_array(*args)
146
+ assert_presence_of(*args)
147
+ @required.each_with_index do |req, indx|
148
+ @assigns[req] = args[indx]
149
+ end
150
+ check_requirement!(*args)
151
+ end
152
+
153
+ # Remove required arguments from parameters and
154
+ # validate their presence(if not nil or empty string).
155
+ #
156
+ # @param [Hash[String]] options
157
+ #
158
+ # @return [nil]
159
+ #
160
+ # @api private
161
+ def parse_hash(options)
162
+ options.each { |key, val| remove_required(options, key, val) }
163
+ hash = update_required_from_global
164
+ check_requirement!(*hash.keys)
165
+ end
166
+
167
+ # Remove required property from hash
168
+ #
169
+ # @param [Hash[String]] options
170
+ # the options to check
171
+ #
172
+ # @param [String] key
173
+ # the key to remove
174
+ #
175
+ # @param [String] val
176
+ # the value to assign
177
+ #
178
+ # @api private
179
+ def remove_required(options, key, val)
180
+ if @required.include?(key.to_s)
181
+ assert_presence_of(val)
182
+ options.delete(key)
183
+ @assigns[key.to_s] = val
184
+ end
185
+ end
186
+
187
+ # Update required property from globals if not present
188
+ #
189
+ # @return [Hash[String]]
190
+ #
191
+ # @api private
192
+ def update_required_from_global
193
+ @required.reduce({}) do |hash, property|
194
+ if @assigns.key?(property)
195
+ hash[property] = self[property]
196
+ elsif api_property?(property)
197
+ hash[property] = api.send(:"#{property}")
198
+ self[property] = hash[property]
199
+ end
200
+ hash
201
+ end
202
+ end
203
+
204
+ # Check if api has non-empty property
205
+ #
206
+ # @param [String] property
207
+ # the property to check
208
+ #
209
+ # @return [Boolean]
210
+ #
211
+ # @api private
212
+ def api_property?(property)
213
+ api.respond_to?(:"#{property}") && api.send(:"#{property}")
214
+ end
215
+
216
+ # Check if required arguments are present.
217
+ #
218
+ #
219
+ def check_requirement!(*args)
220
+ args_length = args.length
221
+ required_length = @required.length
222
+
223
+ if args_length < required_length
224
+ raise ArgumentError, "Wrong number of arguments " \
225
+ "(#{args_length} for #{required_length}). " \
226
+ "Expected `#{@required.join(', ')}` as required arguments, " \
227
+ "but got `#{args.join(", ")}`."
228
+ end
229
+ end
230
+
231
+ # Find auto_pagination parameter in options hash
232
+ #
233
+ def extract_pagination(options)
234
+ if (value = options.delete(AUTO_PAGINATION))
235
+ api.auto_pagination = value
236
+ end
237
+ end
238
+
239
+ # Evaluate a block
240
+ #
241
+ # @api privte
242
+ def yield_or_eval(&block)
243
+ return unless block
244
+ block.arity > 0 ? yield(self) : instance_eval(&block)
245
+ end
246
+ end # Arguments
247
+ end # Api
248
+ end # Github
@@ -0,0 +1,107 @@
1
+ # encoding: utf-8
2
+
3
+ require 'github_api/api/config/property'
4
+ require 'github_api/api/config/property_set'
5
+
6
+ module Github
7
+
8
+ class API
9
+ # A base class for constructing api configuration
10
+ class Config
11
+
12
+ # Defines a property on an object's class or instance
13
+ #
14
+ # @example
15
+ # class Configuration < Api::Config
16
+ # property :adapter, default: :net_http
17
+ # property :user, required: true
18
+ # end
19
+ #
20
+ # @param [Symbol] name
21
+ # the name of a property
22
+ #
23
+ # @param [#to_hash] options
24
+ # the extra options
25
+ #
26
+ # @return [self]
27
+ #
28
+ # @api public
29
+ def self.property(name, options = {})
30
+ self.property_set << Property.new(name, options)
31
+ update_subclasses(name, options)
32
+ self
33
+ end
34
+
35
+ def self.update_subclasses(name, options)
36
+ if defined?(@subclasses) && @subclasses
37
+ @subclasses.each { |klass| klass.property(name, options) }
38
+ end
39
+ end
40
+
41
+ # Check if property is defined
42
+ #
43
+ # @param [Symbol] name
44
+ # the name to check
45
+ #
46
+ # @return [Boolean]
47
+ #
48
+ # @api public
49
+ def self.property?(name)
50
+ property_set.include?(name)
51
+ end
52
+
53
+ class << self
54
+ attr_reader :property_set
55
+ end
56
+
57
+ instance_variable_set("@property_set", PropertySet.new(self))
58
+
59
+ def self.inherited(descendant)
60
+ super
61
+ (@subclasses ||= Set.new) << descendant
62
+ descendant.instance_variable_set('@property_set',
63
+ PropertySet.new(descendant, self.property_set.properties.dup))
64
+ end
65
+
66
+ def initialize(&block)
67
+ super(&block)
68
+ end
69
+
70
+ def property_names
71
+ self.class.property_set.properties.map(&:name)
72
+ end
73
+
74
+ def self.property_names
75
+ property_set.properties.map(&:name)
76
+ end
77
+
78
+ # Fetach all the properties and their values
79
+ #
80
+ # @return [Hash[Symbol]]
81
+ #
82
+ # @api public
83
+ def fetch(value = nil)
84
+ if value
85
+ self.class.property_set[value]
86
+ else
87
+ self.class.property_set.to_hash
88
+ end
89
+ end
90
+
91
+ # Provide access to properties
92
+ #
93
+ # @example
94
+ # config.call do |config|
95
+ # config.adapter = :net_http
96
+ # end
97
+ #
98
+ # @return [self]
99
+ #
100
+ # @api private
101
+ def call(&block)
102
+ block.call(self) if block_given?
103
+ self
104
+ end
105
+ end # Config
106
+ end # Api
107
+ end # Github
@@ -0,0 +1,30 @@
1
+ # encoding: utf-8
2
+
3
+ module Github
4
+ class API
5
+ class Config
6
+
7
+ # Property objects provide an interface for configuration options
8
+ class Property
9
+
10
+ attr_reader :name
11
+ attr_reader :default
12
+ attr_reader :required
13
+
14
+ def initialize(name, options)
15
+ @name = name
16
+ @default = options.fetch(:default, nil)
17
+ @required = options.fetch(:required, nil)
18
+ @options = options
19
+ end
20
+
21
+ # @api private
22
+ def define_accessor_methods(properties)
23
+ properties.define_reader_method(self, self.name, :public)
24
+ properties.define_writer_method(self, "#{self.name}=", :public)
25
+ end
26
+ end # Property
27
+
28
+ end # Config
29
+ end # Api
30
+ end # Github
@@ -0,0 +1,118 @@
1
+ # encoding: utf-8
2
+
3
+ module Github
4
+ class API
5
+ class Config
6
+ # Class responsible for storing configuration properties
7
+ class PropertySet
8
+ include Enumerable
9
+
10
+ attr_reader :parent
11
+
12
+ attr_reader :properties
13
+
14
+ # Initialize an PropertySet
15
+ #
16
+ # @param [Object] parent
17
+ # @param [Set] properties
18
+ #
19
+ # @return [undefined]
20
+ #
21
+ # @api private
22
+ def initialize(parent = nil, properties = Set.new)
23
+ @parent = parent
24
+ @properties = properties
25
+ @map = {}
26
+ end
27
+
28
+ # Iterate over properties
29
+ #
30
+ # @yield [property]
31
+ #
32
+ # @yieldparam [Property] property
33
+ #
34
+ # @return [self]
35
+ #
36
+ # @api public
37
+ def each
38
+ return to_enum unless block_given?
39
+ @map.each { |name, property| yield property if name.is_a?(Symbol) }
40
+ self
41
+ end
42
+
43
+ # Adds property to the set
44
+ #
45
+ # @example
46
+ # properties_set << property
47
+ #
48
+ # @param [Property] property
49
+ #
50
+ # @return [self]
51
+ #
52
+ # @api public
53
+ def <<(property)
54
+ properties << property
55
+ update_map(property.name, property.default)
56
+ property.define_accessor_methods(self)
57
+ self
58
+ end
59
+
60
+ # Access property by name
61
+ #
62
+ # @api public
63
+ def [](name)
64
+ @map[name]
65
+ end
66
+ alias_method :fetch, :[]
67
+
68
+ # Set property value by name
69
+ #
70
+ # @api public
71
+ def []=(name, property)
72
+ update_map(name, property)
73
+ end
74
+
75
+ # Update map with index
76
+ #
77
+ # @api private
78
+ def update_map(name, property)
79
+ @map[name.to_sym] = @map[name.to_s.freeze] = property
80
+ end
81
+
82
+ # Convert properties to a hash of property names and
83
+ # corresponding values
84
+ #
85
+ # @api public
86
+ def to_hash
87
+ properties.each_with_object({}) do |property, props|
88
+ name = property.name
89
+ props[name] = self[name]
90
+ end
91
+ end
92
+
93
+ # Check if properties exist
94
+ #
95
+ # @api public
96
+ def empty?
97
+ @map.empty?
98
+ end
99
+
100
+ # @api private
101
+ def define_reader_method(property, method_name, visibility)
102
+ property_set = self
103
+ parent.send(:define_method, method_name) { property_set[property.name] }
104
+ parent.send(visibility, method_name)
105
+ end
106
+
107
+ # @api private
108
+ def define_writer_method(property, method_name, visibility)
109
+ property_set = self
110
+ parent.send(:define_method, method_name) do |value|
111
+ property_set[property.name]= value
112
+ end
113
+ parent.send(visibility, method_name)
114
+ end
115
+ end # PropertySet
116
+ end # Config
117
+ end # Api
118
+ end # Github