Module: IAmICan::Role::Assignment
- Includes:
- Helpers::Ins
- Defined in:
- lib/i_am_i_can/role/assignment.rb
Instance Method Summary
collapse
-
#becomes_a(*roles, which_can: [ ], obj: nil, auto_define_before: i_am_i_can.auto_define_before, save: i_am_i_can.default_save) ⇒ Object
(also: #is, #is_a_role, #is_roles, #has_role, #has_roles, #role_is, #roles_are)
-
#falls_from(*roles, saved: i_am_i_can.default_save) ⇒ Object
(also: #is_not_a, #will_not_be, #removes_role, #leaves, #has_not_role, #has_not_roles)
-
#temporarily_is(*roles, **options) ⇒ Object
(also: #locally_is)
#__role, #_role_assignment_result, #local_role_names, #local_roles, #roles
Instance Method Details
#becomes_a(*roles, which_can: [ ], obj: nil, auto_define_before: i_am_i_can.auto_define_before, save: i_am_i_can.default_save) ⇒ Object
Also known as:
is, is_a_role, is_roles, has_role, has_roles, role_is, roles_are
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# File 'lib/i_am_i_can/role/assignment.rb', line 8
def becomes_a *roles, which_can: [ ], obj: nil, auto_define_before: i_am_i_can.auto_define_before, save: i_am_i_can.default_save
should_define_role = which_can.present? || auto_define_before
self.class.have_roles *roles, which_can: which_can, obj: obj, save: save if should_define_role
failed_items = [ ]
roles.map(&__role).each do |role|
if save
failed_items << role unless stored_roles_add(role)
else
next failed_items << role unless role.in?(defined_roles.keys)
local_role_names << role unless role.in?(local_role_names)
end
end
_role_assignment_result(roles, failed_items)
end
|
#falls_from(*roles, saved: i_am_i_can.default_save) ⇒ Object
Also known as:
is_not_a, will_not_be, removes_role, leaves, has_not_role, has_not_roles
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# File 'lib/i_am_i_can/role/assignment.rb', line 39
def falls_from *roles, saved: i_am_i_can.default_save
failed_items = [ ]
roles.each do |role|
if saved
failed_items << role unless stored_roles_rmv(role)
else
next failed_items << role unless role.in?(defined_roles.keys)
local_role_names.delete(role)
end
end
_role_assignment_result(roles, failed_items)
end
|
#temporarily_is(*roles, **options) ⇒ Object
Also known as:
locally_is
33
34
35
|
# File 'lib/i_am_i_can/role/assignment.rb', line 33
def temporarily_is *roles, **options
becomes_a *roles, save: false, **options
end
|