Commit c31ef28
Changed files (5)
lib
lib/scim/kit/v2/templates/meta.json.jbuilder
@@ -0,0 +1,8 @@
+# frozen_string_literal: true
+
+json.key_format! camelize: :lower
+json.location location
+json.resource_type resource_type
+json.created created.iso8601 if created
+json.last_modified last_modified.iso8601 if last_modified
+json.version version.to_i if version
lib/scim/kit/v2/templates/service_provider_configuration.json.jbuilder
@@ -25,9 +25,5 @@ json.authentication_schemes authentication_schemes do |authentication_scheme|
render authentication_scheme, json: json
end
json.meta do
- json.location location
- json.resource_type 'ServiceProviderConfig'
- json.created created.iso8601
- json.last_modified last_modified.iso8601
- json.version version.to_i
+ render meta, json: json
end
lib/scim/kit/v2/meta.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+module Scim
+ module Kit
+ module V2
+ # Represents a meta section
+ class Meta
+ include Templatable
+
+ attr_accessor :created, :last_modified, :version
+ attr_reader :location
+ attr_reader :resource_type
+
+ def initialize(resource_type, location)
+ @resource_type = resource_type
+ @location = location
+ @version = @created = @last_modified = Time.now
+ end
+ end
+ end
+ end
+end
lib/scim/kit/v2/service_provider_configuration.rb
@@ -8,14 +8,12 @@ module Scim
include Templatable
attr_reader :location
attr_accessor :documentation_uri
- attr_accessor :created, :last_modified, :version
attr_reader :authentication_schemes
attr_reader :etag, :sort, :change_password, :patch
- attr_reader :bulk, :filter
+ attr_reader :bulk, :filter, :meta
def initialize(location:)
- @location = location
- @version = @created = @last_modified = Time.now
+ @meta = Meta.new('ServiceProviderConfig', location)
@authentication_schemes = []
@etag = Supportable.new
@sort = Supportable.new
lib/scim/kit.rb
@@ -10,6 +10,7 @@ require 'scim/kit/version'
require 'scim/kit/v2/attribute_type'
require 'scim/kit/v2/authentication_scheme'
+require 'scim/kit/v2/meta'
require 'scim/kit/v2/mutability'
require 'scim/kit/v2/resource_type'
require 'scim/kit/v2/returned'