Class: Discorb::GuildChannel Abstract
- Inherits:
-
Channel
- Object
- DiscordModel
- Channel
- Discorb::GuildChannel
- Includes:
- Comparable
- Defined in:
- lib/discorb/channel.rb
Overview
Represents a channel in guild.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#permission_overwrites -> Hash{Discorb::Role, Discorb::Member => PermissionOverwrite}
readonly
The permission overwrites of the channel.
-
#position -> Integer
readonly
The position of the channel as integer.
Attributes inherited from Channel
Instance Method Summary collapse
-
#<=>(other) -> -1, 1
Compares position of two channels.
-
#==(other) -> Boolean
Checks if the channel is same as another.
-
#delete!(reason: nil) -> Async::Task<self>
(also: #close!, #destroy!)
Deletes the channel.
- #guild -> Object
- #inspect -> Object
- #mention -> Object
-
#move(position, lock_permissions: false, parent: :unset, reason: nil) -> Async::Task<self>
Moves the channel to another position.
- #parent -> Object (also: #category)
-
#to_s -> String
Stringifies the channel.
Methods inherited from Channel
Methods inherited from DiscordModel
Instance Attribute Details
#permission_overwrites -> Hash{Discorb::Role, Discorb::Member => PermissionOverwrite} (readonly)
Returns The permission overwrites of the channel.
95 96 97 |
# File 'lib/discorb/channel.rb', line 95 def @permission_overwrites end |
#position -> Integer (readonly)
Returns The position of the channel as integer.
93 94 95 |
# File 'lib/discorb/channel.rb', line 93 def position @position end |
Instance Method Details
#<=>(other) -> -1, 1
Compares position of two channels.
119 120 121 122 123 |
# File 'lib/discorb/channel.rb', line 119 def <=>(other) return 0 unless other.respond_to?(:position) @position <=> other.position end |
#==(other) -> Boolean
Checks if the channel is same as another.
132 133 134 135 136 |
# File 'lib/discorb/channel.rb', line 132 def ==(other) return false unless other.respond_to?(:id) @id == other.id end |
#delete!(reason: nil) -> Async::Task<self> Also known as: close!, destroy!
This is an asynchronous method, it will return a Async::Task
object. Use Async::Task#wait
to get the result.
This method calls HTTP request.
Deletes the channel.
176 177 178 179 180 181 182 |
# File 'lib/discorb/channel.rb', line 176 def delete!(reason: nil) Async do @client.http.delete(base_url.wait.to_s, audit_log_reason: reason).wait @deleted = true self end end |
#guild -> Object
159 160 161 |
# File 'lib/discorb/channel.rb', line 159 def guild @client.guilds[@guild_id] end |
#inspect -> Object
163 164 165 |
# File 'lib/discorb/channel.rb', line 163 def inspect "#<#{self.class} \"##{@name}\" id=#{@id}>" end |
#mention -> Object
147 148 149 |
# File 'lib/discorb/channel.rb', line 147 def mention "<##{@id}>" end |
#move(position, lock_permissions: false, parent: :unset, reason: nil) -> Async::Task<self>
This is an asynchronous method, it will return a Async::Task
object. Use Async::Task#wait
to get the result.
This method calls HTTP request.
Moves the channel to another position.
199 200 201 202 203 204 205 206 207 208 |
# File 'lib/discorb/channel.rb', line 199 def move(position, lock_permissions: false, parent: :unset, reason: nil) Async do payload = { position: position, } payload[:lock_permissions] = payload[:parent_id] = parent&.id if parent != :unset @client.http.patch("/guilds/#{@guild_id}/channels", payload, audit_log_reason: reason).wait end end |
#parent -> Object Also known as: category
151 152 153 154 155 |
# File 'lib/discorb/channel.rb', line 151 def parent return nil unless @parent_id @client.channels[@parent_id] end |
#to_s -> String
Stringifies the channel.
143 144 145 |
# File 'lib/discorb/channel.rb', line 143 def to_s "##{@name}" end |