HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
datamapper
dm-core
Ruby2016–2016
datamapper / dm-core · Archived

dm-core

DataMapper - Core

2Distinct people
2Mentions
0Explicit recommenders
746GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

DataMapper - Core

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 12:54:37 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by hour2 dated mentions

Observed mentions: 2016-05-22 18:07:40 UTC to 2016-05-23 14:45:29 UTC.

012016-05-22 18:00:00 UTC to 2016-05-22 19:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsMay 22, 18:002016-05-22 19:00:00 UTC to 2016-05-22 20:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-22 20:00:00 UTC to 2016-05-22 21:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-22 21:00:00 UTC to 2016-05-22 22:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-22 22:00:00 UTC to 2016-05-22 23:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-22 23:00:00 UTC to 2016-05-23 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-23 00:00:00 UTC to 2016-05-23 01:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-23 01:00:00 UTC to 2016-05-23 02:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-23 02:00:00 UTC to 2016-05-23 03:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-23 03:00:00 UTC to 2016-05-23 04:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-23 04:00:00 UTC to 2016-05-23 05:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsMay 23, 04:002016-05-23 05:00:00 UTC to 2016-05-23 06:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-23 06:00:00 UTC to 2016-05-23 07:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-23 07:00:00 UTC to 2016-05-23 08:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-23 08:00:00 UTC to 2016-05-23 09:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-23 09:00:00 UTC to 2016-05-23 10:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-23 10:00:00 UTC to 2016-05-23 11:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-23 11:00:00 UTC to 2016-05-23 12:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-23 12:00:00 UTC to 2016-05-23 13:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-23 13:00:00 UTC to 2016-05-23 14:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-05-23 14:00:00 UTC to 2016-05-23 15:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsMay 23, 14:00

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
May 22, 18:002016-05-22 18:00:00 UTC2016-05-22 19:00:00 UTC101
May 22, 19:002016-05-22 19:00:00 UTC2016-05-22 20:00:00 UTC000
May 22, 20:002016-05-22 20:00:00 UTC2016-05-22 21:00:00 UTC000
May 22, 21:002016-05-22 21:00:00 UTC2016-05-22 22:00:00 UTC000
May 22, 22:002016-05-22 22:00:00 UTC2016-05-22 23:00:00 UTC000
May 22, 23:002016-05-22 23:00:00 UTC2016-05-23 00:00:00 UTC000
May 23, 00:002016-05-23 00:00:00 UTC2016-05-23 01:00:00 UTC000
May 23, 01:002016-05-23 01:00:00 UTC2016-05-23 02:00:00 UTC000
May 23, 02:002016-05-23 02:00:00 UTC2016-05-23 03:00:00 UTC000
May 23, 03:002016-05-23 03:00:00 UTC2016-05-23 04:00:00 UTC000
May 23, 04:002016-05-23 04:00:00 UTC2016-05-23 05:00:00 UTC000
May 23, 05:002016-05-23 05:00:00 UTC2016-05-23 06:00:00 UTC000
May 23, 06:002016-05-23 06:00:00 UTC2016-05-23 07:00:00 UTC000
May 23, 07:002016-05-23 07:00:00 UTC2016-05-23 08:00:00 UTC000
May 23, 08:002016-05-23 08:00:00 UTC2016-05-23 09:00:00 UTC000
May 23, 09:002016-05-23 09:00:00 UTC2016-05-23 10:00:00 UTC000
May 23, 10:002016-05-23 10:00:00 UTC2016-05-23 11:00:00 UTC000
May 23, 11:002016-05-23 11:00:00 UTC2016-05-23 12:00:00 UTC000
May 23, 12:002016-05-23 12:00:00 UTC2016-05-23 13:00:00 UTC000
May 23, 13:002016-05-23 13:00:00 UTC2016-05-23 14:00:00 UTC000
May 23, 14:002016-05-23 14:00:00 UTC2016-05-23 15:00:00 UTC101

What Hacker News says

2 sources
The idea that DM wasn't a DataMapper is misguided. Check out: https://github.com/datamapper/dm-core/blob/0.9.0.1/lib/data_... The convenience methods were just wrappers. Earlier versions were even more true to the PoEAA version of a DataMapper with a Unit of Work in the Session class. Turned out this was a bad idea if your primary motivation is performance. The fact that it didn't bother to abstract away DataObjects was by design. Nobody would claim NHibernate (of the time, 2.x) wasn't a Data Mapper implementation just because it didn't have an adapter for treating an XML file as a database. That's a parlor trick. The real effort is in making it work and making it fast. Porting Java designs to Ruby just didn't scale in the Ruby implementations of the time and conscious decisions were made to ensure DM would actually solve the problems it
Read the rest
was developed to address (#1 being performance as I had a large set of data to migrate that initial experiments with AR projected to take a month(!)). The primary concern turned out to be Ruby method dispatch performance. The shorter you could make the stack, the better. Since loading 1,000 objects might be operating on a 10,000 row set, and another order of magnitude more fields, the materialization pipeline had to be streamlined as much as possible. (AR implemented a nasty abomination of a hack for this by round-tripping to the database multiple times). When it's faster to round-trip to the database multiple times than it is to iterate a large object in memory, you've got a real problem. The lazy loading, explicit fields, dirty tracking in the Unit of Work, (which at the time were all fairly controversial ideas in rails-core) etc were all an effort to address performance. The PoEAA was an inspiration for sure, but it turned out to be a prescription for poor performance on Ruby 1.8.x.
In My time with Rails is up

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.