class Kan::AbilitiesList
Constants
- ROLES_DETECT
Public Class Methods
new(name, list)
click to toggle source
# File lib/kan/abilities_list.rb, line 5 def initialize(name, list) @name = name @list = list end
Public Instance Methods
call(*payload)
click to toggle source
# File lib/kan/abilities_list.rb, line 10 def call(*payload) @name == ROLES_DETECT ? mapped_roles(payload) : ability_check(payload) end
Private Instance Methods
ability_check(payload)
click to toggle source
# File lib/kan/abilities_list.rb, line 16 def ability_check(payload) @list .select { |abilities| abilities.class.valid_role?(*payload) } .any? { |abilities| abilities.ability(@name).call(*payload) } end
mapped_roles(payload)
click to toggle source
# File lib/kan/abilities_list.rb, line 22 def mapped_roles(payload) @list.map do |abilities| abilities.class.valid_role?(*payload) ? abilities.class.role_name : nil end.compact end