Commit 2be844c

mo <mo.khan@gmail.com>
2018-12-26 19:25:44
support canonical values.
1 parent 7013be7
Changed files (3)
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