Commit 2be844c
Changed files (3)
lib
scim
kit
v2
spec
scim
kit
lib/scim/kit/v2/templates/attribute_type.json.jbuilder
@@ -10,6 +10,7 @@ json.type type
json.uniqueness uniqueness
json.caseExact(case_exact) if string? || reference?
json.referenceTypes(reference_types) if reference?
+json.canonicalValues(canonical_values) if canonical_values
if complex?
json.subAttributes attributes do |attribute|
render attribute, json: json
lib/scim/kit/v2/attribute_type.rb
@@ -16,13 +16,14 @@ module Scim
reference: 'reference',
complex: 'complex'
}.freeze
- attr_reader :name, :type
- attr_accessor :multi_valued
- attr_accessor :required
+ attr_accessor :canonical_values
attr_accessor :case_exact
attr_accessor :description
- attr_accessor :reference_types
+ attr_accessor :multi_valued
+ attr_accessor :required
attr_reader :mutability
+ attr_reader :name, :type
+ attr_reader :reference_types
attr_reader :returned
attr_reader :uniqueness
@@ -58,6 +59,11 @@ module Scim
attributes << attribute
end
+ def reference_types=(value)
+ @type = :reference
+ @reference_types = value
+ end
+
private
def attributes
spec/scim/kit/v2/attribute_type_spec.rb
@@ -58,6 +58,9 @@ RSpec.describe Scim::Kit::V2::AttributeType do
specify { expect(build(uniqueness: :server).to_h[:uniqueness]).to eql('server') }
specify { expect(build(uniqueness: :global).to_h[:uniqueness]).to eql('global') }
specify { expect { build(uniqueness: :invalid) }.to raise_error(ArgumentError) }
+
+ specify { expect(build(reference_types: %w[User Group]).to_h[:referenceTypes]).to match_array(%w[User Group]) }
+ specify { expect(build(canonical_values: %w[User Group]).to_h[:canonicalValues]).to match_array(%w[User Group]) }
end
end
end