30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/do_role/permission_set.rb', line 30
def permission(name, options = {}, &block)
name = name.to_s
raise ArgumentError, "name can't be blank" if name.blank?
conditions = if block_given?
ConditionsProxy.new({}).tap { |proxy| proxy.instance_eval(&block) }.conditions
else
non_reserved_options = options.except(*RESERVED_OPTIONS)
options.except!(*non_reserved_options.keys)
non_reserved_options
end
options.reverse_merge!(
conditions: conditions,
priority: 0,
description: "",
requires: Array.wrap(options[:requires]).map(&:to_s)
)
register_permission(name, options)
end
|