Method: Scimitar::Resources::Base.extend_schema

Defined in:
app/models/scimitar/resources/base.rb

.extend_schema(schema) ⇒ Object

Can be used to extend an existing resource type’s schema. For example:

module Scim
  module Schema
    class MyExtension < Scimitar::Schema::Base

      def initialize(options = {})
        super(name: 'ExtendedGroup',
              id: self.class.id,
              description: 'Represents extra info about a group',
              scim_attributes: self.class.scim_attributes)
      end

      def self.id
        'urn:ietf:params:scim:schemas:extension:extendedgroup:2.0:Group'
      end

      def self.scim_attributes
        [Scimitar::Schema::Attribute.new(name: 'someAddedAttribute',
                       type: 'string',
                       required: true,
                       canonicalValues: ['FOO', 'BAR'])]
      end
    end
  end
end

Scimitar::Resources::Group.extend_schema Scim::Schema::MyExtension


108
109
110
111
# File 'app/models/scimitar/resources/base.rb', line 108

def self.extend_schema(schema)
  derive_attributes_from_schema(schema)
  extended_schemas << schema
end