discorb 0.19.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/build_version.yml +2 -2
- data/.rubocop.yml +12 -75
- data/Changelog.md +10 -0
- data/Rakefile +482 -454
- data/lib/discorb/allowed_mentions.rb +68 -72
- data/lib/discorb/app_command/command.rb +466 -398
- data/lib/discorb/app_command/common.rb +65 -25
- data/lib/discorb/app_command/handler.rb +304 -266
- data/lib/discorb/app_command.rb +5 -5
- data/lib/discorb/application.rb +198 -197
- data/lib/discorb/asset.rb +101 -101
- data/lib/discorb/attachment.rb +134 -119
- data/lib/discorb/audit_logs.rb +412 -385
- data/lib/discorb/automod.rb +279 -269
- data/lib/discorb/channel/base.rb +107 -108
- data/lib/discorb/channel/category.rb +32 -32
- data/lib/discorb/channel/container.rb +44 -44
- data/lib/discorb/channel/dm.rb +26 -28
- data/lib/discorb/channel/guild.rb +311 -246
- data/lib/discorb/channel/stage.rb +156 -140
- data/lib/discorb/channel/text.rb +430 -336
- data/lib/discorb/channel/thread.rb +374 -325
- data/lib/discorb/channel/voice.rb +85 -79
- data/lib/discorb/channel.rb +5 -5
- data/lib/discorb/client.rb +635 -621
- data/lib/discorb/color.rb +178 -182
- data/lib/discorb/common.rb +168 -164
- data/lib/discorb/components/button.rb +107 -106
- data/lib/discorb/components/select_menu.rb +157 -145
- data/lib/discorb/components/text_input.rb +103 -106
- data/lib/discorb/components.rb +68 -66
- data/lib/discorb/dictionary.rb +135 -135
- data/lib/discorb/embed.rb +404 -398
- data/lib/discorb/emoji.rb +309 -302
- data/lib/discorb/emoji_table.rb +16099 -8857
- data/lib/discorb/error.rb +131 -131
- data/lib/discorb/event.rb +360 -314
- data/lib/discorb/event_handler.rb +39 -39
- data/lib/discorb/exe/about.rb +17 -17
- data/lib/discorb/exe/irb.rb +72 -67
- data/lib/discorb/exe/new.rb +323 -315
- data/lib/discorb/exe/run.rb +69 -68
- data/lib/discorb/exe/setup.rb +57 -55
- data/lib/discorb/exe/show.rb +12 -12
- data/lib/discorb/extend.rb +25 -45
- data/lib/discorb/extension.rb +89 -83
- data/lib/discorb/flag.rb +126 -128
- data/lib/discorb/gateway.rb +984 -804
- data/lib/discorb/gateway_events.rb +670 -638
- data/lib/discorb/gateway_requests.rb +45 -48
- data/lib/discorb/guild.rb +2115 -1626
- data/lib/discorb/guild_template.rb +280 -241
- data/lib/discorb/http.rb +247 -232
- data/lib/discorb/image.rb +42 -42
- data/lib/discorb/integration.rb +169 -161
- data/lib/discorb/intents.rb +161 -163
- data/lib/discorb/interaction/autocomplete.rb +76 -62
- data/lib/discorb/interaction/command.rb +279 -224
- data/lib/discorb/interaction/components.rb +114 -104
- data/lib/discorb/interaction/modal.rb +36 -32
- data/lib/discorb/interaction/response.rb +379 -336
- data/lib/discorb/interaction/root.rb +271 -257
- data/lib/discorb/interaction.rb +5 -5
- data/lib/discorb/invite.rb +154 -153
- data/lib/discorb/member.rb +344 -311
- data/lib/discorb/message.rb +615 -544
- data/lib/discorb/message_meta.rb +197 -186
- data/lib/discorb/modules.rb +371 -290
- data/lib/discorb/permission.rb +305 -291
- data/lib/discorb/presence.rb +352 -346
- data/lib/discorb/rate_limit.rb +81 -76
- data/lib/discorb/reaction.rb +55 -54
- data/lib/discorb/role.rb +272 -240
- data/lib/discorb/shard.rb +76 -74
- data/lib/discorb/sticker.rb +193 -171
- data/lib/discorb/user.rb +205 -188
- data/lib/discorb/utils/colored_puts.rb +16 -16
- data/lib/discorb/utils.rb +12 -16
- data/lib/discorb/voice_state.rb +305 -281
- data/lib/discorb/webhook.rb +537 -507
- data/lib/discorb.rb +62 -56
- data/sig/discorb/application.rbs +2 -0
- data/sig/discorb/automod.rbs +10 -1
- data/sig/discorb/guild.rbs +2 -0
- data/sig/discorb/message.rbs +2 -0
- data/sig/discorb/user.rbs +22 -20
- metadata +2 -2
data/lib/discorb/flag.rb
CHANGED
@@ -1,128 +1,126 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Discorb
|
4
|
-
#
|
5
|
-
# Represents a flag.
|
6
|
-
# @abstract
|
7
|
-
#
|
8
|
-
class Flag
|
9
|
-
# @return [Hash{Symbol => Boolean}] the values of the flag.
|
10
|
-
attr_reader :values
|
11
|
-
alias to_h values
|
12
|
-
# @return [Integer] the value of the flag.
|
13
|
-
attr_reader :value
|
14
|
-
|
15
|
-
@bits = {}
|
16
|
-
|
17
|
-
# Initialize the flag.
|
18
|
-
# @note This is usually called by the subclass.
|
19
|
-
#
|
20
|
-
# @param [Integer] value The value of the flag.
|
21
|
-
def initialize(value)
|
22
|
-
@value = value
|
23
|
-
@values = {}
|
24
|
-
self.class.bits.each
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
#
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
#
|
45
|
-
#
|
46
|
-
#
|
47
|
-
# @
|
48
|
-
#
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
#
|
58
|
-
#
|
59
|
-
#
|
60
|
-
# @
|
61
|
-
#
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
#
|
69
|
-
#
|
70
|
-
#
|
71
|
-
# @
|
72
|
-
#
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
#
|
80
|
-
#
|
81
|
-
#
|
82
|
-
# @
|
83
|
-
#
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
#
|
91
|
-
#
|
92
|
-
#
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
#
|
112
|
-
#
|
113
|
-
#
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
#
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
end
|
128
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Discorb
|
4
|
+
#
|
5
|
+
# Represents a flag.
|
6
|
+
# @abstract
|
7
|
+
#
|
8
|
+
class Flag
|
9
|
+
# @return [Hash{Symbol => Boolean}] the values of the flag.
|
10
|
+
attr_reader :values
|
11
|
+
alias to_h values
|
12
|
+
# @return [Integer] the value of the flag.
|
13
|
+
attr_reader :value
|
14
|
+
|
15
|
+
@bits = {}
|
16
|
+
|
17
|
+
# Initialize the flag.
|
18
|
+
# @note This is usually called by the subclass.
|
19
|
+
#
|
20
|
+
# @param [Integer] value The value of the flag.
|
21
|
+
def initialize(value)
|
22
|
+
@value = value
|
23
|
+
@values = {}
|
24
|
+
self.class.bits.each { |bn, bv| @values[bn] = value & (1 << bv) != 0 }
|
25
|
+
end
|
26
|
+
|
27
|
+
#
|
28
|
+
# Returns the value of the flag.
|
29
|
+
#
|
30
|
+
def method_missing(name, *_args, **_kwargs)
|
31
|
+
if @values.key?(name.to_s.delete_suffix("?").to_sym)
|
32
|
+
@values[name.to_s.delete_suffix("?").to_sym]
|
33
|
+
else
|
34
|
+
super
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def respond_to_missing?(sym, include_private)
|
39
|
+
@values.key?(name.to_s.delete_suffix("?").to_sym) ? true : super
|
40
|
+
end
|
41
|
+
|
42
|
+
#
|
43
|
+
# Union of two flags.
|
44
|
+
#
|
45
|
+
# @param [Discorb::Flag] other The other flag.
|
46
|
+
#
|
47
|
+
# @return [Discorb::Flag] The union of the two flags.
|
48
|
+
#
|
49
|
+
def |(other)
|
50
|
+
self.class.new(@value | other.value)
|
51
|
+
end
|
52
|
+
|
53
|
+
alias + |
|
54
|
+
|
55
|
+
#
|
56
|
+
# Subtraction of two flags.
|
57
|
+
#
|
58
|
+
# @param [Discorb::Flag] other The other flag.
|
59
|
+
#
|
60
|
+
# @return [Discorb::Flag] The subtraction of the two flags.
|
61
|
+
#
|
62
|
+
def -(other)
|
63
|
+
self.class.new(@value & (@value ^ other.value))
|
64
|
+
end
|
65
|
+
|
66
|
+
#
|
67
|
+
# Intersection of two flags.
|
68
|
+
#
|
69
|
+
# @param [Discorb::Flag] other The other flag.
|
70
|
+
#
|
71
|
+
# @return [Discorb::Flag] The intersection of the two flags.
|
72
|
+
#
|
73
|
+
def &(other)
|
74
|
+
self.class.new(@value & other.value)
|
75
|
+
end
|
76
|
+
|
77
|
+
#
|
78
|
+
# XOR of two flags.
|
79
|
+
#
|
80
|
+
# @param [Discorb::Flag] other The other flag.
|
81
|
+
#
|
82
|
+
# @return [Discorb::Flag] The XOR of the two flags.
|
83
|
+
#
|
84
|
+
def ^(other)
|
85
|
+
self.class.new(@value ^ other.value)
|
86
|
+
end
|
87
|
+
|
88
|
+
#
|
89
|
+
# Negation of the flag.
|
90
|
+
#
|
91
|
+
# @return [Discorb::Flag] The negation of the flag.
|
92
|
+
#
|
93
|
+
def ~
|
94
|
+
self.class.new(~@value)
|
95
|
+
end
|
96
|
+
|
97
|
+
def to_i
|
98
|
+
@value
|
99
|
+
end
|
100
|
+
|
101
|
+
def inspect
|
102
|
+
"#<#{self.class}: #{@value}>"
|
103
|
+
end
|
104
|
+
|
105
|
+
class << self
|
106
|
+
# @return [Hash{Integer => Symbol}] the bits of the flag.
|
107
|
+
attr_reader :bits
|
108
|
+
|
109
|
+
#
|
110
|
+
# Max value of the flag.
|
111
|
+
#
|
112
|
+
# @return [Integer] the max value of the flag.
|
113
|
+
#
|
114
|
+
def max_value
|
115
|
+
(2**@bits.values.max) - 1
|
116
|
+
end
|
117
|
+
|
118
|
+
#
|
119
|
+
# Initialize a new flag with keys.
|
120
|
+
#
|
121
|
+
def from_keys(*keys)
|
122
|
+
new(keys.sum { |k| 1 << @bits[k] })
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|