module IAmICan::Role::Definition

Public Instance Methods

aname(*roles, which_can: [ ], obj: nil, remarks: nil)
Alias for: have_role
have_role(*roles, which_can: [ ], obj: nil, remarks: nil) click to toggle source
# File lib/i_am_i_can/role/definition.rb, line 6
def have_role *roles, which_can: [ ], obj: nil, remarks: nil
  return unless roles.tap(&:flatten!).first.class.in?([ Symbol, String ])
  roles.map!(&:to_sym) ; i = i_am_i_can
  definition = _create_roles(roles.map { |role| { name: role, remarks: remarks } })

  Role.modeling(roles, i).each { |r| r.can *which_can, obj: obj, auto_definition: true } if which_can.present?
  ResultOf.roles definition, i, given: roles
end
Also aliased as: aname