Comparing changes

v0.2.8 v0.2.9
3 commits 5 files changed

Commits

d8fc61e bump version mokha 2019-01-12 00:21:07
7fa8db6 make location optional mokha 2019-01-12 00:20:45
d3c3421 disable meta and ids unless present mokha 2019-01-12 00:19:17
Changed files (5)
lib/scim/kit/v2/templates/resource.json.jbuilder
@@ -1,12 +1,14 @@
 # frozen_string_literal: true
 
 json.key_format! camelize: :lower
-json.meta do
-  render meta, json: json
+if meta.location
+  json.meta do
+    render meta, json: json
+  end
 end
 json.schemas schemas.map(&:id)
-json.id id
-json.external_id external_id
+json.id id if id
+json.external_id external_id if external_id
 schemas.each do |schema|
   if schema.core?
     schema.attributes.each do |type|
lib/scim/kit/v2/meta.rb
@@ -17,6 +17,10 @@ module Scim
           @created = @last_modified = Time.now
           @version = @created.to_i
         end
+
+        def disable_timestamps
+          @version = @created = @last_modified = nil
+        end
       end
     end
   end
lib/scim/kit/v2/resource.rb
@@ -16,8 +16,9 @@ module Scim
         validates_presence_of :id
         validate :schema_validations
 
-        def initialize(schemas:, location:)
+        def initialize(schemas:, location: nil)
           @meta = Meta.new(schemas[0].name, location)
+          @meta.disable_timestamps
           @schemas = schemas
           schemas.each do |schema|
             define_attributes_for(schema.attributes)
lib/scim/kit/version.rb
@@ -2,6 +2,6 @@
 
 module Scim
   module Kit
-    VERSION = '0.2.8'
+    VERSION = '0.2.9'
   end
 end
spec/scim/kit/v2/resource_spec.rb
@@ -158,4 +158,12 @@ RSpec.describe Scim::Kit::V2::Resource do
       specify { expect(subject.errors[:hero]).to be_present }
     end
   end
+
+  context 'when submitting new record' do
+    subject { described_class.new(schemas: schemas) }
+
+    specify { expect(subject.as_json.key?(:meta)).to be(false) }
+    specify { expect(subject.as_json.key?(:id)).to be(false) }
+    specify { expect(subject.as_json.key?(:externalId)).to be(false) }
+  end
 end