discorb 0.17.1 → 0.19.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/lint.yml +1 -3
  3. data/.github/workflows/validate.yml +21 -0
  4. data/Changelog.md +25 -0
  5. data/Gemfile +6 -0
  6. data/README.md +2 -1
  7. data/Rakefile +205 -98
  8. data/Steepfile +30 -0
  9. data/docs/application_command.md +1 -0
  10. data/docs/events.md +44 -8
  11. data/docs/tutorial.md +7 -7
  12. data/docs/voice_events.md +8 -8
  13. data/examples/commands/message.rb +12 -7
  14. data/examples/commands/permission.rb +2 -1
  15. data/examples/commands/slash.rb +23 -19
  16. data/examples/commands/user.rb +15 -12
  17. data/examples/components/authorization_button.rb +2 -1
  18. data/examples/components/select_menu.rb +4 -1
  19. data/examples/extension/main.rb +1 -0
  20. data/examples/extension/message_expander.rb +1 -0
  21. data/examples/sig/commands/message.rbs +5 -0
  22. data/examples/simple/eval.rb +1 -0
  23. data/examples/simple/ping_pong.rb +1 -0
  24. data/examples/simple/rolepanel.rb +16 -5
  25. data/examples/simple/shard.rb +2 -1
  26. data/examples/simple/wait_for_message.rb +3 -0
  27. data/exe/discorb +3 -3
  28. data/lib/discorb/allowed_mentions.rb +1 -1
  29. data/lib/discorb/app_command/command.rb +16 -13
  30. data/lib/discorb/app_command/handler.rb +21 -6
  31. data/lib/discorb/audit_logs.rb +6 -2
  32. data/lib/discorb/automod.rb +269 -0
  33. data/lib/discorb/channel/guild.rb +5 -4
  34. data/lib/discorb/channel/stage.rb +1 -1
  35. data/lib/discorb/channel/text.rb +14 -23
  36. data/lib/discorb/channel/thread.rb +15 -11
  37. data/lib/discorb/client.rb +15 -15
  38. data/lib/discorb/color.rb +37 -60
  39. data/lib/discorb/common.rb +1 -1
  40. data/lib/discorb/dictionary.rb +1 -1
  41. data/lib/discorb/embed.rb +5 -4
  42. data/lib/discorb/emoji.rb +4 -4
  43. data/lib/discorb/event.rb +2 -2
  44. data/lib/discorb/exe/about.rb +1 -1
  45. data/lib/discorb/exe/new.rb +1 -5
  46. data/lib/discorb/extension.rb +0 -4
  47. data/lib/discorb/flag.rb +2 -2
  48. data/lib/discorb/gateway.rb +38 -589
  49. data/lib/discorb/gateway_events.rb +638 -0
  50. data/lib/discorb/guild.rb +138 -19
  51. data/lib/discorb/guild_template.rb +3 -3
  52. data/lib/discorb/http.rb +47 -25
  53. data/lib/discorb/integration.rb +2 -2
  54. data/lib/discorb/intents.rb +27 -18
  55. data/lib/discorb/interaction/command.rb +14 -10
  56. data/lib/discorb/interaction/response.rb +150 -84
  57. data/lib/discorb/interaction/root.rb +139 -0
  58. data/lib/discorb/invite.rb +1 -1
  59. data/lib/discorb/member.rb +3 -3
  60. data/lib/discorb/message.rb +17 -15
  61. data/lib/discorb/message_meta.rb +2 -3
  62. data/lib/discorb/modules.rb +5 -4
  63. data/lib/discorb/permission.rb +3 -1
  64. data/lib/discorb/presence.rb +4 -2
  65. data/lib/discorb/reaction.rb +2 -2
  66. data/lib/discorb/role.rb +3 -3
  67. data/lib/discorb/shard.rb +1 -1
  68. data/lib/discorb/sticker.rb +5 -5
  69. data/lib/discorb/user.rb +2 -2
  70. data/lib/discorb/voice_state.rb +8 -8
  71. data/lib/discorb/webhook.rb +20 -11
  72. data/lib/discorb.rb +2 -2
  73. data/rbs_collection.lock.yaml +88 -96
  74. data/rbs_collection.yaml +21 -17
  75. data/sig/async.rbs +11 -5
  76. data/sig/discorb/activity.rbs +24 -0
  77. data/sig/discorb/allowed_mentions.rbs +45 -0
  78. data/sig/discorb/app_command/base.rbs +288 -0
  79. data/sig/discorb/app_command/handler.rbs +171 -0
  80. data/sig/discorb/application.rbs +146 -0
  81. data/sig/discorb/asset.rbs +34 -0
  82. data/sig/discorb/attachment.rbs +99 -0
  83. data/sig/discorb/audit_log.rbs +238 -0
  84. data/sig/discorb/automod.rbs +145 -0
  85. data/sig/discorb/avatar.rbs +27 -0
  86. data/sig/discorb/channel/base.rbs +186 -0
  87. data/sig/discorb/channel/category.rbs +57 -0
  88. data/sig/discorb/channel/container.rbs +33 -0
  89. data/sig/discorb/channel/dm.rbs +14 -0
  90. data/sig/discorb/channel/news.rbs +20 -0
  91. data/sig/discorb/channel/stage.rbs +81 -0
  92. data/sig/discorb/channel/text.rbs +158 -0
  93. data/sig/discorb/channel/thread.rbs +196 -0
  94. data/sig/discorb/channel/voice.rbs +43 -0
  95. data/sig/discorb/client.rbs +2496 -0
  96. data/sig/discorb/color.rbs +148 -0
  97. data/sig/discorb/component/base.rbs +29 -0
  98. data/sig/discorb/component/button.rbs +67 -0
  99. data/sig/discorb/component/select_menu.rbs +111 -0
  100. data/sig/discorb/component/text_input.rbs +70 -0
  101. data/sig/discorb/connectable.rbs +8 -0
  102. data/sig/discorb/custom_emoji.rbs +94 -0
  103. data/sig/discorb/dictionary.rbs +87 -0
  104. data/sig/discorb/discord_model.rbs +17 -0
  105. data/sig/discorb/embed.rbs +286 -0
  106. data/sig/discorb/emoji.rbs +14 -0
  107. data/sig/discorb/error.rbs +73 -0
  108. data/sig/discorb/event_handler.rbs +28 -0
  109. data/sig/discorb/extension.rbs +1735 -0
  110. data/sig/discorb/flag.rbs +74 -0
  111. data/sig/discorb/gateway.rbs +486 -0
  112. data/sig/discorb/guild.rbs +872 -0
  113. data/sig/discorb/guild_template.rbs +174 -0
  114. data/sig/discorb/http.rbs +150 -0
  115. data/sig/discorb/image.rbs +22 -0
  116. data/sig/discorb/integration.rbs +118 -0
  117. data/sig/discorb/intents.rbs +98 -0
  118. data/sig/discorb/interaction/autocomplete.rbs +9 -0
  119. data/sig/discorb/interaction/base.rbs +102 -0
  120. data/sig/discorb/interaction/command.rbs +66 -0
  121. data/sig/discorb/interaction/message_component.rbs +139 -0
  122. data/sig/discorb/interaction/modal.rbs +49 -0
  123. data/sig/discorb/interaction/responder.rbs +157 -0
  124. data/sig/discorb/invite.rbs +86 -0
  125. data/sig/discorb/member.rbs +189 -0
  126. data/sig/discorb/message.rbs +474 -0
  127. data/sig/discorb/messageable.rbs +150 -0
  128. data/sig/discorb/partial_emoji.rbs +38 -0
  129. data/sig/discorb/permissions.rbs +156 -0
  130. data/sig/discorb/presence.rbs +239 -0
  131. data/sig/discorb/reaction.rbs +37 -0
  132. data/sig/discorb/role.rbs +151 -0
  133. data/sig/discorb/scheduled_event.rbs +149 -0
  134. data/sig/discorb/shard.rbs +63 -0
  135. data/sig/discorb/snowflake.rbs +58 -0
  136. data/sig/discorb/stage_instance.rbs +69 -0
  137. data/sig/discorb/sticker.rbs +116 -0
  138. data/sig/discorb/system_channel_flag.rbs +17 -0
  139. data/sig/discorb/unicode_emoji.rbs +53 -0
  140. data/sig/discorb/user.rbs +95 -0
  141. data/sig/discorb/utils.rbs +8 -0
  142. data/sig/discorb/voice_region.rbs +30 -0
  143. data/sig/discorb/voice_state.rbs +71 -0
  144. data/sig/discorb/webhook.rbs +338 -0
  145. data/sig/discorb/welcome_screen.rbs +79 -0
  146. data/sig/discorb.rbs +5 -8661
  147. data/sig/manifest.yaml +3 -0
  148. data/sig/override.rbs +21 -0
  149. metadata +80 -3
@@ -113,8 +113,8 @@ module Discorb
113
113
  @details = data[:details]
114
114
  @state = data[:state]
115
115
  @emoji = if data[:emoji]
116
- data[:emoji][:id].nil? ? UnicodeEmoji.new(data[:emoji][:name]) : PartialEmoji.new(data[:emoji])
117
- end
116
+ data[:emoji][:id].nil? ? UnicodeEmoji.new(data[:emoji][:name]) : PartialEmoji.new(data[:emoji])
117
+ end
118
118
  @party = data[:party] && Party.new(data[:party])
119
119
  @assets = data[:assets] && Asset.new(data[:assets])
120
120
  @instance = data[:instance]
@@ -141,6 +141,8 @@ module Discorb
141
141
  "#{@emoji} #{@state}"
142
142
  when :competing
143
143
  "Competing in #{@name}"
144
+ else
145
+ raise "Unknown activity type: #{@type}"
144
146
  end
145
147
  end
146
148
 
@@ -7,7 +7,7 @@ module Discorb
7
7
  class Reaction < DiscordModel
8
8
  # @return [Integer] The number of users that have reacted with this emoji.
9
9
  attr_reader :count
10
- # @return [Discorb::Emoji] The emoji that was reacted with.
10
+ # @return [Discorb::Emoji, Discorb::PartialEmoji] The emoji that was reacted with.
11
11
  attr_reader :emoji
12
12
  # @return [Discorb::Message] The message that this reaction is on.
13
13
  attr_reader :message
@@ -33,7 +33,7 @@ module Discorb
33
33
  #
34
34
  # @param (see Message#fetch_reacted_users)
35
35
  #
36
- # @return [Array<Discorb::User>] The users that reacted with this emoji.
36
+ # @return [Async::Task<Array<Discorb::User>>] The users that reacted with this emoji.
37
37
  #
38
38
  def fetch_users(...)
39
39
  message.fetch_reacted_users(@emoji, ...)
data/lib/discorb/role.rb CHANGED
@@ -69,7 +69,7 @@ module Discorb
69
69
  # @return [Integer] -1 if the other role is higher, 0 if they are equal, 1 if the other role is lower.
70
70
  #
71
71
  def <=>(other)
72
- return false unless other.is_a?(Role)
72
+ return nil unless other.is_a?(Role)
73
73
 
74
74
  @position <=> other.position
75
75
  end
@@ -165,7 +165,7 @@ module Discorb
165
165
  #
166
166
  # @return [Async::Task<void>] The task.
167
167
  #
168
- def delete!(reason: nil)
168
+ def delete(reason: nil)
169
169
  Async do
170
170
  @client.http.request(
171
171
  Route.new("/guilds/#{@guild.id}/roles/#{@id}", "//guilds/:guild_id/roles/:role_id",
@@ -174,7 +174,7 @@ module Discorb
174
174
  end
175
175
  end
176
176
 
177
- alias destroy! delete!
177
+ alias destroy delete
178
178
 
179
179
  def tag
180
180
  Tag.new(@tags)
data/lib/discorb/shard.rb CHANGED
@@ -61,7 +61,7 @@ module Discorb
61
61
  #
62
62
  # @return [void]
63
63
  #
64
- def close!
64
+ def close
65
65
  @status = :closed
66
66
  @main_task&.stop
67
67
  @thread.kill
@@ -17,7 +17,7 @@ module Discorb
17
17
  attr_reader :format
18
18
  # @return [String] The URL of the sticker.
19
19
  attr_reader :description
20
- # @return [Discorb::Sticker] The ID of the sticker pack.
20
+ # @return [Discorb::Snowflake] The ID of the sticker pack.
21
21
  attr_reader :pack_id
22
22
  # @return [Integer] The sort value of the sticker.
23
23
  attr_reader :sort_value
@@ -87,7 +87,7 @@ module Discorb
87
87
  payload[:tags] = tag.name unless tag == Discorb::Unset
88
88
  @client.http.request(
89
89
  Route.new("/guilds/#{@guild_id}/stickers/#{@id}", "//guilds/:guild_id/stickers/:sticker_id",
90
- :patch), payload, audit_log_reason: reason
90
+ :patch), payload, audit_log_reason: reason,
91
91
  ).wait
92
92
  end
93
93
  end
@@ -100,16 +100,16 @@ module Discorb
100
100
  #
101
101
  # @param [String] reason The reason for the deletion.
102
102
  #
103
- def delete!(reason: nil)
103
+ def delete(reason: nil)
104
104
  Async do
105
105
  @client.http.request(
106
106
  Route.new("/guilds/#{@guild_id}/stickers/#{@id}", "//guilds/:guild_id/stickers/:sticker_id",
107
- :delete), {}, audit_log_reason: reason
107
+ :delete), {}, audit_log_reason: reason,
108
108
  ).wait
109
109
  end
110
110
  end
111
111
 
112
- alias destroy! delete!
112
+ alias destroy delete
113
113
  end
114
114
 
115
115
  #
data/lib/discorb/user.rb CHANGED
@@ -16,7 +16,7 @@ module Discorb
16
16
  attr_reader :flag
17
17
  # @return [String] The user's discriminator.
18
18
  attr_reader :discriminator
19
- # @return [Discorb::Asset] The user's avatar.
19
+ # @return [Discorb::Asset, Discorb::DefaultAvatar] The user's avatar.
20
20
  attr_reader :avatar
21
21
  # @return [Boolean] Whether the user is a bot.
22
22
  attr_reader :bot
@@ -147,7 +147,7 @@ module Discorb
147
147
  @flag = User::Flag.new(data[:public_flags] | (data[:flags] || 0))
148
148
  @discriminator = data[:discriminator]
149
149
  @avatar = data[:avatar] ? Asset.new(self, data[:avatar]) : DefaultAvatar.new(data[:discriminator])
150
- @bot = data[:bot]
150
+ @bot = data[:bot] || false
151
151
  @raw_data = data
152
152
  @client.users[@id] = self unless data[:no_cache]
153
153
  @created_at = @id.timestamp
@@ -95,10 +95,10 @@ module Discorb
95
95
  @user_id = data[:user_id]
96
96
  unless guild.nil?
97
97
  @member = if data.key?(:member)
98
- guild.members[data[:user_id]] || Member.new(@client, @guild_id, data[:member][:user], data[:member])
99
- else
100
- guild.members[data[:user_id]]
101
- end
98
+ guild.members[data[:user_id]] || Member.new(@client, @guild_id, data[:member][:user], data[:member])
99
+ else
100
+ guild.members[data[:user_id]]
101
+ end
102
102
  end
103
103
  @session_id = data[:session_id]
104
104
  @deaf = data[:deaf]
@@ -213,18 +213,18 @@ module Discorb
213
213
  #
214
214
  # @return [Async::Task<void>] The task.
215
215
  #
216
- def delete!(reason: nil)
216
+ def delete(reason: nil)
217
217
  Async do
218
218
  @client.http.request(
219
219
  Route.new("/stage-instances/#{@channel_id}", "//stage-instances/:stage_instance_id",
220
- :delete), {}, audit_log_reason: reason
220
+ :delete), {}, audit_log_reason: reason,
221
221
  ).wait
222
222
  self
223
223
  end
224
224
  end
225
225
 
226
- alias destroy! delete!
227
- alias end! delete!
226
+ alias destroy delete
227
+ alias end delete
228
228
 
229
229
  private
230
230
 
@@ -91,8 +91,15 @@ module Discorb
91
91
  payload[:username] = username if username
92
92
  payload[:avatar_url] = avatar_url if avatar_url != Discorb::Unset
93
93
  attachments = [attachment] if attachment
94
- _resp, data = @http.multipart_request(Route.new("#{url}?wait=#{wait}", "//webhooks/:webhook_id/:token", :post),
95
- attachments, payload, headers: headers).wait
94
+ _resp, data = @http.multipart_request(
95
+ Route.new(
96
+ "#{url}?wait=#{wait}",
97
+ "//webhooks/:webhook_id/:token",
98
+ :post
99
+ ),
100
+ attachments,
101
+ payload
102
+ ).wait
96
103
  data && Webhook::Message.new(self, data)
97
104
  end
98
105
  end
@@ -128,14 +135,14 @@ module Discorb
128
135
  #
129
136
  # @return [Async::Task<void>] The task.
130
137
  #
131
- def delete!
138
+ def delete
132
139
  Async do
133
140
  @http.request(Route.new(url, "//webhooks/:webhook_id/:token", :delete)).wait
134
141
  self
135
142
  end
136
143
  end
137
144
 
138
- alias destroy! delete!
145
+ alias destroy delete
139
146
 
140
147
  #
141
148
  # Edits the webhook's message.
@@ -184,7 +191,7 @@ module Discorb
184
191
  #
185
192
  # @return [Async::Task<void>] The task.
186
193
  #
187
- def delete_message!(message)
194
+ def delete_message(message)
188
195
  Async do
189
196
  @http.request(
190
197
  Route.new(
@@ -207,11 +214,12 @@ module Discorb
207
214
  # Initializes the webhook from URL.
208
215
  #
209
216
  # @param [String] url The URL of the webhook.
217
+ # @param [Discorb::Client] client The client to associate with the webhook.
210
218
  #
211
- def initialize(url)
219
+ def initialize(url, client: nil)
212
220
  @url = url
213
221
  @token = ""
214
- @http = Discorb::HTTP.new(self)
222
+ @http = Discorb::HTTP.new(client || Discorb::Client.new)
215
223
  end
216
224
  end
217
225
 
@@ -377,9 +385,9 @@ module Discorb
377
385
  #
378
386
  # @return [Async::Task<void>] The task.
379
387
  #
380
- def delete!
388
+ def delete
381
389
  Async do
382
- @webhook.delete_message!(self).wait
390
+ @webhook.delete_message(self).wait
383
391
  end
384
392
  end
385
393
 
@@ -459,12 +467,13 @@ module Discorb
459
467
  # Creates URLWebhook.
460
468
  #
461
469
  # @param [String] url The URL of the webhook.
470
+ # @param [Discorb::Client] client The client to associate with the webhook.
462
471
  #
463
472
  # @return [Discorb::Webhook::URLWebhook] The URLWebhook.
464
473
  #
465
- def new(url)
474
+ def new(url, client: nil)
466
475
  if self == Webhook
467
- URLWebhook.new(url)
476
+ URLWebhook.new(url, client: client)
468
477
  else
469
478
  super
470
479
  end
data/lib/discorb.rb CHANGED
@@ -46,10 +46,10 @@ end
46
46
  require_order = %w[common flag dictionary error rate_limit http intents emoji_table modules] +
47
47
  %w[channel/container message_meta allowed_mentions] +
48
48
  %w[user member guild emoji channel embed message] +
49
- %w[application audit_logs color components event event_handler] +
49
+ %w[application audit_logs color components event event_handler automod] +
50
50
  %w[attachment guild_template image integration interaction invite permission] +
51
51
  %w[presence reaction role sticker utils voice_state webhook] +
52
- %w[gateway_requests gateway app_command] +
52
+ %w[gateway_requests gateway_events gateway app_command] +
53
53
  %w[asset extension shard client extend]
54
54
  require_order.each do |name|
55
55
  require_relative "discorb/#{name}.rb"
@@ -1,96 +1,88 @@
1
- ---
2
- sources:
3
- - name: ruby/gem_rbs_collection
4
- remote: https://github.com/ruby/gem_rbs_collection.git
5
- revision: main
6
- repo_dir: gems
7
- path: ".gem_rbs_collection"
8
- gems:
9
- - name: activesupport
10
- version: '6.0'
11
- source:
12
- type: git
13
- name: ruby/gem_rbs_collection
14
- revision: 8e1f19e0c8768b6bac2815fe65a3310298ba400e
15
- remote: https://github.com/ruby/gem_rbs_collection.git
16
- repo_dir: gems
17
- - name: ast
18
- version: '2.4'
19
- source:
20
- type: git
21
- name: ruby/gem_rbs_collection
22
- revision: 8e1f19e0c8768b6bac2815fe65a3310298ba400e
23
- remote: https://github.com/ruby/gem_rbs_collection.git
24
- repo_dir: gems
25
- - name: date
26
- version: '0'
27
- source:
28
- type: stdlib
29
- - name: forwardable
30
- version: '0'
31
- source:
32
- type: stdlib
33
- - name: i18n
34
- version: '1.10'
35
- source:
36
- type: git
37
- name: ruby/gem_rbs_collection
38
- revision: 8e1f19e0c8768b6bac2815fe65a3310298ba400e
39
- remote: https://github.com/ruby/gem_rbs_collection.git
40
- repo_dir: gems
41
- - name: listen
42
- version: '3.2'
43
- source:
44
- type: git
45
- name: ruby/gem_rbs_collection
46
- revision: 8e1f19e0c8768b6bac2815fe65a3310298ba400e
47
- remote: https://github.com/ruby/gem_rbs_collection.git
48
- repo_dir: gems
49
- - name: parallel
50
- version: '1.20'
51
- source:
52
- type: git
53
- name: ruby/gem_rbs_collection
54
- revision: 8e1f19e0c8768b6bac2815fe65a3310298ba400e
55
- remote: https://github.com/ruby/gem_rbs_collection.git
56
- repo_dir: gems
57
- - name: prime
58
- version: '0'
59
- source:
60
- type: stdlib
61
- - name: rainbow
62
- version: '3.0'
63
- source:
64
- type: git
65
- name: ruby/gem_rbs_collection
66
- revision: 8e1f19e0c8768b6bac2815fe65a3310298ba400e
67
- remote: https://github.com/ruby/gem_rbs_collection.git
68
- repo_dir: gems
69
- - name: singleton
70
- version: '0'
71
- source:
72
- type: stdlib
73
- - name: time
74
- version: '0'
75
- source:
76
- type: stdlib
77
- - name: uri
78
- version: '0'
79
- source:
80
- type: stdlib
81
- - name: monitor
82
- version: '0'
83
- source:
84
- type: stdlib
85
- - name: logger
86
- version: '0'
87
- source:
88
- type: stdlib
89
- - name: mutex_m
90
- version: '0'
91
- source:
92
- type: stdlib
93
- - name: pathname
94
- version: '0'
95
- source:
96
- type: stdlib
1
+ ---
2
+ sources:
3
+ - name: ruby/gem_rbs_collection
4
+ remote: https://github.com/ruby/gem_rbs_collection.git
5
+ revision: main
6
+ repo_dir: gems
7
+ path: ".gem_rbs_collection"
8
+ gems:
9
+ - name: net-http
10
+ version: '0'
11
+ source:
12
+ type: stdlib
13
+ - name: logger
14
+ version: '0'
15
+ source:
16
+ type: stdlib
17
+ - name: ast
18
+ version: '2.4'
19
+ source:
20
+ type: git
21
+ name: ruby/gem_rbs_collection
22
+ revision: 347858a6750d478f6cf1285b4ebd6ae945af2609
23
+ remote: https://github.com/ruby/gem_rbs_collection.git
24
+ repo_dir: gems
25
+ - name: forwardable
26
+ version: '0'
27
+ source:
28
+ type: stdlib
29
+ - name: i18n
30
+ version: '1.10'
31
+ source:
32
+ type: git
33
+ name: ruby/gem_rbs_collection
34
+ revision: 347858a6750d478f6cf1285b4ebd6ae945af2609
35
+ remote: https://github.com/ruby/gem_rbs_collection.git
36
+ repo_dir: gems
37
+ - name: listen
38
+ version: '3.2'
39
+ source:
40
+ type: git
41
+ name: ruby/gem_rbs_collection
42
+ revision: 347858a6750d478f6cf1285b4ebd6ae945af2609
43
+ remote: https://github.com/ruby/gem_rbs_collection.git
44
+ repo_dir: gems
45
+ - name: minitest
46
+ version: '0'
47
+ source:
48
+ type: stdlib
49
+ - name: parallel
50
+ version: '1.20'
51
+ source:
52
+ type: git
53
+ name: ruby/gem_rbs_collection
54
+ revision: 347858a6750d478f6cf1285b4ebd6ae945af2609
55
+ remote: https://github.com/ruby/gem_rbs_collection.git
56
+ repo_dir: gems
57
+ - name: prime
58
+ version: '0'
59
+ source:
60
+ type: stdlib
61
+ - name: rainbow
62
+ version: '3.0'
63
+ source:
64
+ type: git
65
+ name: ruby/gem_rbs_collection
66
+ revision: 347858a6750d478f6cf1285b4ebd6ae945af2609
67
+ remote: https://github.com/ruby/gem_rbs_collection.git
68
+ repo_dir: gems
69
+ - name: singleton
70
+ version: '0'
71
+ source:
72
+ type: stdlib
73
+ - name: uri
74
+ version: '0'
75
+ source:
76
+ type: stdlib
77
+ - name: timeout
78
+ version: '0'
79
+ source:
80
+ type: stdlib
81
+ - name: monitor
82
+ version: '0'
83
+ source:
84
+ type: stdlib
85
+ - name: mutex_m
86
+ version: '0'
87
+ source:
88
+ type: stdlib
data/rbs_collection.yaml CHANGED
@@ -1,17 +1,21 @@
1
- # Download sources
2
- sources:
3
- - name: ruby/gem_rbs_collection
4
- remote: https://github.com/ruby/gem_rbs_collection.git
5
- revision: main
6
- repo_dir: gems
7
-
8
- # A directory to install the downloaded RBSs
9
- path: .gem_rbs_collection
10
-
11
- gems:
12
- # Skip loading rbs gem's RBS.
13
- # It's unnecessary if you don't use rbs as a library.
14
- - name: rbs
15
- ignore: true
16
- - name: discorb
17
- ignore: true
1
+ # Download sources
2
+ sources:
3
+ - name: ruby/gem_rbs_collection
4
+ remote: https://github.com/ruby/gem_rbs_collection.git
5
+ revision: main
6
+ repo_dir: gems
7
+
8
+ # A directory to install the downloaded RBSs
9
+ path: .gem_rbs_collection
10
+
11
+ gems:
12
+ # Skip loading rbs gem's RBS.
13
+ # It's unnecessary if you don't use rbs as a library.
14
+ - name: rbs
15
+ ignore: true
16
+ - name: discorb
17
+ ignore: true
18
+ - name: net-http
19
+ - name: logger
20
+ - name: activesupport
21
+ ignore: true
data/sig/async.rbs CHANGED
@@ -1,5 +1,11 @@
1
- module Async
2
- class Task[T]
3
- def wait: () -> T
4
- end
5
- end
1
+ module Async
2
+ class Task[T]
3
+ def wait: -> T
4
+ end
5
+
6
+ module WebSocket
7
+ class Connection
8
+ def initialize: (untyped, ?untyped, response: untyped, **untyped) -> void
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,24 @@
1
+ module Discorb
2
+ #
3
+ # Represents an activity for Gateway Command.
4
+ class Activity
5
+ TYPES: untyped
6
+
7
+ #
8
+ # Initializes a new Activity.
9
+ #
10
+ # @param [String] name The name of the activity.
11
+ # @param [:playing, :streaming, :listening, :watching, :competing] type The type of activity.
12
+ # @param [String] url The URL of the activity.
13
+ def initialize: (String name, ?Symbol `type`, ?String? url) -> void
14
+
15
+ #
16
+ # Converts the activity to a hash.
17
+ #
18
+ # @return [Hash] A hash representation of the activity.
19
+ def to_hash: -> Discorb::json
20
+
21
+ %a{pure}
22
+ def inspect: -> String
23
+ end
24
+ end
@@ -0,0 +1,45 @@
1
+ module Discorb
2
+ #
3
+ # Represents a allowed mentions in a message.
4
+ class AllowedMentions
5
+ #
6
+ # Initializes a new instance of the AllowedMentions class.
7
+ #
8
+ # @param [Boolean] everyone Whether to allow @everyone or @here.
9
+ # @param [Boolean, Array<Discorb::Role>] roles The roles to allow, or false to disable.
10
+ # @param [Boolean, Array<Discorb::User>] users The users to allow, or false to disable.
11
+ # @param [Boolean] replied_user Whether to ping the user that sent the message to reply.
12
+ def initialize: (
13
+ ?everyone: bool?,
14
+ ?roles: (bool | ::Array[Discorb::Role])?,
15
+ ?users: (bool | ::Array[Discorb::User])?,
16
+ ?replied_user: bool?
17
+ ) -> void
18
+
19
+ %a{pure}
20
+ def inspect: -> String
21
+
22
+ #
23
+ # Converts the object to a hash.
24
+ # @private
25
+ #
26
+ # @param [Discorb::AllowedMentions, nil] other The object to merge.
27
+ #
28
+ # @return [Hash] The hash.
29
+ def to_hash: (?Discorb::AllowedMentions? other) -> ::Hash[untyped, untyped]
30
+
31
+ def nil_merge: (*untyped args) -> untyped
32
+
33
+ # @return [Boolean] Whether to allow @everyone or @here.
34
+ attr_accessor everyone: bool?
35
+
36
+ # @return [Boolean, Array<Discorb::Role>] The roles to allow, or false to disable.
37
+ attr_accessor roles: (bool | ::Array[Discorb::Role])?
38
+
39
+ # @return [Boolean, Array<Discorb::User>] The users to allow, or false to disable.
40
+ attr_accessor users: (bool | ::Array[Discorb::User])?
41
+
42
+ # @return [Boolean] Whether to ping the user that sent the message to reply.
43
+ attr_accessor replied_user: bool?
44
+ end
45
+ end