Skip to content
This repository has been archived by the owner on Oct 26, 2023. It is now read-only.

ar-dm/ardm-core

 
 

Repository files navigation

Gem Version Build Status Dependency Status

ardm-core

A fork of dm-core.

Install

Swap out dm- gems for ardm- and re-bundle.

If a gem is missing, it hasn't been ported yet (there's a lot of them). Please open an issue on ardm-core and I'll get it ported asap.

About gems in the ardm- namespace

The ardm- gems are forks of their respective dm- gems rebuilt with a new gem name and rereleased at the same version number. For example,

gem 'dm-core', '1.2.1'
# is mostly the same gem as...
gem 'ardm-core', '1.2.1'

With a few small caveats, the gems at the same ardm- version as dm- version will contain exactly the same lib files.

The exceptions are as follows: Most of the dm- gems are too strict on their gem dependencies. ardm- gems are modified to require ~> Major.minor without the patch level. This means ardm- gems expect SemVer gems. With bundler this is almost never a problem, since gems are easily locked and upgraded on demand.

The ardm- gems all include a lib/ardm-core.rb file (matching the gem name) so that bundler continues to auto-include the gems without a special require: statement.

Going forward with ardm

Since ardm gems don't have the same legacy burden as their dm counterparts, it is possible to be more liberal with releases. Already, 1.3.0 versions are released for gems which had significant upgrade issues, such as ardm-rails, ardm-active-model, and ardm-core. At this point, using the newest ardm gems with versions matching ~> 1.2 (in order to include 1.3 releases) it should be possible to run rails 4.0 (and maybe 4.1 and 4.2) on rubies up to 2.1.5.

What about the ardm gem?

The ardm gem is a project started with the hopes of shimming datamapper, so that all datamapper behavior can be used on top of ActiveRecord. It is still in progress and these ardm- gems should assist with the upgrade.

My hope is to make each of these ardm- scoped gems compatible with ardm and smart enough to "turn off" their datamapper functionality when ardm is switched to ActiveRecord mode. It may even be possible to scope fixes to the ardm- gem that needs those patches, get the tests passing for each gem, and thus allow each active record shim to be turned on or off as needed.