Commit dfb1bbf

mo <mo@mokhan.ca>
2019-06-15 16:21:38
begin to convert class method to instance methods
1 parent 63ad9f4
Changed files (3)
app/models/scim/search.rb
@@ -42,9 +42,17 @@ module Scim
       end
     end
 
-    def self.for(filter, clazz)
+    def initialize(clazz)
+      @clazz = clazz
+    end
+
+    def for(filter)
       node = Scim::Search::Node.parse(filter)
-      node.accept(Scim::Visitor.new(clazz, clazz.scim_mapper))
+      node.accept(Scim::Visitor.new(@clazz, @clazz.scim_mapper))
+    end
+
+    def self.for(filter, clazz)
+      new(clazz).for(filter)
     end
   end
 end
app/models/user.rb
@@ -13,7 +13,7 @@ class User < ApplicationRecord
   validates :timezone, inclusion: VALID_TIMEZONES
   validates :locale, inclusion: VALID_LOCALES
 
-  scope :scim_search, ->(filter) { Scim::Search.for(filter, User) }
+  scope :scim_search, ->(filter) { Scim::Search.new(User).for(filter) }
 
   def name_id_for(name_id_format)
     Saml::Kit::Namespaces::PERSISTENT == name_id_format ? id : email
Gemfile
@@ -25,8 +25,8 @@ gem 'saml-kit', '~> 1.0'
 gem 'scim-kit', github: 'mokhan/scim-kit'
 gem 'spank', '~> 1.0'
 gem 'turbolinks', '~> 5'
-gem 'webpacker', '~> 4.0'
 gem 'varkon', '~> 0.1'
+gem 'webpacker', '~> 4.0'
 group :doc do
   gem 'jekyll', '~> 3.8'
   gem "minima", "~> 2.0" # This is the default theme for new Jekyll sites.