lib/scim/kit/v2/attribute.rb in scim-kit-0.2.10 vs lib/scim/kit/v2/attribute.rb in scim-kit-0.2.11

- old
+ new

@@ -30,17 +30,29 @@ def _value=(new_value) _assign(new_value, coerce: true) end def renderable? - return false if read_only? && _resource.mode?(:client) - return false if write_only? && - (_resource.mode?(:server) || _value.blank?) + return false if server_only? + return false if client_only? + return false if restricted? true end private + + def server_only? + read_only? && _resource.mode?(:client) + end + + def client_only? + write_only? && (_resource.mode?(:server) || _value.blank?) + end + + def restricted? + _resource.mode?(:server) && type.returned == Returned::NEVER + end def presence_of_value return unless type.required && _value.blank? errors.add(type.name, I18n.t('errors.messages.blank'))