class Shark::Permissions::Resource
Attributes
name[R]
parts[R]
Public Class Methods
new(value)
click to toggle source
# File lib/shark/permissions/resource.rb, line 8 def initialize(value) @name = case value when String value when Array value.map(&:to_s).join(Shark::Permissions.delimiter) end @parts = @name.split(Shark::Permissions.delimiter) end
Public Instance Methods
ancestors()
click to toggle source
# File lib/shark/permissions/resource.rb, line 27 def ancestors ancestors_and_self[0..-2] end
ancestors_and_self()
click to toggle source
# File lib/shark/permissions/resource.rb, line 18 def ancestors_and_self names = [] parts.each_with_index do |_, i| names << parts[0..i].join(Shark::Permissions.delimiter) end names end
parent()
click to toggle source
# File lib/shark/permissions/resource.rb, line 31 def parent parent_name = parts[0..-2].join(Shark::Permissions.delimiter) parent_name.presence end
subresource_of?(value)
click to toggle source
# File lib/shark/permissions/resource.rb, line 36 def subresource_of?(value) return true if name == value regexp = value.gsub('*', '[a-z\-_0-9]*') "#{name}::".match(/\A#{regexp}::/).present? end
super_resource_of?(value)
click to toggle source
# File lib/shark/permissions/resource.rb, line 43 def super_resource_of?(value) return true if name == value regexp = name.gsub('*', '[a-z\-_0-9]*') "#{value}::".match(/\A#{regexp}::/).present? end
to_s()
click to toggle source
# File lib/shark/permissions/resource.rb, line 54 def to_s name end
wildcard?()
click to toggle source
# File lib/shark/permissions/resource.rb, line 50 def wildcard? parts.last == Shark::Permissions.any_matcher end