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:
= Copy to clipboard Copied!

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:

f720537a23a3fa81d23a5471e5054267ff5565ef4dd088527dfb522819ef6c16

Total downloads 15,171

For this version 2,646

License:

MIT

Required Ruby Version: >= 0

Links: