Class: MijDiscord::Data::Permissions
- Inherits:
-
Object
- Object
- MijDiscord::Data::Permissions
- Defined in:
- lib/mij-discord/data/permissions.rb
Constant Summary collapse
- FLAGS =
{ # (1 << Bit) => Permission # Value (1 << 0) => :create_instant_invite, # 1 (1 << 1) => :kick_members, # 2 (1 << 2) => :ban_members, # 4 (1 << 3) => :administrator, # 8 (1 << 4) => :manage_channels, # 16 (1 << 5) => :manage_server, # 32 (1 << 6) => :add_reactions, # 64 (1 << 7) => :view_audit_log, # 128 # 1 << 8 # 256 # 1 << 9 # 512 (1 << 10) => :read_messages, # 1024 (1 << 11) => :send_messages, # 2048 (1 << 12) => :send_tts_messages, # 4096 (1 << 13) => :manage_messages, # 8192 (1 << 14) => :embed_links, # 16384 (1 << 15) => :attach_files, # 32768 (1 << 16) => :read_message_history, # 65536 (1 << 17) => :mention_everyone, # 131072 (1 << 18) => :use_external_emoji, # 262144 # 1 << 19 # 524288 (1 << 20) => :connect, # 1048576 (1 << 21) => :speak, # 2097152 (1 << 22) => :mute_members, # 4194304 (1 << 23) => :deafen_members, # 8388608 (1 << 24) => :move_members, # 16777216 (1 << 25) => :use_voice_activity, # 33554432 (1 << 26) => :change_nickname, # 67108864 (1 << 27) => :manage_nicknames, # 134217728 (1 << 28) => :manage_roles, # 268435456 (1 << 29) => :manage_webhooks, # 536870912 (1 << 30) => :manage_emojis, # 1073741824 }.freeze
Instance Attribute Summary collapse
-
#bits ⇒ Object
(also: #to_i)
readonly
Returns the value of attribute bits.
Class Method Summary collapse
Instance Method Summary collapse
- #flags ⇒ Object
-
#initialize(bits = 0) ⇒ Permissions
constructor
A new instance of Permissions.
- #inspect ⇒ Object
- #set_bits(bits) ⇒ Object (also: #bits=)
Constructor Details
#initialize(bits = 0) ⇒ Permissions
Returns a new instance of Permissions.
64 65 66 |
# File 'lib/mij-discord/data/permissions.rb', line 64 def initialize(bits = 0) set_bits(bits) end |
Instance Attribute Details
#bits ⇒ Object (readonly) Also known as: to_i
Returns the value of attribute bits.
61 62 63 |
# File 'lib/mij-discord/data/permissions.rb', line 61 def bits @bits end |
Class Method Details
.bits(list) ⇒ Object
40 41 42 |
# File 'lib/mij-discord/data/permissions.rb', line 40 def self.bits(list) FLAGS.map {|bit, name| list.include?(name) ? bit : 0 }.reduce(&:|) end |
.flags(bits) ⇒ Object
44 45 46 |
# File 'lib/mij-discord/data/permissions.rb', line 44 def self.flags(bits) Set.new(FLAGS.map {|bit, name| (bits & bit).zero? ? nil : name }.reject(&:nil?)) end |
Instance Method Details
#flags ⇒ Object
79 80 81 |
# File 'lib/mij-discord/data/permissions.rb', line 79 def flags Permissions.flags(@bits) end |
#inspect ⇒ Object
83 84 85 |
# File 'lib/mij-discord/data/permissions.rb', line 83 def inspect %(#<Permissions #{flags.to_a}>) end |
#set_bits(bits) ⇒ Object Also known as: bits=
68 69 70 71 72 73 74 75 |
# File 'lib/mij-discord/data/permissions.rb', line 68 def set_bits(bits) @bits = bits.is_a?(Array) ? Permissions.bits(bits) : bits FLAGS.each do |bit, name| flag = !(@bits & bit).zero? instance_variable_set "@#{name}", flag end end |