Do not consider these to be part of the class list
# File lib/orm_adapter/adapters/active_record.rb, line 10 def self.except_classes @@except_classes ||= [ "CGI::Session::ActiveRecordStore::Session", "ActiveRecord::SessionStore::Session" ] end
Gets a list of the available models for this adapter
# File lib/orm_adapter/adapters/active_record.rb, line 18 def self.model_classes begin klasses = ::ActiveRecord::Base.__send__(:descendants) # Rails 3 rescue klasses = ::ActiveRecord::Base.__send__(:subclasses) # Rails 2 end klasses.select do |klass| !klass.abstract_class? && !except_classes.include?(klass.name) end end
Return list of column/property names
# File lib/orm_adapter/adapters/active_record.rb, line 31 def column_names klass.column_names end
# File lib/orm_adapter/adapters/active_record.rb, line 58 def create!(attributes) klass.create!(attributes) end
@see OrmAdapter::Base#find_all
# File lib/orm_adapter/adapters/active_record.rb, line 52 def find_all(options) conditions, order = extract_conditions_and_order!(options) klass.all :conditions => conditions_to_fields(conditions), :order => order_clause(order) end
@see OrmAdapter::Base#find_first
# File lib/orm_adapter/adapters/active_record.rb, line 46 def find_first(options) conditions, order = extract_conditions_and_order!(options) klass.first :conditions => conditions_to_fields(conditions), :order => order_clause(order) end
@see OrmAdapter::Base#get
# File lib/orm_adapter/adapters/active_record.rb, line 41 def get(id) klass.first :conditions => { klass.primary_key => wrap_key(id) } end
Introspects the klass to convert and objects in conditions into foreign key and type fields
# File lib/orm_adapter/adapters/active_record.rb, line 65 def conditions_to_fields(conditions) fields = {} conditions.each do |key, value| if value.is_a?(::ActiveRecord::Base) && (assoc = klass.reflect_on_association(key.to_sym)) && assoc.belongs_to? if ::ActiveRecord::VERSION::STRING < "3.1" fields[assoc.primary_key_name] = value.send(value.class.primary_key) fields[assoc.options[:foreign_type]] = value.class.base_class.name.to_s if assoc.options[:polymorphic] else # >= 3.1 fields[assoc.foreign_key] = value.send(value.class.primary_key) fields[assoc.foreign_type] = value.class.base_class.name.to_s if assoc.options[:polymorphic] end else fields[key] = value end end fields end
Generated with the Darkfish Rdoc Generator 2.