DataMapper without a database
DataMapper is fast becoming a credible contender in the Ruby ORM field. The first - and only at this early stage - thing that temporarily disappointed me was the following scenario.
class Foo include DataMapper::Resource property :id, Integer, :serial => true property :title, String end
Running this produces
ArgumentError: Unknown adapter name: default
,
suggesting that a database connection needs to be setup in order to use any objects that include the
DataMapper::Resource
module. This is something I would rather not have to do for my dependency neutral test suite, in which all calls to ORM objects are simulated using mocks.
I soon realized that DataMapper doesn't require a database connection to be present, but needs to know which adapter to use. If we're not interested in interacting with the database, using
DataMapper::Adapters::AbstractAdapter
does the trick.
DataMapper.setup(:default, "abstract::") class Foo include DataMapper::Resource property :id, Integer, :serial => true property :title, String end Foo.new(:title => "metal").title # => "metal"