Class: HasHelpers::ServiceTrust::Capability

Inherits:
Object
  • Object
show all
Defined in:
lib/has_helpers/service_trust/capability.rb

Class Method Summary collapse

Class Method Details

.any_match?(capability_set, required_list) ⇒ Boolean

Returns:

  • (Boolean)


25
26
27
28
# File 'lib/has_helpers/service_trust/capability.rb', line 25

def any_match?(capability_set, required_list)
  set = parse(capability_set)
  Array(required_list).any? { |required| set.include?(required.to_s) }
end

.effective(token_caps:, allowed_caps:) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/has_helpers/service_trust/capability.rb', line 13

def effective(token_caps:, allowed_caps:)
  allowed = parse(allowed_caps)
  token = parse(token_caps)
  return allowed if token.empty?

  token & allowed
end

.includes?(capability_set, required) ⇒ Boolean

Returns:

  • (Boolean)


21
22
23
# File 'lib/has_helpers/service_trust/capability.rb', line 21

def includes?(capability_set, required)
  parse(capability_set).include?(required.to_s)
end

.parse(string_or_array) ⇒ Object



7
8
9
10
11
# File 'lib/has_helpers/service_trust/capability.rb', line 7

def parse(string_or_array)
  Array(string_or_array).flat_map { |entry| entry.to_s.split(/\s+/) }.
    reject(&:blank?).
    uniq
end