Commit 95ec500

mo <mo.khan@gmail.com>
2019-01-07 23:44:25
extract read/write attribute methods
1 parent 8948ea8
Changed files (1)
lib
scim
lib/scim/kit/v2/attributable.rb
@@ -21,18 +21,26 @@ module Scim
           dynamic_attributes[name]
         end
 
+        def read_attribute(name)
+          attribute = attribute_for(name)
+          return attribute._value if attribute.type.multi_valued
+
+          attribute.type.complex? ? attribute : attribute._value
+        end
+
+        def write_attribute(name, value)
+          attribute_for(name)._value = value
+        end
+
         def create_module_for(type)
           name = type.name.underscore.to_sym
           Module.new do
             define_method(name) do |*_args|
-              attribute = attribute_for(name)
-              return attribute._value if attribute.type.multi_valued
-
-              attribute.type.complex? ? attribute : attribute._value
+              read_attribute(name)
             end
 
             define_method("#{name}=") do |*args|
-              attribute_for(name)._value = args[0]
+              write_attribute(name, args[0])
             end
           end
         end