Sha256: ae1492b71c60e5b2358088d4794508bd7a0a60f57aef60dd501acf1a9508888e
Contents?: true
Size: 1.91 KB
Versions: 1
Compression:
Stored size: 1.91 KB
Contents
module DataMapper module Support module ActiveRecordImpersonation def self.included(base) base.extend(ClassMethods) end def save database_context.save(self) end def reload! database_context.first(self.class, key, :select => original_values.keys, :reload => true) self.loaded_associations.each { |association| association.reload! } self end def reload reload! end def destroy! database_context.destroy(self) end module ClassMethods def find_or_create(search_attributes, create_attributes = {}) first(search_attributes) || create(search_attributes.merge(create_attributes)) end def all(options = {}) database.all(self, options) end def first(*args) database.first(self, *args) end def count(*args) database.count(self, *args) end def delete_all database.delete_all(self) end def truncate! database.truncate(self) end def find(type_or_id, options = {}) case type_or_id when :first then first(options) when :all then all(options) else first(type_or_id, options) end end def find_by_sql(*args) DataMapper::database.query(*args) end def [](id_or_hash) first(id_or_hash) end def create(attributes) instance = self.new(attributes) instance.save instance end def create!(attributes) instance = self.new(attributes) raise InvalidRecord.new(instance) unless instance.save instance end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
datamapper-0.2.4 | lib/data_mapper/support/active_record_impersonation.rb |