Class: Discordrb::Overwrite
- Inherits:
-
Object
- Object
- Discordrb::Overwrite
- Defined in:
- lib/discordrb/data/overwrite.rb
Overview
A permissions overwrite, when applied to channels describes additional permissions a member needs to perform certain actions in context.
Instance Attribute Summary collapse
-
#allow ⇒ Permissions
Allowed permissions for this overwrite type.
-
#deny ⇒ Permissions
Denied permissions for this overwrite type.
-
#id ⇒ Integer
ID of the thing associated with this overwrite type.
-
#type ⇒ Symbol
Either :role or :member.
Instance Method Summary collapse
-
#==(other) ⇒ Object
Comparison by attributes [:id, :type, :allow, :deny].
-
#initialize(object = nil, type: nil, allow: 0, deny: 0) ⇒ Overwrite
constructor
Creates a new Overwrite object.
Constructor Details
#initialize(object = nil, type: nil, allow: 0, deny: 0) ⇒ Overwrite
Creates a new Overwrite object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/discordrb/data/overwrite.rb', line 39 def initialize(object = nil, type: nil, allow: 0, deny: 0) if type type = type.to_sym raise ArgumentError, 'Overwrite type must be :member or :role' unless (type != :member) || (type != :role) end @id = object.respond_to?(:id) ? object.id : object @type = case object when User, Member, Recipient, Profile :member when Role :role else type end @allow = allow.is_a?(Permissions) ? allow : Permissions.new(allow) @deny = deny.is_a?(Permissions) ? deny : Permissions.new(deny) end |
Instance Attribute Details
#allow ⇒ Permissions
Returns allowed permissions for this overwrite type.
14 15 16 |
# File 'lib/discordrb/data/overwrite.rb', line 14 def allow @allow end |
#deny ⇒ Permissions
Returns denied permissions for this overwrite type.
17 18 19 |
# File 'lib/discordrb/data/overwrite.rb', line 17 def deny @deny end |
#id ⇒ Integer
Returns ID of the thing associated with this overwrite type.
8 9 10 |
# File 'lib/discordrb/data/overwrite.rb', line 8 def id @id end |
#type ⇒ Symbol
Returns either :role or :member.
11 12 13 |
# File 'lib/discordrb/data/overwrite.rb', line 11 def type @type end |