slack_resources 0.0.0 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (256) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +1 -66
  3. data/.circleci/preparation.rb +11 -0
  4. data/.rubocop.yml +2 -10
  5. data/Gemfile +1 -0
  6. data/Gemfile.lock +8 -8
  7. data/lib/{slack_resources/generator/event_api → event_api}/fetch.rb +0 -0
  8. data/lib/event_api/write.rb +364 -0
  9. data/lib/{slack_resources/raw_data/event_api/preset_schemas.json → schema.json} +0 -7
  10. data/lib/slack_resources/{raw_data → resources}/event_api/_added_examples/event_callback.json +0 -0
  11. data/lib/slack_resources/resources/event_api/details/app_mention.json +46 -67
  12. data/lib/slack_resources/resources/event_api/details/app_rate_limited.json +41 -59
  13. data/lib/slack_resources/resources/event_api/details/app_uninstalled.json +16 -22
  14. data/lib/slack_resources/resources/event_api/details/channel_archive.json +30 -42
  15. data/lib/slack_resources/resources/event_api/details/channel_created.json +54 -63
  16. data/lib/slack_resources/resources/event_api/details/channel_deleted.json +23 -32
  17. data/lib/slack_resources/resources/event_api/details/channel_history_changed.json +33 -48
  18. data/lib/slack_resources/resources/event_api/details/channel_left.json +23 -32
  19. data/lib/slack_resources/resources/event_api/details/channel_rename.json +49 -58
  20. data/lib/slack_resources/resources/event_api/details/channel_unarchive.json +30 -42
  21. data/lib/slack_resources/resources/event_api/details/dnd_updated.json +54 -66
  22. data/lib/slack_resources/resources/event_api/details/dnd_updated_user.json +50 -62
  23. data/lib/slack_resources/resources/event_api/details/email_domain_changed.json +27 -39
  24. data/lib/slack_resources/resources/event_api/details/emoji_changed.json +44 -85
  25. data/lib/slack_resources/resources/event_api/details/event_callback.json +72 -102
  26. data/lib/slack_resources/resources/event_api/details/file_change.json +37 -49
  27. data/lib/slack_resources/resources/event_api/details/file_comment_added.json +46 -61
  28. data/lib/slack_resources/resources/event_api/details/file_comment_deleted.json +44 -59
  29. data/lib/slack_resources/resources/event_api/details/file_comment_edited.json +46 -61
  30. data/lib/slack_resources/resources/event_api/details/file_created.json +37 -49
  31. data/lib/slack_resources/resources/event_api/details/file_deleted.json +29 -41
  32. data/lib/slack_resources/resources/event_api/details/file_public.json +37 -49
  33. data/lib/slack_resources/resources/event_api/details/file_shared.json +37 -49
  34. data/lib/slack_resources/resources/event_api/details/file_unshared.json +37 -49
  35. data/lib/slack_resources/resources/event_api/details/grid_migration_finished.json +22 -31
  36. data/lib/slack_resources/resources/event_api/details/grid_migration_started.json +22 -31
  37. data/lib/slack_resources/resources/event_api/details/group_archive.json +23 -32
  38. data/lib/slack_resources/resources/event_api/details/group_close.json +30 -42
  39. data/lib/slack_resources/resources/event_api/details/group_deleted.json +23 -32
  40. data/lib/slack_resources/resources/event_api/details/group_history_changed.json +33 -48
  41. data/lib/slack_resources/resources/event_api/details/group_left.json +23 -32
  42. data/lib/slack_resources/resources/event_api/details/group_open.json +30 -42
  43. data/lib/slack_resources/resources/event_api/details/group_rename.json +49 -58
  44. data/lib/slack_resources/resources/event_api/details/group_unarchive.json +23 -32
  45. data/lib/slack_resources/resources/event_api/details/im_close.json +30 -42
  46. data/lib/slack_resources/resources/event_api/details/im_created.json +41 -53
  47. data/lib/slack_resources/resources/event_api/details/im_history_changed.json +33 -48
  48. data/lib/slack_resources/resources/event_api/details/im_open.json +30 -42
  49. data/lib/slack_resources/resources/event_api/details/link_shared.json +83 -107
  50. data/lib/slack_resources/resources/event_api/details/member_joined_channel.json +48 -66
  51. data/lib/slack_resources/resources/event_api/details/member_left_channel.json +43 -58
  52. data/lib/slack_resources/resources/event_api/details/message.app_home.json +53 -74
  53. data/lib/slack_resources/resources/event_api/details/message.channels.json +56 -74
  54. data/lib/slack_resources/resources/event_api/details/message.groups.json +56 -74
  55. data/lib/slack_resources/resources/event_api/details/message.im.json +56 -74
  56. data/lib/slack_resources/resources/event_api/details/message.json +60 -106
  57. data/lib/slack_resources/resources/event_api/details/message.mpim.json +56 -74
  58. data/lib/slack_resources/resources/event_api/details/pin_added.json +47 -65
  59. data/lib/slack_resources/resources/event_api/details/pin_removed.json +52 -73
  60. data/lib/slack_resources/resources/event_api/details/reaction_added.json +73 -94
  61. data/lib/slack_resources/resources/event_api/details/reaction_removed.json +73 -94
  62. data/lib/slack_resources/resources/event_api/details/resources_added.json +115 -127
  63. data/lib/slack_resources/resources/event_api/details/resources_removed.json +115 -127
  64. data/lib/slack_resources/resources/event_api/details/scope_denied.json +59 -74
  65. data/lib/slack_resources/resources/event_api/details/scope_granted.json +59 -74
  66. data/lib/slack_resources/resources/event_api/details/star_added.json +41 -56
  67. data/lib/slack_resources/resources/event_api/details/star_removed.json +41 -56
  68. data/lib/slack_resources/resources/event_api/details/subteam_created.json +168 -177
  69. data/lib/slack_resources/resources/event_api/details/subteam_members_changed.json +82 -118
  70. data/lib/slack_resources/resources/event_api/details/subteam_self_added.json +22 -31
  71. data/lib/slack_resources/resources/event_api/details/subteam_self_removed.json +22 -31
  72. data/lib/slack_resources/resources/event_api/details/subteam_updated.json +180 -189
  73. data/lib/slack_resources/resources/event_api/details/team_domain_change.json +26 -38
  74. data/lib/slack_resources/resources/event_api/details/team_join.json +26 -35
  75. data/lib/slack_resources/resources/event_api/details/team_rename.json +23 -32
  76. data/lib/slack_resources/resources/event_api/details/tokens_revoked.json +49 -58
  77. data/lib/slack_resources/resources/event_api/details/url_verification.json +26 -32
  78. data/lib/slack_resources/resources/event_api/details/user_change.json +26 -35
  79. data/lib/slack_resources/resources/event_api/details/user_resource_denied.json +64 -82
  80. data/lib/slack_resources/resources/event_api/details/user_resource_granted.json +64 -82
  81. data/lib/slack_resources/resources/event_api/details/user_resource_removed.json +29 -41
  82. data/lib/slack_resources/resources/event_api/examples/app_mention.json +4 -4
  83. data/lib/slack_resources/resources/event_api/examples/app_rate_limited.json +4 -4
  84. data/lib/slack_resources/resources/event_api/examples/app_uninstalled.json +9 -1
  85. data/lib/slack_resources/resources/event_api/examples/channel_archive.json +1 -1
  86. data/lib/slack_resources/resources/event_api/examples/channel_created.json +2 -2
  87. data/lib/slack_resources/resources/event_api/examples/channel_deleted.json +2 -2
  88. data/lib/slack_resources/resources/event_api/examples/channel_history_changed.json +2 -2
  89. data/lib/slack_resources/resources/event_api/examples/channel_left.json +2 -2
  90. data/lib/slack_resources/resources/event_api/examples/channel_rename.json +2 -2
  91. data/lib/slack_resources/resources/event_api/examples/channel_unarchive.json +1 -1
  92. data/lib/slack_resources/resources/event_api/examples/dnd_updated.json +3 -3
  93. data/lib/slack_resources/resources/event_api/examples/dnd_updated_user.json +3 -3
  94. data/lib/slack_resources/resources/event_api/examples/email_domain_changed.json +2 -2
  95. data/lib/slack_resources/resources/event_api/examples/emoji_changed.json +5 -4
  96. data/lib/slack_resources/resources/event_api/examples/event_callback.json +6 -7
  97. data/lib/slack_resources/resources/event_api/examples/file_change.json +3 -3
  98. data/lib/slack_resources/resources/event_api/examples/file_comment_added.json +3 -3
  99. data/lib/slack_resources/resources/event_api/examples/file_comment_deleted.json +3 -3
  100. data/lib/slack_resources/resources/event_api/examples/file_comment_edited.json +3 -3
  101. data/lib/slack_resources/resources/event_api/examples/file_created.json +3 -3
  102. data/lib/slack_resources/resources/event_api/examples/file_deleted.json +2 -2
  103. data/lib/slack_resources/resources/event_api/examples/file_public.json +3 -3
  104. data/lib/slack_resources/resources/event_api/examples/file_shared.json +3 -3
  105. data/lib/slack_resources/resources/event_api/examples/file_unshared.json +3 -3
  106. data/lib/slack_resources/resources/event_api/examples/grid_migration_finished.json +10 -2
  107. data/lib/slack_resources/resources/event_api/examples/grid_migration_started.json +10 -2
  108. data/lib/slack_resources/resources/event_api/examples/group_archive.json +2 -2
  109. data/lib/slack_resources/resources/event_api/examples/group_close.json +2 -2
  110. data/lib/slack_resources/resources/event_api/examples/group_deleted.json +2 -2
  111. data/lib/slack_resources/resources/event_api/examples/group_history_changed.json +2 -2
  112. data/lib/slack_resources/resources/event_api/examples/group_left.json +2 -2
  113. data/lib/slack_resources/resources/event_api/examples/group_open.json +2 -2
  114. data/lib/slack_resources/resources/event_api/examples/group_rename.json +2 -2
  115. data/lib/slack_resources/resources/event_api/examples/group_unarchive.json +2 -2
  116. data/lib/slack_resources/resources/event_api/examples/im_close.json +2 -2
  117. data/lib/slack_resources/resources/event_api/examples/im_created.json +3 -3
  118. data/lib/slack_resources/resources/event_api/examples/im_history_changed.json +2 -2
  119. data/lib/slack_resources/resources/event_api/examples/im_open.json +2 -2
  120. data/lib/slack_resources/resources/event_api/examples/link_shared.json +30 -18
  121. data/lib/slack_resources/resources/event_api/examples/member_joined_channel.json +3 -3
  122. data/lib/slack_resources/resources/event_api/examples/member_left_channel.json +3 -3
  123. data/lib/slack_resources/resources/event_api/examples/message.app_home.json +18 -7
  124. data/lib/slack_resources/resources/event_api/examples/message.channels.json +18 -7
  125. data/lib/slack_resources/resources/event_api/examples/message.groups.json +18 -7
  126. data/lib/slack_resources/resources/event_api/examples/message.im.json +18 -7
  127. data/lib/slack_resources/resources/event_api/examples/message.json +4 -6
  128. data/lib/slack_resources/resources/event_api/examples/message.mpim.json +18 -7
  129. data/lib/slack_resources/resources/event_api/examples/pin_added.json +3 -3
  130. data/lib/slack_resources/resources/event_api/examples/pin_removed.json +4 -4
  131. data/lib/slack_resources/resources/event_api/examples/reaction_added.json +5 -5
  132. data/lib/slack_resources/resources/event_api/examples/reaction_removed.json +5 -5
  133. data/lib/slack_resources/resources/event_api/examples/resources_added.json +28 -17
  134. data/lib/slack_resources/resources/event_api/examples/resources_removed.json +28 -17
  135. data/lib/slack_resources/resources/event_api/examples/scope_denied.json +17 -6
  136. data/lib/slack_resources/resources/event_api/examples/scope_granted.json +17 -6
  137. data/lib/slack_resources/resources/event_api/examples/star_added.json +3 -3
  138. data/lib/slack_resources/resources/event_api/examples/star_removed.json +3 -3
  139. data/lib/slack_resources/resources/event_api/examples/subteam_created.json +2 -2
  140. data/lib/slack_resources/resources/event_api/examples/subteam_members_changed.json +6 -6
  141. data/lib/slack_resources/resources/event_api/examples/subteam_self_added.json +2 -2
  142. data/lib/slack_resources/resources/event_api/examples/subteam_self_removed.json +2 -2
  143. data/lib/slack_resources/resources/event_api/examples/subteam_updated.json +2 -2
  144. data/lib/slack_resources/resources/event_api/examples/team_domain_change.json +2 -2
  145. data/lib/slack_resources/resources/event_api/examples/team_rename.json +2 -2
  146. data/lib/slack_resources/resources/event_api/examples/tokens_revoked.json +16 -8
  147. data/lib/slack_resources/resources/event_api/examples/url_verification.json +1 -1
  148. data/lib/slack_resources/resources/event_api/examples/user_resource_denied.json +17 -6
  149. data/lib/slack_resources/resources/event_api/examples/user_resource_granted.json +17 -6
  150. data/lib/slack_resources/resources/event_api/examples/user_resource_removed.json +14 -3
  151. data/lib/slack_resources/{raw_data → resources}/event_api/meta.json +72 -0
  152. data/lib/slack_resources/resources/event_api/schema.json +105 -257
  153. data/lib/slack_resources/resources/event_api/schemas/emoji_changed.json +9 -27
  154. data/lib/slack_resources/resources/event_api/schemas/member_joined_channel.json +4 -1
  155. data/lib/slack_resources/resources/event_api/schemas/member_left_channel.json +4 -1
  156. data/lib/slack_resources/resources/event_api/schemas/message.app_home.json +4 -1
  157. data/lib/slack_resources/resources/event_api/schemas/message.channels.json +7 -1
  158. data/lib/slack_resources/resources/event_api/schemas/message.groups.json +7 -1
  159. data/lib/slack_resources/resources/event_api/schemas/message.im.json +7 -1
  160. data/lib/slack_resources/resources/event_api/schemas/message.json +17 -39
  161. data/lib/slack_resources/resources/event_api/schemas/message.mpim.json +7 -1
  162. data/lib/slack_resources/resources/event_api/schemas/resources_added.json +15 -15
  163. data/lib/slack_resources/resources/event_api/schemas/resources_removed.json +15 -15
  164. data/lib/slack_resources/resources/event_api/schemas/team_rename.json +2 -2
  165. data/lib/slack_resources/resources/event_api/schemas/url_verification.json +6 -0
  166. data/lib/slack_resources/resources/event_api/summary.json +3397 -4884
  167. data/lib/slack_resources/version.rb +3 -0
  168. data/lib/slack_resources.rb +1 -9
  169. data/slack_resources.gemspec +2 -4
  170. metadata +10 -93
  171. data/.circleci/gem_deployment.rb +0 -53
  172. data/lib/generate_event_api_resources.rb +0 -8
  173. data/lib/slack_resources/generator/event_api/examples_preparation.rb +0 -71
  174. data/lib/slack_resources/generator/event_api/strong_hash.rb +0 -25
  175. data/lib/slack_resources/generator/event_api/to_schema.rb +0 -200
  176. data/lib/slack_resources/generator/event_api/type_detection.rb +0 -272
  177. data/lib/slack_resources/generator/event_api/write.rb +0 -123
  178. data/lib/slack_resources/raw_data/event_api/_added_examples/emoji_changed.add.json +0 -7
  179. data/lib/slack_resources/raw_data/event_api/_added_examples/emoji_changed.remove.json +0 -6
  180. data/lib/slack_resources/raw_data/event_api/examples/app_mention.json +0 -8
  181. data/lib/slack_resources/raw_data/event_api/examples/app_rate_limited.json +0 -7
  182. data/lib/slack_resources/raw_data/event_api/examples/app_uninstalled.json +0 -11
  183. data/lib/slack_resources/raw_data/event_api/examples/channel_archive.json +0 -5
  184. data/lib/slack_resources/raw_data/event_api/examples/channel_created.json +0 -9
  185. data/lib/slack_resources/raw_data/event_api/examples/channel_deleted.json +0 -4
  186. data/lib/slack_resources/raw_data/event_api/examples/channel_history_changed.json +0 -6
  187. data/lib/slack_resources/raw_data/event_api/examples/channel_left.json +0 -4
  188. data/lib/slack_resources/raw_data/event_api/examples/channel_rename.json +0 -8
  189. data/lib/slack_resources/raw_data/event_api/examples/channel_unarchive.json +0 -5
  190. data/lib/slack_resources/raw_data/event_api/examples/dnd_updated.json +0 -11
  191. data/lib/slack_resources/raw_data/event_api/examples/dnd_updated_user.json +0 -9
  192. data/lib/slack_resources/raw_data/event_api/examples/email_domain_changed.json +0 -5
  193. data/lib/slack_resources/raw_data/event_api/examples/emoji_changed.json +0 -8
  194. data/lib/slack_resources/raw_data/event_api/examples/file_change.json +0 -7
  195. data/lib/slack_resources/raw_data/event_api/examples/file_comment_added.json +0 -9
  196. data/lib/slack_resources/raw_data/event_api/examples/file_comment_deleted.json +0 -8
  197. data/lib/slack_resources/raw_data/event_api/examples/file_comment_edited.json +0 -9
  198. data/lib/slack_resources/raw_data/event_api/examples/file_created.json +0 -7
  199. data/lib/slack_resources/raw_data/event_api/examples/file_deleted.json +0 -5
  200. data/lib/slack_resources/raw_data/event_api/examples/file_public.json +0 -7
  201. data/lib/slack_resources/raw_data/event_api/examples/file_shared.json +0 -7
  202. data/lib/slack_resources/raw_data/event_api/examples/file_unshared.json +0 -7
  203. data/lib/slack_resources/raw_data/event_api/examples/grid_migration_finished.json +0 -12
  204. data/lib/slack_resources/raw_data/event_api/examples/grid_migration_started.json +0 -12
  205. data/lib/slack_resources/raw_data/event_api/examples/group_archive.json +0 -4
  206. data/lib/slack_resources/raw_data/event_api/examples/group_close.json +0 -5
  207. data/lib/slack_resources/raw_data/event_api/examples/group_deleted.json +0 -4
  208. data/lib/slack_resources/raw_data/event_api/examples/group_history_changed.json +0 -6
  209. data/lib/slack_resources/raw_data/event_api/examples/group_left.json +0 -4
  210. data/lib/slack_resources/raw_data/event_api/examples/group_open.json +0 -5
  211. data/lib/slack_resources/raw_data/event_api/examples/group_rename.json +0 -8
  212. data/lib/slack_resources/raw_data/event_api/examples/group_unarchive.json +0 -4
  213. data/lib/slack_resources/raw_data/event_api/examples/im_close.json +0 -5
  214. data/lib/slack_resources/raw_data/event_api/examples/im_created.json +0 -6
  215. data/lib/slack_resources/raw_data/event_api/examples/im_history_changed.json +0 -6
  216. data/lib/slack_resources/raw_data/event_api/examples/im_open.json +0 -5
  217. data/lib/slack_resources/raw_data/event_api/examples/link_shared.json +0 -33
  218. data/lib/slack_resources/raw_data/event_api/examples/member_joined_channel.json +0 -8
  219. data/lib/slack_resources/raw_data/event_api/examples/member_left_channel.json +0 -7
  220. data/lib/slack_resources/raw_data/event_api/examples/message.app_home.json +0 -20
  221. data/lib/slack_resources/raw_data/event_api/examples/message.channels.json +0 -20
  222. data/lib/slack_resources/raw_data/event_api/examples/message.groups.json +0 -20
  223. data/lib/slack_resources/raw_data/event_api/examples/message.im.json +0 -20
  224. data/lib/slack_resources/raw_data/event_api/examples/message.json +0 -7
  225. data/lib/slack_resources/raw_data/event_api/examples/message.mpim.json +0 -20
  226. data/lib/slack_resources/raw_data/event_api/examples/pin_added.json +0 -8
  227. data/lib/slack_resources/raw_data/event_api/examples/pin_removed.json +0 -9
  228. data/lib/slack_resources/raw_data/event_api/examples/reaction_added.json +0 -12
  229. data/lib/slack_resources/raw_data/event_api/examples/reaction_removed.json +0 -12
  230. data/lib/slack_resources/raw_data/event_api/examples/resources_added.json +0 -31
  231. data/lib/slack_resources/raw_data/event_api/examples/resources_removed.json +0 -31
  232. data/lib/slack_resources/raw_data/event_api/examples/scope_denied.json +0 -20
  233. data/lib/slack_resources/raw_data/event_api/examples/scope_granted.json +0 -20
  234. data/lib/slack_resources/raw_data/event_api/examples/star_added.json +0 -7
  235. data/lib/slack_resources/raw_data/event_api/examples/star_removed.json +0 -7
  236. data/lib/slack_resources/raw_data/event_api/examples/subteam_created.json +0 -28
  237. data/lib/slack_resources/raw_data/event_api/examples/subteam_members_changed.json +0 -17
  238. data/lib/slack_resources/raw_data/event_api/examples/subteam_self_added.json +0 -4
  239. data/lib/slack_resources/raw_data/event_api/examples/subteam_self_removed.json +0 -4
  240. data/lib/slack_resources/raw_data/event_api/examples/subteam_updated.json +0 -34
  241. data/lib/slack_resources/raw_data/event_api/examples/team_domain_change.json +0 -5
  242. data/lib/slack_resources/raw_data/event_api/examples/team_join.json +0 -5
  243. data/lib/slack_resources/raw_data/event_api/examples/team_rename.json +0 -4
  244. data/lib/slack_resources/raw_data/event_api/examples/tokens_revoked.json +0 -19
  245. data/lib/slack_resources/raw_data/event_api/examples/url_verification.json +0 -5
  246. data/lib/slack_resources/raw_data/event_api/examples/user_change.json +0 -5
  247. data/lib/slack_resources/raw_data/event_api/examples/user_resource_denied.json +0 -20
  248. data/lib/slack_resources/raw_data/event_api/examples/user_resource_granted.json +0 -20
  249. data/lib/slack_resources/raw_data/event_api/examples/user_resource_removed.json +0 -16
  250. data/lib/slack_resources/resources/event_api/details/emoji_changed.add.json +0 -78
  251. data/lib/slack_resources/resources/event_api/details/emoji_changed.remove.json +0 -77
  252. data/lib/slack_resources/resources/event_api/examples/emoji_changed.add.json +0 -7
  253. data/lib/slack_resources/resources/event_api/examples/emoji_changed.remove.json +0 -8
  254. data/lib/slack_resources/resources/event_api/schemas/emoji_changed.add.json +0 -42
  255. data/lib/slack_resources/resources/event_api/schemas/emoji_changed.remove.json +0 -40
  256. data/lib/slack_resources/resources/event_api.rb +0 -38
@@ -0,0 +1,3 @@
1
+ module SlackResources
2
+ VERSION = '0.1.0'.freeze
3
+ end
@@ -1,11 +1,3 @@
1
1
  module SlackResources
2
- require 'slack_resources/version' if File.exist?('./lib/slack_resources/version')
3
-
4
- require 'slack_resources/generator/event_api/strong_hash'
5
- require 'slack_resources/generator/event_api/examples_preparation'
6
- require 'slack_resources/generator/event_api/to_schema'
7
- require 'slack_resources/generator/event_api/type_detection'
8
- require 'slack_resources/generator/event_api/write'
9
-
10
- require 'slack_resources/resources/event_api'
2
+ require 'slack_resources/version'
11
3
  end
@@ -1,12 +1,10 @@
1
1
  lib = File.expand_path('lib', __dir__)
2
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
-
4
- HAS_VERSION = File.exist?('./lib/slack_resources/version')
5
- require 'slack_resources/version' if HAS_VERSION
3
+ require 'slack_resources/version'
6
4
 
7
5
  Gem::Specification.new do |spec|
8
6
  spec.name = 'slack_resources'
9
- spec.version = HAS_VERSION ? SlackResources::VERSION : '0.0.0'
7
+ spec.version = SlackResources::VERSION
10
8
  spec.authors = ['mmmpa']
11
9
  spec.email = ['mmmpa.mmmpa@gmail.com']
12
10
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slack_resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - mmmpa
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-12-22 00:00:00.000000000 Z
11
+ date: 2018-12-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -130,97 +130,18 @@ extensions: []
130
130
  extra_rdoc_files: []
131
131
  files:
132
132
  - ".circleci/config.yml"
133
- - ".circleci/gem_deployment.rb"
133
+ - ".circleci/preparation.rb"
134
134
  - ".gitignore"
135
135
  - ".rubocop.yml"
136
136
  - Gemfile
137
137
  - Gemfile.lock
138
138
  - README.md
139
139
  - Rakefile
140
- - lib/generate_event_api_resources.rb
140
+ - lib/event_api/fetch.rb
141
+ - lib/event_api/write.rb
142
+ - lib/schema.json
141
143
  - lib/slack_resources.rb
142
- - lib/slack_resources/generator/event_api/examples_preparation.rb
143
- - lib/slack_resources/generator/event_api/fetch.rb
144
- - lib/slack_resources/generator/event_api/strong_hash.rb
145
- - lib/slack_resources/generator/event_api/to_schema.rb
146
- - lib/slack_resources/generator/event_api/type_detection.rb
147
- - lib/slack_resources/generator/event_api/write.rb
148
- - lib/slack_resources/raw_data/event_api/_added_examples/emoji_changed.add.json
149
- - lib/slack_resources/raw_data/event_api/_added_examples/emoji_changed.remove.json
150
- - lib/slack_resources/raw_data/event_api/_added_examples/event_callback.json
151
- - lib/slack_resources/raw_data/event_api/examples/app_mention.json
152
- - lib/slack_resources/raw_data/event_api/examples/app_rate_limited.json
153
- - lib/slack_resources/raw_data/event_api/examples/app_uninstalled.json
154
- - lib/slack_resources/raw_data/event_api/examples/channel_archive.json
155
- - lib/slack_resources/raw_data/event_api/examples/channel_created.json
156
- - lib/slack_resources/raw_data/event_api/examples/channel_deleted.json
157
- - lib/slack_resources/raw_data/event_api/examples/channel_history_changed.json
158
- - lib/slack_resources/raw_data/event_api/examples/channel_left.json
159
- - lib/slack_resources/raw_data/event_api/examples/channel_rename.json
160
- - lib/slack_resources/raw_data/event_api/examples/channel_unarchive.json
161
- - lib/slack_resources/raw_data/event_api/examples/dnd_updated.json
162
- - lib/slack_resources/raw_data/event_api/examples/dnd_updated_user.json
163
- - lib/slack_resources/raw_data/event_api/examples/email_domain_changed.json
164
- - lib/slack_resources/raw_data/event_api/examples/emoji_changed.json
165
- - lib/slack_resources/raw_data/event_api/examples/file_change.json
166
- - lib/slack_resources/raw_data/event_api/examples/file_comment_added.json
167
- - lib/slack_resources/raw_data/event_api/examples/file_comment_deleted.json
168
- - lib/slack_resources/raw_data/event_api/examples/file_comment_edited.json
169
- - lib/slack_resources/raw_data/event_api/examples/file_created.json
170
- - lib/slack_resources/raw_data/event_api/examples/file_deleted.json
171
- - lib/slack_resources/raw_data/event_api/examples/file_public.json
172
- - lib/slack_resources/raw_data/event_api/examples/file_shared.json
173
- - lib/slack_resources/raw_data/event_api/examples/file_unshared.json
174
- - lib/slack_resources/raw_data/event_api/examples/grid_migration_finished.json
175
- - lib/slack_resources/raw_data/event_api/examples/grid_migration_started.json
176
- - lib/slack_resources/raw_data/event_api/examples/group_archive.json
177
- - lib/slack_resources/raw_data/event_api/examples/group_close.json
178
- - lib/slack_resources/raw_data/event_api/examples/group_deleted.json
179
- - lib/slack_resources/raw_data/event_api/examples/group_history_changed.json
180
- - lib/slack_resources/raw_data/event_api/examples/group_left.json
181
- - lib/slack_resources/raw_data/event_api/examples/group_open.json
182
- - lib/slack_resources/raw_data/event_api/examples/group_rename.json
183
- - lib/slack_resources/raw_data/event_api/examples/group_unarchive.json
184
- - lib/slack_resources/raw_data/event_api/examples/im_close.json
185
- - lib/slack_resources/raw_data/event_api/examples/im_created.json
186
- - lib/slack_resources/raw_data/event_api/examples/im_history_changed.json
187
- - lib/slack_resources/raw_data/event_api/examples/im_open.json
188
- - lib/slack_resources/raw_data/event_api/examples/link_shared.json
189
- - lib/slack_resources/raw_data/event_api/examples/member_joined_channel.json
190
- - lib/slack_resources/raw_data/event_api/examples/member_left_channel.json
191
- - lib/slack_resources/raw_data/event_api/examples/message.app_home.json
192
- - lib/slack_resources/raw_data/event_api/examples/message.channels.json
193
- - lib/slack_resources/raw_data/event_api/examples/message.groups.json
194
- - lib/slack_resources/raw_data/event_api/examples/message.im.json
195
- - lib/slack_resources/raw_data/event_api/examples/message.json
196
- - lib/slack_resources/raw_data/event_api/examples/message.mpim.json
197
- - lib/slack_resources/raw_data/event_api/examples/pin_added.json
198
- - lib/slack_resources/raw_data/event_api/examples/pin_removed.json
199
- - lib/slack_resources/raw_data/event_api/examples/reaction_added.json
200
- - lib/slack_resources/raw_data/event_api/examples/reaction_removed.json
201
- - lib/slack_resources/raw_data/event_api/examples/resources_added.json
202
- - lib/slack_resources/raw_data/event_api/examples/resources_removed.json
203
- - lib/slack_resources/raw_data/event_api/examples/scope_denied.json
204
- - lib/slack_resources/raw_data/event_api/examples/scope_granted.json
205
- - lib/slack_resources/raw_data/event_api/examples/star_added.json
206
- - lib/slack_resources/raw_data/event_api/examples/star_removed.json
207
- - lib/slack_resources/raw_data/event_api/examples/subteam_created.json
208
- - lib/slack_resources/raw_data/event_api/examples/subteam_members_changed.json
209
- - lib/slack_resources/raw_data/event_api/examples/subteam_self_added.json
210
- - lib/slack_resources/raw_data/event_api/examples/subteam_self_removed.json
211
- - lib/slack_resources/raw_data/event_api/examples/subteam_updated.json
212
- - lib/slack_resources/raw_data/event_api/examples/team_domain_change.json
213
- - lib/slack_resources/raw_data/event_api/examples/team_join.json
214
- - lib/slack_resources/raw_data/event_api/examples/team_rename.json
215
- - lib/slack_resources/raw_data/event_api/examples/tokens_revoked.json
216
- - lib/slack_resources/raw_data/event_api/examples/url_verification.json
217
- - lib/slack_resources/raw_data/event_api/examples/user_change.json
218
- - lib/slack_resources/raw_data/event_api/examples/user_resource_denied.json
219
- - lib/slack_resources/raw_data/event_api/examples/user_resource_granted.json
220
- - lib/slack_resources/raw_data/event_api/examples/user_resource_removed.json
221
- - lib/slack_resources/raw_data/event_api/meta.json
222
- - lib/slack_resources/raw_data/event_api/preset_schemas.json
223
- - lib/slack_resources/resources/event_api.rb
144
+ - lib/slack_resources/resources/event_api/_added_examples/event_callback.json
224
145
  - lib/slack_resources/resources/event_api/details/app_mention.json
225
146
  - lib/slack_resources/resources/event_api/details/app_rate_limited.json
226
147
  - lib/slack_resources/resources/event_api/details/app_uninstalled.json
@@ -234,9 +155,7 @@ files:
234
155
  - lib/slack_resources/resources/event_api/details/dnd_updated.json
235
156
  - lib/slack_resources/resources/event_api/details/dnd_updated_user.json
236
157
  - lib/slack_resources/resources/event_api/details/email_domain_changed.json
237
- - lib/slack_resources/resources/event_api/details/emoji_changed.add.json
238
158
  - lib/slack_resources/resources/event_api/details/emoji_changed.json
239
- - lib/slack_resources/resources/event_api/details/emoji_changed.remove.json
240
159
  - lib/slack_resources/resources/event_api/details/event_callback.json
241
160
  - lib/slack_resources/resources/event_api/details/file_change.json
242
161
  - lib/slack_resources/resources/event_api/details/file_comment_added.json
@@ -307,9 +226,7 @@ files:
307
226
  - lib/slack_resources/resources/event_api/examples/dnd_updated.json
308
227
  - lib/slack_resources/resources/event_api/examples/dnd_updated_user.json
309
228
  - lib/slack_resources/resources/event_api/examples/email_domain_changed.json
310
- - lib/slack_resources/resources/event_api/examples/emoji_changed.add.json
311
229
  - lib/slack_resources/resources/event_api/examples/emoji_changed.json
312
- - lib/slack_resources/resources/event_api/examples/emoji_changed.remove.json
313
230
  - lib/slack_resources/resources/event_api/examples/event_callback.json
314
231
  - lib/slack_resources/resources/event_api/examples/file_change.json
315
232
  - lib/slack_resources/resources/event_api/examples/file_comment_added.json
@@ -367,6 +284,7 @@ files:
367
284
  - lib/slack_resources/resources/event_api/examples/user_resource_denied.json
368
285
  - lib/slack_resources/resources/event_api/examples/user_resource_granted.json
369
286
  - lib/slack_resources/resources/event_api/examples/user_resource_removed.json
287
+ - lib/slack_resources/resources/event_api/meta.json
370
288
  - lib/slack_resources/resources/event_api/schema.json
371
289
  - lib/slack_resources/resources/event_api/schemas/app_mention.json
372
290
  - lib/slack_resources/resources/event_api/schemas/app_rate_limited.json
@@ -381,9 +299,7 @@ files:
381
299
  - lib/slack_resources/resources/event_api/schemas/dnd_updated.json
382
300
  - lib/slack_resources/resources/event_api/schemas/dnd_updated_user.json
383
301
  - lib/slack_resources/resources/event_api/schemas/email_domain_changed.json
384
- - lib/slack_resources/resources/event_api/schemas/emoji_changed.add.json
385
302
  - lib/slack_resources/resources/event_api/schemas/emoji_changed.json
386
- - lib/slack_resources/resources/event_api/schemas/emoji_changed.remove.json
387
303
  - lib/slack_resources/resources/event_api/schemas/event_callback.json
388
304
  - lib/slack_resources/resources/event_api/schemas/file_change.json
389
305
  - lib/slack_resources/resources/event_api/schemas/file_comment_added.json
@@ -442,6 +358,7 @@ files:
442
358
  - lib/slack_resources/resources/event_api/schemas/user_resource_granted.json
443
359
  - lib/slack_resources/resources/event_api/schemas/user_resource_removed.json
444
360
  - lib/slack_resources/resources/event_api/summary.json
361
+ - lib/slack_resources/version.rb
445
362
  - slack_resources.gemspec
446
363
  homepage: https://github.com/mmmpa/slack_resources
447
364
  licenses:
@@ -463,7 +380,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
463
380
  version: '0'
464
381
  requirements: []
465
382
  rubyforge_project:
466
- rubygems_version: 2.7.7
383
+ rubygems_version: 2.7.6
467
384
  signing_key:
468
385
  specification_version: 4
469
386
  summary: slack resources
@@ -1,53 +0,0 @@
1
- class GemDeployment
2
- CREDENTIAL_DIR_PATH = '~/.gem/credentials'
3
- CREDENTIAL_FILE_PATH = '~/.gem/credentials'
4
- VERSION_FILE_PATH = './lib/slack_resources/version.rb'
5
-
6
- def initialize(api_key = '', version = 'tiny')
7
- @api_key = api_key
8
- @version = version
9
- end
10
-
11
- def execute!
12
- major, minor, tiny = fetch_version
13
-
14
- major += 1 if major?
15
- minor += 1 if minor?
16
- tiny += 1 if tiny?
17
-
18
- next_version = [major, minor, tiny].join('.')
19
-
20
- `echo "---\n:rubygems_api_key: #{@api_key}\n" > ~/.gem/credentials && chmod 600 ~/.gem/credentials`
21
-
22
- File.write(VERSION_FILE_PATH, <<~VER)
23
- module SlackResources
24
- VERSION = '#{next_version}'.freeze
25
- end
26
- VER
27
-
28
- result = `gem build slack_resources.gemspec`
29
- puts result
30
- gem_file = result.match(/File: *(.+)\n/m)[1]
31
- puts `gem push #{gem_file}`
32
- end
33
-
34
- private
35
-
36
- def fetch_version
37
- `gem search slack_resources`.match(/\(([\d.]+)\)/)[1].split('.').map(&:to_i)
38
- end
39
-
40
- def major?
41
- @version == 'major'
42
- end
43
-
44
- def minor?
45
- @version == 'minor'
46
- end
47
-
48
- def tiny?
49
- @version == 'tiny'
50
- end
51
- end
52
-
53
- GemDeployment.new(*ARGV).execute! if __FILE__ == $0
@@ -1,8 +0,0 @@
1
- require 'bundler/setup'
2
- require 'slack_resources'
3
-
4
- FileUtils.rm_r('./lib/slack_resources/resources/event_api')
5
- SlackResources::Generator::Writer.new(
6
- output_dir: './lib/slack_resources/resources/event_api',
7
- data_dir: './lib/slack_resources/raw_data/event_api'
8
- ).execute!
@@ -1,71 +0,0 @@
1
- module SlackResources
2
- module Generator
3
- class ExamplePreparation
4
- using StrongHash
5
-
6
- def initialize(examples_dir:, added_examples_dir:)
7
- @added_examples_dir = added_examples_dir
8
- @examples_dir = examples_dir
9
- end
10
-
11
- def execute! # rubocop:disable Metrics/AbcSize
12
- single_events = Set.new(raw_examples.map(&:first))
13
-
14
- defined = Set.new
15
- event_typed_examples = {}
16
- alt_typed_examples = {}
17
-
18
- raw_examples.each do |alt_event_type, event_type, example|
19
- example['_raw_example'] = JSON.parse(example.to_json)
20
- event_typed_examples.protect_merge!(event_type => example)
21
- alt_typed_examples[alt_event_type] = JSON.parse(example.to_json)
22
-
23
- next if defined.add?(event_type)
24
-
25
- single_events.delete(event_type)
26
- defined_example = event_typed_examples[event_type]
27
-
28
- Set.new(defined_example.keys + example.keys).each do |k|
29
- next if k == '_raw_example'
30
-
31
- defined_value = defined_example[k]
32
- additional_value = example[k]
33
-
34
- next if defined_value == additional_value
35
-
36
- if defined_value.is_a?(Hash) && defined_value[TypeDetection::SPECIAL_TYPE] == TypeDetection::MULTIPLE_EXAMPLES
37
- (defined_value['items'] << additional_value).sort! { |a, b| a.to_s <=> b.to_s }
38
- else
39
- defined_example.merge!(
40
- k => {
41
- TypeDetection::SPECIAL_TYPE => TypeDetection::MULTIPLE_EXAMPLES,
42
- 'target' => k,
43
- 'items' => [defined_value, additional_value].sort! { |a, b| a.to_s <=> b.to_s },
44
- }
45
- )
46
- end
47
- end
48
- end
49
-
50
- alt_typed_examples.select { |k, _| single_events.include?(k) }.protect_merge!(event_typed_examples)
51
- end
52
-
53
- private
54
-
55
- def all_files
56
- Dir.glob(@added_examples_dir.join('**/*.json')) + Dir.glob(@examples_dir.join('**/*.json'))
57
- end
58
-
59
- def raw_examples
60
- @raw_examples ||= all_files.map do |f|
61
- example = JSON.parse(File.read(f))
62
- alt_event_type = File.basename(f, '.json')
63
- event_body = example['event'].presence || example
64
- event_type = event_body['type']
65
-
66
- [alt_event_type, event_type, event_body.key_ordered]
67
- end
68
- end
69
- end
70
- end
71
- end
@@ -1,25 +0,0 @@
1
- module SlackResources
2
- module Generator
3
- module StrongHash
4
- refine Hash do
5
- def protect_merge!(b)
6
- b.keys.map do |new_key|
7
- if self[new_key]
8
- self[new_key] = b[new_key] if b[new_key].is_a?(Hash) && b[new_key]['type'].is_a?(Array)
9
- else
10
- self[new_key] = b[new_key]
11
- end
12
- end
13
-
14
- self
15
- end
16
-
17
- def key_ordered
18
- keys.sort.inject({}) do |a, k|
19
- a.merge!(k => self[k])
20
- end
21
- end
22
- end
23
- end
24
- end
25
- end
@@ -1,200 +0,0 @@
1
- require 'json'
2
- require 'active_support/core_ext/object/blank'
3
- require 'active_support/core_ext/hash/keys'
4
-
5
- module SlackResources
6
- module Generator
7
- class ToSchema
8
- using StrongHash
9
-
10
- def initialize(example:, url:, preset:, key: 'root', defined: {}, defined_used: Set.new, parent: {}, root: nil)
11
- @example = JSON.parse(example.to_json).key_ordered
12
- @url = url
13
- @preset = preset
14
- @key = key
15
- @defined = defined
16
- @defined_used = defined_used
17
- @parent = parent
18
- @root = root || @example
19
- end
20
-
21
- def execute!
22
- properties = @example.inject({}) do |a, (prop_name, value)|
23
- type = TypeDetection.new(
24
- parent_key: @key,
25
- to_schema_instance: self,
26
- prop_name: prop_name,
27
- value: value,
28
- container: @example,
29
- preset: @preset
30
- ).execute!
31
-
32
- @defined_used << type if type.is_a?(String)
33
-
34
- definition =
35
- case
36
- when TypeDetection.default_type?(type)
37
- { 'type' => type }
38
- when detail?(type)
39
- type
40
- when array_type?(type)
41
- define_as_array(type, value)
42
- else
43
- ref_to(type)
44
- end
45
-
46
- a.merge(prop_name => definition)
47
- end
48
-
49
- [
50
- {
51
- 'type' => 'object',
52
- 'description' => properties.blank? ? "definition snipped. learn more: #{@url}" : '(defined by script)',
53
- 'properties' => properties,
54
- },
55
- @defined,
56
- @defined_used,
57
- ]
58
- end
59
-
60
- def root_schema?
61
- @root == @example
62
- end
63
-
64
- def root_type
65
- @root['type']
66
- end
67
-
68
- def root_type_prefix
69
- @root_type_prefix ||= root_type.split('_').shift
70
- end
71
-
72
- def array_type?(type)
73
- type.to_s[0..1] == '[]'
74
- end
75
-
76
- def detail?(type)
77
- type.is_a?(Hash)
78
- end
79
-
80
- def define_as_array(array_type, values)
81
- type = array_type[2..-1]
82
-
83
- if TypeDetection.default_type?(type)
84
- return {
85
- 'type' => 'array',
86
- 'items' => {
87
- 'type' => type,
88
- },
89
- }
90
- end
91
-
92
- if values.first.is_a?(Hash)
93
- to_child_schema(
94
- prop_name: type,
95
- example: values.first,
96
- key: type,
97
- parent: @example
98
- )
99
- elsif values.first.is_a?(String)
100
- define_string(type)
101
- end
102
-
103
- {
104
- 'type' => 'array',
105
- 'items' => ref_to(type),
106
- }
107
- end
108
-
109
- def define_object(k, v, types)
110
- ref_key = k == 'item' ? "#{root_type_prefix}_item" : k
111
-
112
- to_child_schema(
113
- prop_name: ref_key,
114
- example: v,
115
- key: k,
116
- parent: types
117
- )
118
-
119
- ref_key
120
- end
121
-
122
- def define_special_type(prop_name, value, container, const)
123
- @defined_used << prop_name
124
-
125
- return prop_name if @parent[prop_name]
126
-
127
- types = value['items'].map { |v| detect_default_type(prop_name, v, container) }.uniq
128
-
129
- @defined[prop_name] =
130
- if const
131
- { 'type' => normalize_type(types), enum: value['items'].uniq }
132
- else
133
- { 'type' => normalize_type(types) }
134
- end
135
-
136
- prop_name
137
- end
138
-
139
- def normalize_type(types)
140
- types.size == 1 ? types[0] : types
141
- end
142
-
143
- def define_string(prop_name)
144
- define_default_type(prop_name, 'string', nil)
145
- end
146
-
147
- def define_default_type(prop_name, value, container, const = false)
148
- @defined.protect_merge!(
149
- prop_name => {
150
- 'type' => detect_default_type(prop_name, value, container, const),
151
- }
152
- )
153
- @defined_used << prop_name
154
-
155
- ref_to(prop_name)
156
- end
157
-
158
- def detect_default_type(prop_name, value, container, const = false)
159
- return define_special_type(prop_name, value, container, const) if value.is_a?(Hash) && value[TypeDetection::SPECIAL_TYPE] == TypeDetection::MULTIPLE_EXAMPLES
160
-
161
- case value
162
- when Integer
163
- 'number'
164
- when Array
165
- 'array'
166
- when Hash
167
- define_object(prop_name, value, container)
168
- when true, false
169
- 'boolean'
170
- when nil
171
- 'null'
172
- else
173
- 'string'
174
- end
175
- end
176
-
177
- def ref_to(type)
178
- { '$ref' => "#/definitions/#{type}" }
179
- end
180
-
181
- def to_child_schema(params)
182
- prop_name = params.delete(:prop_name)
183
- SlackResources::Generator::ToSchema.new(
184
- example: @example,
185
- url: @url,
186
- preset: @preset,
187
- key: @key,
188
- defined: @defined,
189
- defined_used: @defined_used,
190
- parent: @parent,
191
- root: @root,
192
- **params
193
- ).execute!.tap do |schema,|
194
- @defined_used << prop_name
195
- @defined[prop_name] = schema
196
- end
197
- end
198
- end
199
- end
200
- end