RubyGems Navigation menu

hold 1.0.1

A persistence library based more closely on the repository model. Used in production for several years. To summarize, the idea is that * You have Repositories which are responsible for persisting objects in a data store * Your data objects know nothing about persistence. They are just 'plain old' in-memory ruby objects can be created and manipulated independently of any particular repository. This is a substantially different approach to the widely used ActiveRecord pattern. Of course there are various trade-offs involved when choosing between these two approaches. ActiveRecord is a more lightweight approach which is often preferred for small-to-mid-sized database-backed web applications where the data model is tightly coupled to a database schema; whereas Repositories start to show benefits when it comes to, e.g.: * Separation of concerns in a larger system; avoiding bloated model classes with too many responsibilities * Ease of switching between alternative back-end data stores, e.g. database-backed vs persisted-in-a-config-file vs persisted in-memory. In particular, this can help avoid database dependencies when testing * Systems which persist objects in multiple data stores -- e.g. in a relational database, serialized in a key-value cache, serialized in config files, ... * Decoupling the structure of your data model from the schema of the data store used to persist it

Gemfile:
=

install:
=

Versions:

  1. 1.0.5 May 21, 2015 (41.5 KB)
  2. 1.0.4 May 21, 2015 (41.5 KB)
  3. 1.0.3 March 03, 2015 (41 KB)
  4. 1.0.2 December 03, 2014 (39.5 KB)
  5. 1.0.1 May 16, 2014 (40 KB)
Show all versions (6 total)

Runtime Dependencies (3):

sequel ~> 3
thin_models ~> 0.1.4
wirer >= 0.4.0

Development Dependencies (6):

json >= 0
mocha ~> 0.7
rake >= 0
sqlite3 >= 0
test-spec >= 0
test-unit ~> 1.2

Owners:

Authors:

  • Matthew Willson, Nick Griffiths

SHA 256 checksum:

=

Total downloads 15,726

For this version 2,735

Version Released:

License:

MIT

Required Ruby Version: >= 0

Links: