Class: Audiences::Scim::ScimData

Inherits:
Object
  • Object
show all
Defined in:
lib/audiences/scim/scim_data.rb

Instance Method Summary collapse

Instance Method Details

#add(object, key, val) ⇒ Object



8
9
10
11
# File 'lib/audiences/scim/scim_data.rb', line 8

def add(object, key, val)
  value = object.data&.dig(*key.split(".")) || []
  replace(key, [...value, val])
end

#remove(object, key, val) ⇒ Object



13
14
15
16
17
# File 'lib/audiences/scim/scim_data.rb', line 13

def remove(object, key, val)
  values = object.data&.dig(*key.split(".")) || []
  to_remove = [val].flatten.pluck("value")
  replace(key, values&.reject { |value| to_remove.include?(value["value"]) })
end

#replace(object, key, value) ⇒ Object



6
# File 'lib/audiences/scim/scim_data.rb', line 6

def replace(object, key, value) = _replace(object.data || {}, key.split("."), value)