Module: Symphonia::Permissions
- Defined in:
- lib/symphonia/permissions.rb
Defined Under Namespace
Classes: Permission, PermissionMissingError
Constant Summary
collapse
- @@mapper =
[]
- @@used_names =
[]
Class Method Summary
collapse
Class Method Details
36
37
38
|
# File 'lib/symphonia/permissions.rb', line 36
def all
mapper
end
|
.find_all(permission_names = []) ⇒ Object
40
41
42
43
|
# File 'lib/symphonia/permissions.rb', line 40
def find_all(permission_names=[])
ps = used_names & Array(permission_names).compact
ps.collect{|m| get(m.to_sym)}
end
|
.get(name) ⇒ Object
Returns the permission of given name or nil if it wasn’t found Argument should be a symbol
32
33
34
|
# File 'lib/symphonia/permissions.rb', line 32
def get(name)
mapper.detect{|i| i.name == name}
end
|
.map(&block) ⇒ Object
10
11
12
13
14
|
# File 'lib/symphonia/permissions.rb', line 10
def map(&block)
if block_given?
yield self
end
end
|
.register(name, options = {}) ⇒ Object
16
17
18
19
20
21
22
23
24
|
# File 'lib/symphonia/permissions.rb', line 16
def register(name, options={})
return if @@used_names.include?(name)
p = Permission.new(name, options)
@@used_names << p.name.to_s
mapper << p
p
end
|
.update(name) ⇒ Object
26
27
28
|
# File 'lib/symphonia/permissions.rb', line 26
def update(name)
self.get(name) || raise(PermissionMissingError)
end
|