Class | DataMapper::Adapters::InMemoryAdapter |
In: |
lib/dm-core/adapters/in_memory_adapter.rb
|
Parent: | AbstractAdapter |
This is probably the simplest functional adapter possible. It simply stores and queries from a hash containing the model classes as keys, and an array of hashes. It is not persistent whatsoever; when the Ruby process finishes, everything that was stored it lost. However, it doesn‘t require any other external libraries, such as data_objects, so it is ideal for writing specs against. It also serves as an excellent example for budding adapter developers, so it is critical that it remains well documented and up to date.
Make a new instance of the adapter. The @records ivar is the ‘data-store’ for this adapter. It is not shared amongst multiple incarnations of this adapter, eg DataMapper.setup(:default, :adapter => :in_memory); DataMapper.setup(:alternate, :adapter => :in_memory) do not share the data-store between them.
The name of the Repository using this adapter.
@param [String, Hash] uri_or_options
The connection uri string, or a hash of options to set up the adapter
@api semipublic
Used by DataMapper to put records into a data-store: "INSERT" in SQL-speak. It takes an array of the resources (model instances) to be saved. Resources each have a key that can be used to quickly look them up later without searching, if the adapter supports it.
@param [Enumerable(Resource)] resources
The set of resources (model instances)
@api semipublic
Destroys all the records matching the given query. "DELETE" in SQL.
@param [DataMapper::Collection] resources
The collection of resources to delete.
@return [Integer]
The number of records that were deleted.
@api semipublic
Used by DataMapper to update the attributes on existing records in a data-store: "UPDATE" in SQL-speak. It takes a hash of the attributes to update with, as well as a collection object that specifies which resources should be updated.
@param [Hash] attributes
A set of key-value pairs of the attributes to update the resources with.
@param [DataMapper::Collection] resources
The collection of resources to update.
@api semipublic