Commit 410e148

mokha <mokha@cisco.com>
2018-01-15 22:50:35
move roots to clases.
1 parent 7d2efaf
lib/scim/shady/builders/metadata.rb
@@ -1,7 +1,7 @@
 module Scim
   module Shady
     module Builders
-      module Metadata
+      class Metadata
         attr_accessor :created_at
         attr_accessor :updated_at
         attr_accessor :location
lib/scim/shady/builders/resource.rb
@@ -2,18 +2,22 @@ module Scim
   module Shady
     module Builders
       class Resource
-        include Metadata
         attr_accessor :id
 
         def initialize
           @created_at = @updated_at = Time.now
+          @meta = Metadata.new
+        end
+
+        def meta
+          yield @meta
         end
 
         def to_h
-          super.merge({
+          {
             'schemas' => [],
             'id' => id,
-          })
+          }.merge(@meta.to_h)
         end
       end
     end
lib/scim/shady/builders/service_provider_configuration.rb
@@ -2,7 +2,6 @@ module Scim
   module Shady
     module Builders
       class ServiceProviderConfiguration
-        include Metadata
         attr_accessor :documentation_uri
         attr_accessor :patch
         attr_accessor :change_password_supported
@@ -12,6 +11,7 @@ module Scim
         def initialize
           @authentication_schemes = []
           @created_at = @updated_at = Time.now
+          @meta = Metadata.new
         end
 
         def bulk
lib/scim/shady/builders/user.rb
@@ -23,7 +23,7 @@ module Scim
           @photos = Photos.new
           @groups = Groups.new
           @x509_certificates = X509Certificates.new
-          @meta = Metadata.new
+          super
         end
 
         def name
@@ -58,10 +58,6 @@ module Scim
           yield @x509_certificates
         end
 
-        def meta
-          yield @meta
-        end
-
         def build
           Scim::Shady::User.new(to_json)
         end
@@ -75,24 +71,24 @@ module Scim
             'schemas' => [Schemas::USER],
             'externalId' => external_id,
             'userName' => username,
-            'name' => @name.to_h,
             'displayName' => display_name,
             'nickName' => nick_name,
             'profile_url' => profile_url,
-            'emails' => @emails.to_h,
-            'addresses' => @addresses.to_h,
-            'phoneNumbers' => @phone_numbers.to_h,
-            'ims' => @instant_messengers.to_h,
-            'photos' => @photos.to_h,
             'userType' => user_type,
             'title' => title,
             'preferredLanguage' => preferred_language,
             'locale' => locale,
             'timezone' => timezone,
             'active' => active,
-            'groups' => @groups.to_h,
-            'x509Certificates' => @x509_certificates.to_h,
-          }).merge(@meta.to_h)
+          })
+            .merge(@name.to_h)
+            .merge(@emails.to_h)
+            .merge(@addresses.to_h)
+            .merge(@phone_numbers.to_h)
+            .merge(@instant_messengers.to_h)
+            .merge(@photos.to_h)
+            .merge(@groups.to_h)
+            .merge(@x509_certificates.to_h)
         end
       end
 
@@ -108,12 +104,14 @@ module Scim
 
         def to_h
           {
-            'formatted' => formatted,
-            'familyName' => family_name,
-            'givenName' => given_name,
-            'middleName' => middle_name,
-            'honorificPrefix' => honorific_prefix,
-            'honorificSuffix' => honorific_suffix,
+            'name' => {
+              'formatted' => formatted,
+              'familyName' => family_name,
+              'givenName' => given_name,
+              'middleName' => middle_name,
+              'honorificPrefix' => honorific_prefix,
+              'honorificSuffix' => honorific_suffix,
+            }
           }
         end
       end
@@ -125,7 +123,7 @@ module Scim
         end
 
         def to_h
-          @items
+          { 'emails' => @items }
         end
       end
 
@@ -144,7 +142,7 @@ module Scim
         end
 
         def to_h
-          @items
+          { 'addresses' => @items }
         end
       end
 
@@ -155,7 +153,7 @@ module Scim
         end
 
         def to_h
-          @items
+          { 'phoneNumbers' => @items }
         end
       end
 
@@ -166,7 +164,7 @@ module Scim
         end
 
         def to_h
-          @items
+          { 'ims' => @items }
         end
       end
 
@@ -177,7 +175,7 @@ module Scim
         end
 
         def to_h
-          @items
+          { 'photos' => @items }
         end
       end
 
@@ -188,7 +186,7 @@ module Scim
         end
 
         def to_h
-          @items
+          { 'groups' => @items }
         end
       end
 
@@ -199,7 +197,7 @@ module Scim
         end
 
         def to_h
-          @items
+          { 'x509Certificates' => @items }
         end
       end
     end