class Devise::Activeresource::Adapter
Adapter
based on orm_adapter interface github.com/ianwhite/orm_adapter/blob/master/lib/orm_adapter/base.rb
Attributes
Public Class Methods
# File lib/devise/activeresource/adapter.rb, line 8 def initialize(klass) @klass = klass end
Public Instance Methods
Get a list of column/property/field names
# File lib/devise/activeresource/adapter.rb, line 13 def column_names klass.attributes end
Create a model using attributes
# File lib/devise/activeresource/adapter.rb, line 62 def create!(attributes = {}) klass.create(attributes) end
Destroy an instance by passing in the instance itself.
# File lib/devise/activeresource/adapter.rb, line 67 def destroy(object) object.destroy end
Find all models, optionally matching conditions, and specifying order @see OrmAdapter::Base#find_first for how to specify order and conditions
# File lib/devise/activeresource/adapter.rb, line 55 def find_all(options = {}) conditions, limit, offset = extract_conditions!(options) params = conditions.merge(limit_offset_hash(limit, offset)) klass.find(:all, params: params) end
Find the first instance, optionally matching conditions
You can call with just conditions, providing a hash
User.to_adapter.find_first :name => "Fred", :age => 23 User.to_adapter.find_first :conditions => {:name => "Fred", :age => 23}
# File lib/devise/activeresource/adapter.rb, line 45 def find_first(options = {}) conditions, limit, offset = extract_conditions!(options) params = conditions.merge(limit_offset_hash(limit, offset)) klass.find(:first, params: params) rescue ActiveResource::InvalidRequestError nil end
Get an instance by id of the model. Returns nil if a model is not found. This should comply with ActiveModel#to_key API, i.e.:
User.to_adapter.get(@user.to_key) == @user
# File lib/devise/activeresource/adapter.rb, line 31 def get(id) klass.find(wrap_key(id)) rescue ActiveResource::ResourceNotFound nil end
Get an instance by id of the model. Raises an error if a model is not found. This should comply with ActiveModel#to_key API, i.e.:
User.to_adapter.get!(@user.to_key) == @user
# File lib/devise/activeresource/adapter.rb, line 22 def get!(id) klass.find(wrap_key(id)) end
Protected Instance Methods
given an options hash, with optional :conditions, :limit and :offset keys, returns conditions, limit and offset
# File lib/devise/activeresource/adapter.rb, line 84 def extract_conditions!(options = {}) _order = options.delete(:order) limit = options.delete(:limit) offset = options.delete(:offset) conditions = options.delete(:conditions) || options [conditions, limit, offset] end
# File lib/devise/activeresource/adapter.rb, line 93 def limit_offset_hash(limit, offset) response = {} response[:limit] = limit if limit && limit > 1 response[:offset] = offset if offset && offset > 1 response end
# File lib/devise/activeresource/adapter.rb, line 73 def valid_object?(object) object.class == klass end
# File lib/devise/activeresource/adapter.rb, line 77 def wrap_key(key) key.is_a?(Array) ? key.first : key end