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'))