Commit 5ad0494

mo <mo.khan@gmail.com>
2018-12-23 21:26:44
start to build resource class.
1 parent a95eaa2
lib/scim/kit/resource.rb
@@ -0,0 +1,15 @@
+module Scim
+  module Kit
+    class Resource
+      def to_json
+        JSON.generate(to_h)
+      end
+
+      def to_h
+        {
+          schemas: [Schema::RESOURCE_TYPE]
+        }
+      end
+    end
+  end
+end
lib/scim/kit/schema.rb
@@ -0,0 +1,12 @@
+# frozen_string_literal: true
+
+module Scim
+  module Kit
+    module Schema
+      ERROR = 'urn:ietf:params:scim:api:messages:2.0:Error'
+      GROUP = 'urn:ietf:params:scim:schemas:core:2.0:Group'
+      RESOURCE_TYPE = 'urn:ietf:params:scim:schemas:core:2.0:ResourceType'
+      USER = 'urn:ietf:params:scim:schemas:core:2.0:User'
+    end
+  end
+end
lib/scim/kit.rb
@@ -1,6 +1,8 @@
 # frozen_string_literal: true
 
 require 'scim/kit/version'
+require 'scim/kit/schema'
+require 'scim/kit/resource'
 
 module Scim
   module Kit
spec/scim/kit/resource_spec.rb
@@ -0,0 +1,17 @@
+RSpec.describe Scim::Kit::Resource do
+  subject { described_class.new }
+
+  before do
+    #subject.id = "Group"
+    #subject.meta.location = "https://www.example.org/scim/v2/resource_types/Group"
+    #subject.description = "Group"
+    #subject.endpoint = "https://www.example.org/scim/v2/groups"
+    #subject.name = "Group"
+    #subject.schema Scim::Kit::Schema::Group
+    #subject.schema_extensions = []
+  end
+
+  let(:hash) { JSON.parse(subject.to_json, symbolize_names: true) }
+
+  specify { expect(hash[:schemas]).to match_array([Scim::Kit::Schema::RESOURCE_TYPE]) }
+end
spec/spec_helper.rb
@@ -2,6 +2,7 @@
 
 require 'bundler/setup'
 require 'scim/kit'
+require 'json'
 
 RSpec.configure do |config|
   # Enable flags like --only-failures and --next-failure