Commit 0bc6f6b
Changed files (3)
lib
scim
kit
spec
scim
lib/scim/kit/v2/attribute_type.rb
@@ -107,20 +107,21 @@ module Scim
end
def valid?(value)
- return false if multi_valued && !value.respond_to?(:each)
-
if multi_valued
- value.each do |x|
- return false unless (complex? ? valid_complex?(x) : valid_simple?(x))
- end
- true
- else
- complex? ? valid_complex?(value) : valid_simple?(value)
+ return false unless value.respond_to?(:to_a)
+
+ return value.to_a.all? { |x| validate(x) }
end
+
+ complex? ? valid_complex?(value) : valid_simple?(value)
end
private
+ def validate(value)
+ complex? ? valid_complex?(value) : valid_simple?(value)
+ end
+
def valid_simple?(value)
VALIDATIONS[type]&.call(value)
end
spec/scim/kit/v2/attribute_type_spec.rb
@@ -143,7 +143,7 @@ RSpec.describe Scim::Kit::V2::AttributeType do
end
specify { expect(subject).to be_valid([value: email, primary: true]) }
- specify { expect(subject).to be_valid([{ value: email, primary: true, }, { value: other_email, primary: false }]) }
+ specify { expect(subject).to be_valid([{ value: email, primary: true }, { value: other_email, primary: false }]) }
specify { expect(subject).not_to be_valid(email) }
specify { expect(subject).not_to be_valid([email]) }
specify { expect(subject).not_to be_valid([value: 1, primary: true]) }
spec/scim/kit/v2/schema_spec.rb
@@ -15,7 +15,7 @@ RSpec.describe Scim::Kit::V2::Schema do
specify { expect(result[:meta][:resourceType]).to eql('Schema') }
specify { expect(result[:meta][:location]).to eql(location) }
- context "with a description" do
+ context 'with a description' do
before do
subject.description = description
end