discorb 0.16.0 → 0.18.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (199) hide show
  1. checksums.yaml +4 -4
  2. data/.gitattributes +1 -0
  3. data/.github/workflows/build_main.yml +2 -2
  4. data/.github/workflows/build_version.yml +1 -1
  5. data/.github/workflows/codeql-analysis.yml +1 -1
  6. data/.github/workflows/lint-push.yml +3 -5
  7. data/.github/workflows/lint.yml +2 -4
  8. data/.github/workflows/spec.yml +33 -0
  9. data/.github/workflows/validate.yml +21 -0
  10. data/.gitignore +2 -0
  11. data/.lefthook/commit-msg/validator.rb +5 -0
  12. data/.rspec +2 -0
  13. data/.rspec_parallel +2 -0
  14. data/.rubocop.yml +43 -6
  15. data/Changelog.md +30 -1
  16. data/Gemfile +20 -8
  17. data/Rakefile +226 -98
  18. data/Steepfile +28 -0
  19. data/bin/console +3 -3
  20. data/docs/Examples.md +1 -1
  21. data/docs/application_command.md +156 -47
  22. data/docs/cli/irb.md +2 -2
  23. data/docs/cli/new.md +14 -9
  24. data/docs/cli/run.md +7 -11
  25. data/docs/cli.md +17 -10
  26. data/docs/events.md +247 -213
  27. data/docs/extension.md +1 -2
  28. data/docs/faq.md +0 -1
  29. data/docs/tutorial.md +18 -18
  30. data/docs/voice_events.md +106 -106
  31. data/examples/commands/message.rb +68 -0
  32. data/examples/commands/permission.rb +19 -0
  33. data/examples/commands/slash.rb +48 -0
  34. data/examples/commands/user.rb +54 -0
  35. data/examples/components/authorization_button.rb +4 -3
  36. data/examples/components/select_menu.rb +6 -3
  37. data/examples/extension/main.rb +2 -1
  38. data/examples/extension/message_expander.rb +6 -2
  39. data/examples/sig/commands/message.rbs +5 -0
  40. data/examples/simple/eval.rb +3 -2
  41. data/examples/simple/ping_pong.rb +2 -1
  42. data/examples/simple/rolepanel.rb +17 -6
  43. data/examples/simple/shard.rb +3 -2
  44. data/examples/simple/wait_for_message.rb +4 -1
  45. data/exe/discorb +33 -18
  46. data/lefthook.yml +45 -0
  47. data/lib/discorb/allowed_mentions.rb +2 -1
  48. data/lib/discorb/app_command/command.rb +130 -72
  49. data/lib/discorb/app_command/common.rb +25 -0
  50. data/lib/discorb/app_command/handler.rb +130 -33
  51. data/lib/discorb/app_command.rb +2 -1
  52. data/lib/discorb/application.rb +1 -0
  53. data/lib/discorb/asset.rb +1 -2
  54. data/lib/discorb/attachment.rb +1 -1
  55. data/lib/discorb/audit_logs.rb +19 -10
  56. data/lib/discorb/automod.rb +269 -0
  57. data/lib/discorb/channel/base.rb +108 -0
  58. data/lib/discorb/channel/category.rb +32 -0
  59. data/lib/discorb/channel/container.rb +44 -0
  60. data/lib/discorb/channel/dm.rb +28 -0
  61. data/lib/discorb/channel/guild.rb +246 -0
  62. data/lib/discorb/channel/stage.rb +140 -0
  63. data/lib/discorb/channel/text.rb +336 -0
  64. data/lib/discorb/channel/thread.rb +325 -0
  65. data/lib/discorb/channel/voice.rb +79 -0
  66. data/lib/discorb/channel.rb +2 -1165
  67. data/lib/discorb/client.rb +50 -36
  68. data/lib/discorb/color.rb +37 -60
  69. data/lib/discorb/common.rb +2 -1
  70. data/lib/discorb/components/button.rb +2 -1
  71. data/lib/discorb/components/select_menu.rb +4 -2
  72. data/lib/discorb/components/text_input.rb +12 -2
  73. data/lib/discorb/components.rb +1 -1
  74. data/lib/discorb/dictionary.rb +1 -1
  75. data/lib/discorb/embed.rb +26 -10
  76. data/lib/discorb/emoji.rb +31 -4
  77. data/lib/discorb/emoji_table.rb +4969 -3
  78. data/lib/discorb/event.rb +29 -4
  79. data/lib/discorb/exe/about.rb +2 -1
  80. data/lib/discorb/exe/irb.rb +2 -4
  81. data/lib/discorb/exe/new.rb +89 -26
  82. data/lib/discorb/exe/run.rb +8 -22
  83. data/lib/discorb/exe/setup.rb +25 -12
  84. data/lib/discorb/exe/show.rb +4 -3
  85. data/lib/discorb/extend.rb +1 -0
  86. data/lib/discorb/extension.rb +6 -7
  87. data/lib/discorb/flag.rb +13 -2
  88. data/lib/discorb/gateway.rb +79 -589
  89. data/lib/discorb/gateway_events.rb +638 -0
  90. data/lib/discorb/guild.rb +318 -67
  91. data/lib/discorb/guild_template.rb +11 -5
  92. data/lib/discorb/http.rb +53 -24
  93. data/lib/discorb/integration.rb +4 -1
  94. data/lib/discorb/intents.rb +28 -19
  95. data/lib/discorb/interaction/autocomplete.rb +28 -16
  96. data/lib/discorb/interaction/command.rb +42 -14
  97. data/lib/discorb/interaction/components.rb +5 -2
  98. data/lib/discorb/interaction/modal.rb +0 -1
  99. data/lib/discorb/interaction/response.rb +125 -26
  100. data/lib/discorb/interaction/root.rb +13 -13
  101. data/lib/discorb/interaction.rb +1 -0
  102. data/lib/discorb/invite.rb +5 -2
  103. data/lib/discorb/member.rb +28 -8
  104. data/lib/discorb/message.rb +60 -25
  105. data/lib/discorb/message_meta.rb +3 -3
  106. data/lib/discorb/modules.rb +59 -16
  107. data/lib/discorb/presence.rb +2 -0
  108. data/lib/discorb/rate_limit.rb +7 -2
  109. data/lib/discorb/reaction.rb +2 -2
  110. data/lib/discorb/role.rb +20 -5
  111. data/lib/discorb/shard.rb +1 -1
  112. data/lib/discorb/sticker.rb +9 -8
  113. data/lib/discorb/user.rb +4 -3
  114. data/lib/discorb/utils/colored_puts.rb +1 -0
  115. data/lib/discorb/voice_state.rb +6 -2
  116. data/lib/discorb/webhook.rb +64 -31
  117. data/lib/discorb.rb +7 -5
  118. data/po/yard.pot +20 -20
  119. data/rbs_collection.lock.yaml +88 -0
  120. data/rbs_collection.yaml +21 -0
  121. data/sig/async.rbs +11 -0
  122. data/sig/discorb/activity.rbs +23 -0
  123. data/sig/discorb/allowed_mentions.rbs +44 -0
  124. data/sig/discorb/app_command/base.rbs +282 -0
  125. data/sig/discorb/app_command/handler.rbs +171 -0
  126. data/sig/discorb/application.rbs +142 -0
  127. data/sig/discorb/asset.rbs +32 -0
  128. data/sig/discorb/attachment.rbs +91 -0
  129. data/sig/discorb/audit_log.rbs +231 -0
  130. data/sig/discorb/automod.rbs +128 -0
  131. data/sig/discorb/avatar.rbs +26 -0
  132. data/sig/discorb/channel/base.rbs +179 -0
  133. data/sig/discorb/channel/category.rbs +56 -0
  134. data/sig/discorb/channel/container.rbs +29 -0
  135. data/sig/discorb/channel/dm.rbs +14 -0
  136. data/sig/discorb/channel/news.rbs +20 -0
  137. data/sig/discorb/channel/stage.rbs +77 -0
  138. data/sig/discorb/channel/text.rbs +158 -0
  139. data/sig/discorb/channel/thread.rbs +185 -0
  140. data/sig/discorb/channel/voice.rbs +41 -0
  141. data/sig/discorb/client.rbs +2495 -0
  142. data/sig/discorb/color.rbs +142 -0
  143. data/sig/discorb/component/base.rbs +28 -0
  144. data/sig/discorb/component/button.rbs +65 -0
  145. data/sig/discorb/component/select_menu.rbs +107 -0
  146. data/sig/discorb/component/text_input.rbs +69 -0
  147. data/sig/discorb/connectable.rbs +8 -0
  148. data/sig/discorb/custom_emoji.rbs +90 -0
  149. data/sig/discorb/dictionary.rbs +85 -0
  150. data/sig/discorb/discord_model.rbs +15 -0
  151. data/sig/discorb/embed.rbs +279 -0
  152. data/sig/discorb/emoji.rbs +13 -0
  153. data/sig/discorb/error.rbs +73 -0
  154. data/sig/discorb/event_handler.rbs +27 -0
  155. data/sig/discorb/extension.rbs +1734 -0
  156. data/sig/discorb/flag.rbs +72 -0
  157. data/sig/discorb/gateway.rbs +481 -0
  158. data/sig/discorb/guild.rbs +870 -0
  159. data/sig/discorb/guild_template.rbs +174 -0
  160. data/sig/discorb/http.rbs +147 -0
  161. data/sig/discorb/image.rbs +20 -0
  162. data/sig/discorb/integration.rbs +118 -0
  163. data/sig/discorb/intents.rbs +97 -0
  164. data/sig/discorb/interaction/autocomplete.rbs +9 -0
  165. data/sig/discorb/interaction/base.rbs +66 -0
  166. data/sig/discorb/interaction/command.rbs +66 -0
  167. data/sig/discorb/interaction/message_component.rbs +140 -0
  168. data/sig/discorb/interaction/modal.rbs +50 -0
  169. data/sig/discorb/interaction/responder.rbs +157 -0
  170. data/sig/discorb/invite.rbs +86 -0
  171. data/sig/discorb/member.rbs +187 -0
  172. data/sig/discorb/message.rbs +469 -0
  173. data/sig/discorb/messageable.rbs +153 -0
  174. data/sig/discorb/partial_emoji.rbs +35 -0
  175. data/sig/discorb/permissions.rbs +149 -0
  176. data/sig/discorb/presence.rbs +237 -0
  177. data/sig/discorb/reaction.rbs +33 -0
  178. data/sig/discorb/role.rbs +145 -0
  179. data/sig/discorb/scheduled_event.rbs +148 -0
  180. data/sig/discorb/shard.rbs +62 -0
  181. data/sig/discorb/snowflake.rbs +56 -0
  182. data/sig/discorb/stage_instance.rbs +63 -0
  183. data/sig/discorb/sticker.rbs +116 -0
  184. data/sig/discorb/system_channel_flag.rbs +17 -0
  185. data/sig/discorb/unicode_emoji.rbs +49 -0
  186. data/sig/discorb/user.rbs +93 -0
  187. data/sig/discorb/utils.rbs +8 -0
  188. data/sig/discorb/voice_region.rbs +30 -0
  189. data/sig/discorb/voice_state.rbs +71 -0
  190. data/sig/discorb/webhook.rbs +327 -0
  191. data/sig/discorb/welcome_screen.rbs +78 -0
  192. data/sig/discorb.rbs +6 -7230
  193. data/sig/manifest.yaml +3 -0
  194. data/sig/override.rbs +19 -0
  195. data/template-replace/files/css/common.css +4 -0
  196. metadata +102 -6
  197. data/examples/commands/bookmarker.rb +0 -42
  198. data/examples/commands/hello.rb +0 -10
  199. data/examples/commands/inspect.rb +0 -25
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6537aa3c45f64e6b0e8040a5a0d989934fb58d766ee6de305bf04132630a7b94
4
- data.tar.gz: 68512bc0d2abd0738cc6e81ba2b794feb87480d6d84197a51a6deba739d31d5a
3
+ metadata.gz: 117db5f0857b3da9f0c3a642da5c012b0e6b458aa61c2590b31df28540f04732
4
+ data.tar.gz: '08b41acb91e31536970e4a8545f7b29a656ea50fbc813eecde02463acff31cb1'
5
5
  SHA512:
6
- metadata.gz: 239e4658a2ade0ea8382655970a1eecbb3c62c7c3619e3de8fdf932c1c0a4053e35b722bef5dcdbd67477754388cc3c157c9be6360ef7625fe9f84504b5ecf90
7
- data.tar.gz: d830a06c7a505ee31aeb3242e7aa59dadf6abab24a26c357b9e29e5f94d5fef7a889b114d4b7793ffda3f50b19a6be0c3f87921934393b03e71c5f50bfa96de4
6
+ metadata.gz: 511b7faf125d98e9da7120fe7a3dfae5f224dfcb4891e989cab8183db22ebd0f569685e3e7a7f00040d9ee539d5efaa5fa178f10a0137f79b155026944560a2e
7
+ data.tar.gz: 86ced549c50cc26a3a512964614587ff74690b67ed64810355fb307081407b87083151903febfe5f6fb634918365d88e1171af09070b1dbb838c5bcb0a31b9b5
data/.gitattributes CHANGED
@@ -1,2 +1,3 @@
1
1
  template-replace/**/* linguist-documentation
2
2
  sig/* linguist-generated
3
+ lib/discorb/emoji_table.rb linguist-generated
@@ -3,7 +3,7 @@ name: Build YARD with main
3
3
  on:
4
4
  workflow_dispatch:
5
5
  schedule:
6
- - cron: "*/8 * * * *"
6
+ - cron: "0 * * * *"
7
7
 
8
8
  jobs:
9
9
  main:
@@ -11,7 +11,7 @@ jobs:
11
11
  runs-on: ubuntu-latest
12
12
 
13
13
  steps:
14
- - uses: actions/checkout@v2
14
+ - uses: actions/checkout@v3
15
15
  with:
16
16
  fetch-depth: 0
17
17
  - name: Set up Ruby
@@ -11,7 +11,7 @@ jobs:
11
11
  runs-on: ubuntu-latest
12
12
 
13
13
  steps:
14
- - uses: actions/checkout@v2
14
+ - uses: actions/checkout@v3
15
15
  with:
16
16
  fetch-depth: 0
17
17
  - name: Set up Ruby
@@ -38,7 +38,7 @@ jobs:
38
38
 
39
39
  steps:
40
40
  - name: Checkout repository
41
- uses: actions/checkout@v2
41
+ uses: actions/checkout@v3
42
42
 
43
43
  # Initializes the CodeQL tools for scanning.
44
44
  - name: Initialize CodeQL
@@ -1,20 +1,18 @@
1
1
  name: Lint with RuboCop
2
2
  on:
3
3
  push:
4
- branches:
5
- - main
6
4
  jobs:
7
5
  rubocop:
8
6
  runs-on: ubuntu-latest
9
7
  steps:
10
8
  - name: Checkout repository
11
- uses: actions/checkout@v2
9
+ uses: actions/checkout@v3
12
10
  - uses: ruby/setup-ruby@v1
13
11
  with:
14
12
  ruby-version: 3.0.0
15
13
  - name: Install gems
16
14
  run: |
17
- gem install rubocop
15
+ bundle install
18
16
  - name: Run rubocop
19
17
  run: |
20
- rubocop lib
18
+ rake lint
@@ -6,11 +6,9 @@ jobs:
6
6
  runs-on: ubuntu-latest
7
7
  steps:
8
8
  - name: Checkout repository
9
- uses: actions/checkout@v2
9
+ uses: actions/checkout@v3
10
10
  - uses: ruby/setup-ruby@v1
11
11
  with:
12
12
  ruby-version: 3.0.0
13
13
  - name: rubocop
14
- uses: reviewdog/action-rubocop@v2
15
- with:
16
- rubocop_version: 1.25
14
+ uses: reviewdog/action-rubocop@v2
@@ -0,0 +1,33 @@
1
+ name: Run spec
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ push:
6
+ branches:
7
+ - main
8
+
9
+ jobs:
10
+ main:
11
+ strategy:
12
+ matrix:
13
+ ruby-version:
14
+ - "3.0"
15
+ - "3.1"
16
+ os:
17
+ - "ubuntu-latest"
18
+ - "windows-latest"
19
+ runs-on: ${{ matrix.os }}
20
+ steps:
21
+ - name: Set up Ruby
22
+ uses: ruby/setup-ruby@v1
23
+ with:
24
+ ruby-version: ${{ matrix.ruby-version }}
25
+ bundler-cache: true
26
+ - name: Checkout repository
27
+ uses: actions/checkout@v3
28
+ - name: Install dependencies
29
+ run: |
30
+ bundle install
31
+ gem update uri
32
+ - name: Run spec
33
+ run: bundle exec rake spec
@@ -0,0 +1,21 @@
1
+ name: Validate rbs
2
+ on:
3
+ - push
4
+ jobs:
5
+ validate:
6
+ runs-on: ubuntu-latest
7
+ steps:
8
+ - name: Checkout repository
9
+ uses: actions/checkout@v3
10
+ - uses: ruby/setup-ruby@v1
11
+ with:
12
+ ruby-version: 3.0.0
13
+ - name: Install collection
14
+ run: |
15
+ gem update rbs
16
+ bundle install
17
+ rbs collection install
18
+ - name: Validate
19
+ run: |
20
+ rbs -I sig validate
21
+
data/.gitignore CHANGED
@@ -61,3 +61,5 @@ tmp-doc
61
61
  doc
62
62
  *.zip
63
63
  **/*.po
64
+
65
+ .gem_rbs_collection
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ message = File.read(ARGV[0])
4
+ raise "Commit message is empty" if message.empty?
5
+ raise "Commit message must be ASCII" unless message.ascii_only?
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ -P spec/**/*.rb
2
+ -p
data/.rspec_parallel ADDED
@@ -0,0 +1,2 @@
1
+ spec/*.spec.rb
2
+ spec/**/*.spec.rb
data/.rubocop.yml CHANGED
@@ -2,13 +2,38 @@ AllCops:
2
2
  NewCops: enable
3
3
  TargetRubyVersion: 3.0
4
4
  Exclude:
5
- - examples/**/*.rb
5
+ - lib/discorb/emoji_table.rb
6
6
 
7
- Layout:
8
- Enabled: false
7
+ require:
8
+ - rubocop-rake
9
+ - rubocop-rspec
10
+
11
+ # Layout:
12
+ # Enabled: false
9
13
  Metrics:
10
14
  Enabled: false
11
15
 
16
+ Layout/EndOfLine:
17
+ EnforcedStyle: lf
18
+
19
+ Layout/IndentationWidth:
20
+ AllowedPatterns: ['if']
21
+
22
+ Layout/HeredocIndentation:
23
+ Enabled: false
24
+
25
+ Layout/ClosingHeredocIndentation:
26
+ Enabled: false
27
+
28
+ Layout/CaseIndentation:
29
+ Enabled: false
30
+
31
+ Layout/ElseAlignment:
32
+ Enabled: false
33
+
34
+ Layout/EndAlignment:
35
+ Enabled: false
36
+
12
37
  Style/TrailingCommaInHashLiteral: # Disabled for rufo
13
38
  EnforcedStyleForMultiline: consistent_comma
14
39
 
@@ -25,6 +50,9 @@ Style/TrailingCommaInArguments: # Disabled for rufo
25
50
  Style/StringLiteralsInInterpolation: # Disabled for rufo
26
51
  Enabled: false
27
52
 
53
+ Layout/SpaceAroundOperators: # Changed for rufo
54
+ EnforcedStyleForExponentOperator: space
55
+
28
56
  Style/StringConcatenation: # + looks better
29
57
  Enabled: false
30
58
 
@@ -67,8 +95,17 @@ Lint/Debugger: # For /exe
67
95
  Style/GuardClause: # For make it extendable
68
96
  Enabled: false
69
97
 
70
- Layout/EndOfLine: # For git
71
- EnforcedStyle: lf
72
-
73
98
  Lint/ScriptPermission: # For GitHub Actions
99
+ Enabled: false
100
+
101
+ Style/NumericLiterals: # For style
102
+ Enabled: false
103
+
104
+ RSpec/FilePath:
105
+ Enabled: false
106
+
107
+ RSpec/ExampleLength:
108
+ Enabled: false
109
+
110
+ RSpec/MultipleExpectations:
74
111
  Enabled: false
data/Changelog.md CHANGED
@@ -4,6 +4,36 @@
4
4
 
5
5
  # Changelog
6
6
 
7
+ ## v0.18
8
+
9
+ ### v0.18.0
10
+
11
+ - Change!: `XXX#fired_by` is now `XXX#user` or `XXX#member`.
12
+ - Change!: `Message#to_reference` returns `Message::Reference`.
13
+ - Change!: `TextChannel#default_auto_archive_duration` is now Integer.
14
+ - Add: Support AutoMod.
15
+ - Change: `discorb new` doesn't do initial commit.
16
+
17
+ ## v0.17
18
+
19
+ ### v0.17.1
20
+
21
+ - Add: Add valid rbs file.
22
+ - Change: Message content intent warning will show only once.
23
+ - Update: Update audit log events.
24
+
25
+ ### v0.17.0
26
+
27
+ - Change!: Delete `Interaction#target` and `Interaction#fired_by`.
28
+ - Change: `Interaction#user` and `Interaction#member` are same.
29
+ - Add: Include Messageable in VoiceChannel
30
+ - Add: Add `--[no-]bundler` option to `discorb` command.
31
+ - Add: Add `--[no-]comment` option to `discorb new` command.
32
+ - Fix PermissionOverwrite was initialized with string.
33
+ - Fix emoji with different skin tones raises ArgumentError.
34
+ - Fix `Asset#endpoint` raises NameError.
35
+ - Fix `:error` event may call itself.
36
+
7
37
  ## v0.16
8
38
 
9
39
  ### v0.16.0
@@ -456,4 +486,3 @@ end
456
486
  ### v0.0.1
457
487
 
458
488
  - Initial release
459
-
data/Gemfile CHANGED
@@ -7,10 +7,23 @@ gemspec
7
7
 
8
8
  gem "rake", "~> 13.0"
9
9
 
10
- group :development, optional: true do
11
- gem "rufo", "~> 0.13.0"
12
- gem "sord", "~> 3.0.1"
13
- end
10
+ # Rubocop
11
+ gem "rubocop", "~> 1.25"
12
+ gem "rubocop-rake", "~> 0.6.0"
13
+ gem "rubocop-rspec", "~> 2.9"
14
+
15
+ # RSpec
16
+ gem "async-rspec", "~> 1.16"
17
+ gem "parallel_tests", "~> 3.8"
18
+ gem "rspec", "~> 3.11"
19
+
20
+ # Typecheck
21
+ gem "steep", "~> 1.0"
22
+
23
+ # Other development tools
24
+ gem "lefthook", "~> 0.7.7"
25
+ gem "rufo", "~> 0.13.0"
26
+ gem "sord", "~> 3.0.1"
14
27
 
15
28
  group :docs, optional: true do
16
29
  gem "crowdin-api", "~> 1.0"
@@ -19,7 +32,6 @@ group :docs, optional: true do
19
32
  gem "rubyzip", "~> 2.3"
20
33
  gem "yard", "~> 0.9.26"
21
34
  end
22
-
23
- group :lint, optional: true do
24
- gem "rubocop", "~> 1.25"
25
- end
35
+
36
+ gem "syntax_tree", "~> 2.8"
37
+ gem "syntax_tree-rbs", "~> 0.4.0"