This repository has been archived by the owner on Apr 17, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 153
Roadmap
dkubb edited this page Aug 14, 2010
·
60 revisions
DataMapper development is community driven, and priority is based on contributor need. This page lists the things the contributors are interested in seeing in DataMapper prior to 1.0
Please review some of the features below, and if you are interested in helping with them, please contact dkubb (Dan Kubb) in irc within #datamapper.
More information is coming; each feature name will be hyperlinked to a document containing more information and any open questions.
The 0.10.0 series will likely be the last before the 1.0 release (on or before RailsConf 2010).
Here are the planned features:
- Finalize the Model, Collection and Resource APIs to match this gist
- Updated Identity Map to use Moneta API
- Provide a way to specify a custom IM per-model
RDBMS Decoupling – RDBMS Decoupling
- Move DO adapters into dm-more as:
- dm-mysql-adapter
- dm-postgres-adapter
- dm-sqlite3-adapter
- dm-oracle-adapter
- dm-sqlserver-adapter
- Move lib/dm-core/migrations.rb into dm-migrations
- Move lib/dm-core/transaction.rb into dm-transaction
- Add adapters for JRuby drivers
- dm-h2-adapter
- dm-derby-adapter
- dm-hsql-adapter
- Move Paranoid types out into dm-types
- Unify Property and Type
- Create one DM::Property subclass for each primitive: Gist
- Move type specific code from DM::Property into subclasses
- Move type specific options to subclasses
- Throw exceptions when wrong option used, like :size in a String object.
- Update dm-types to inherit from DM::Property
- Update dm-validations to add validations when has 1..3 used to ensure the minimal/maximal number of children is present.
- Should also work for has 1, has 1..n, etc
- Add EmbeddedValue (EV) with the same API as DM::Model
- Update dm-validations to work with an EV.
- This concept comes from PoEAA, and is called the Embedded Value Pattern
Example Code:
class Address
include DataMapper::EmbeddedValue
property :street, String
property :location, String
property :subdivision, String
property :postal_code, String
property :country, String
end
class User
include DataMapper::Resource
property :id, Serial
property :name, String
property :address, Address
end
- Remove dependency from Extlib, and use ActiveSupport, assuming libs can be cherry-picked
- Change before/after hooks to use explicitly named callbacks, like AR.
- Update datamapper.org docs, and model Django’s documentation guidelines.
- Focus on short, quick tutorials, and longer topical guides for each area of DM (querying, models, validations, etc).