Commit 0e9b113e

mo khan <mo@mokhan.ca>
2014-08-16 20:00:48
implement a simple search.
1 parent 6e15981
Changed files (2)
app
models
spec
app/models/user.rb
@@ -68,7 +68,8 @@ class User < ActiveRecord::Base
     end
 
     def search_by(query)
-      self.scoped
+      return self.all if query.blank?
+      self.where('name like :query or email like :query', query: "#{query}%")
     end
 
     def login(username, password)
spec/models/user_spec.rb
@@ -164,4 +164,21 @@ describe User do
       end
     end
   end
+
+  describe ".search_by" do
+    let!(:mo) { create(:user) }
+    let!(:bob) { create(:user) }
+
+    it "returns a user that has a matching email address" do
+      results = User.search_by(mo.email)
+      expect(results).to include(mo)
+      expect(results).to_not include(bob)
+    end
+
+    it "returns a user that has a matching name" do
+      results = User.search_by(bob.name)
+      expect(results).to include(bob)
+      expect(results).to_not include(mo)
+    end
+  end
 end