Commit 81746da
Changed files (7)
lib
scim
kit
spec
lib/scim/kit/v2/templates/attribute_type.json.jbuilder
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+json.description description
+json.multiValued multi_valued
+json.mutability mutability
+json.name name
+json.required required
+json.returned returned
+json.type type
+json.uniqueness uniqueness
+json.caseExact(case_exact) if string? || reference?
+json.referenceTypes(reference_types) if reference?
+if complex?
+ json.subAttributes @attributes do |attribute|
+ Scim::Kit::Template.new(attribute).to_json(json: json)
+ end
+end
lib/scim/kit/v2/templates/schema.json.jbuilder
@@ -7,4 +7,6 @@ json.meta do
json.resourceType 'Schema'
json.location location
end
-json.attributes attributes.map(&:to_h)
+json.attributes attributes do |attribute|
+ Scim::Kit::Template.new(attribute).to_json(json: json)
+end
lib/scim/kit/v2/attribute_type.rb
@@ -58,21 +58,12 @@ module Scim
@attributes << attribute
end
+ def to_json
+ Template.new(self).to_json
+ end
+
def to_h
- result = {
- description: description,
- multiValued: multi_valued,
- mutability: mutability,
- name: name,
- required: required,
- returned: returned,
- type: type.to_s,
- uniqueness: uniqueness
- }
- result[:caseExact] = case_exact if string? || reference?
- result[:referenceTypes] = reference_types if reference?
- result[:subAttributes] = @attributes.map(&:to_h) if complex?
- result
+ JSON.parse(to_json, symbolize_names: true)
end
private
lib/scim/kit.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
require 'tilt'
require 'tilt/jbuilder'
spec/spec_helper.rb
@@ -4,6 +4,7 @@ require 'bundler/setup'
require 'scim/kit'
require 'ffaker'
require 'json'
+require 'byebug'
RSpec.configure do |config|
# Enable flags like --only-failures and --next-failure
.gitignore
@@ -10,3 +10,4 @@
# rspec failure tracking
.rspec_status
Gemfile.lock
+.byebug_history
scim-kit.gemspec
@@ -32,6 +32,7 @@ Gem::Specification.new do |spec|
spec.add_dependency 'tilt-jbuilder', '~> 0.7'
spec.add_development_dependency 'bundler', '~> 1.17'
spec.add_development_dependency 'bundler-audit', '~> 0.6'
+ spec.add_development_dependency 'byebug'
spec.add_development_dependency 'ffaker', '~> 2.7'
spec.add_development_dependency 'rake', '~> 10.0'
spec.add_development_dependency 'rspec', '~> 3.0'