Commit c70bb91

mo khan <mo@mokhan.ca>
2014-04-06 23:22:22
extract login command.
1 parent 109d000
Changed files (3)
app/controllers/logins_controller.rb
@@ -4,7 +4,7 @@ class LoginsController < ApplicationController
   end
 
   def create
-    if User.find_by(email: params[:email]).authenticate(params[:password])
+    if LoginCommand.new.run(params)
       redirect_to dashboard_path
     else
       flash[:error] = I18n.translate(:invalid_credentials)
app/models/services/login_command.rb
@@ -0,0 +1,9 @@
+class LoginCommand
+  def initialize(users = User)
+    @users = users
+  end
+
+  def run(params)
+    @users.find_by(email: params[:email]).authenticate(params[:password])
+  end
+end
config/application.rb
@@ -24,5 +24,6 @@ module Mocode
     # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
     # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
     # config.i18n.default_locale = :de
+    config.autoload_paths << "#{Rails.root}/app/models/services"
   end
 end