From 8a8ba6c70c5ce7a454048a8261bbd996d387bc55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sun, 10 Oct 2010 17:51:12 +0200 Subject: [PATCH] Depend on ORM Adapter. --- Gemfile | 6 ++++++ Gemfile.lock | 6 ++++++ app/controllers/devise/registrations_controller.rb | 2 +- lib/devise.rb | 1 + lib/devise/models/authenticatable.rb | 4 ++-- lib/devise/models/rememberable.rb | 2 +- lib/devise/orm/active_record.rb | 2 ++ lib/devise/orm/mongoid.rb | 2 ++ 8 files changed, 21 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 456ac022..9e5ff871 100644 --- a/Gemfile +++ b/Gemfile @@ -7,6 +7,12 @@ gem "webrat", "0.7.1" gem "mocha", :require => false gem "oauth2" +if File.exist?("../orm_adapter") + gem "orm_adapter", :path => "../orm_adapter" +else + gem "orm_adapter", :git => "http://github.com/ianwhite/orm_adapter.git" +end + platforms :jruby do gem 'activerecord-jdbcsqlite3-adapter' end diff --git a/Gemfile.lock b/Gemfile.lock index 0d9918db..d87277f0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -5,6 +5,11 @@ PATH bcrypt-ruby (~> 2.1.2) warden (~> 1.0.0) +PATH + remote: /Users/jose/Work/github/orm_adapter + specs: + orm_adapter (0.0.1) + GEM remote: http://rubygems.org/ specs: @@ -126,6 +131,7 @@ DEPENDENCIES mongo (= 1.0.7) mongoid (= 2.0.0.beta.18) oauth2 + orm_adapter! rails (= 3.0.0) ruby-debug (>= 0.10.3) sqlite3-ruby diff --git a/app/controllers/devise/registrations_controller.rb b/app/controllers/devise/registrations_controller.rb index f7403c77..a86316bd 100644 --- a/app/controllers/devise/registrations_controller.rb +++ b/app/controllers/devise/registrations_controller.rb @@ -104,6 +104,6 @@ class Devise::RegistrationsController < ApplicationController # the current user in place. def authenticate_scope! send(:"authenticate_#{resource_name}!") - self.resource = resource_class.find(send(:"current_#{resource_name}").id) + self.resource = resource_class.to_adapter.get!(send(:"current_#{resource_name}").to_key) end end diff --git a/lib/devise.rb b/lib/devise.rb index 08243ed0..dcc298a0 100644 --- a/lib/devise.rb +++ b/lib/devise.rb @@ -1,5 +1,6 @@ require 'active_support/core_ext/numeric/time' require 'active_support/dependencies' +require 'orm_adapter' require 'set' module Devise diff --git a/lib/devise/models/authenticatable.rb b/lib/devise/models/authenticatable.rb index 7f322263..9bb27c06 100644 --- a/lib/devise/models/authenticatable.rb +++ b/lib/devise/models/authenticatable.rb @@ -100,7 +100,7 @@ module Devise # end # def find_for_authentication(conditions) - find(:first, :conditions => conditions) + to_adapter.find_first(conditions) end # Find an initialize a record setting an error if it can't be found. @@ -114,7 +114,7 @@ module Devise attributes.delete_if { |key, value| value.blank? } if attributes.size == required_attributes.size - record = find(:first, :conditions => attributes) + record = to_adapter.find_first(attributes) end unless record diff --git a/lib/devise/models/rememberable.rb b/lib/devise/models/rememberable.rb index a5b0f0c0..bfd451d7 100644 --- a/lib/devise/models/rememberable.rb +++ b/lib/devise/models/rememberable.rb @@ -105,7 +105,7 @@ module Devise # Recreate the user based on the stored cookie def serialize_from_cookie(id, remember_token) - record = find(:first, :conditions => { :id => id.first }) + record = to_adapter.get(id) record if record && record.rememberable_value == remember_token && !record.remember_expired? end diff --git a/lib/devise/orm/active_record.rb b/lib/devise/orm/active_record.rb index 781c8dfe..8e08e23e 100644 --- a/lib/devise/orm/active_record.rb +++ b/lib/devise/orm/active_record.rb @@ -1,3 +1,5 @@ +require 'orm_adapter/adapters/active_record' + module Devise module Orm # This module contains some helpers and handle schema (migrations): diff --git a/lib/devise/orm/mongoid.rb b/lib/devise/orm/mongoid.rb index 56e38941..e5a1c971 100644 --- a/lib/devise/orm/mongoid.rb +++ b/lib/devise/orm/mongoid.rb @@ -1,3 +1,5 @@ +require 'orm_adapter/adapters/mongoid' + module Devise module Orm module Mongoid