Sha256: 0b0ccfcd5563bfc5193116923c8bb8fdebb5c385c1992057fbaf3b40c6838912

Contents?: true

Size: 1.53 KB

Versions: 2

Compression:

Stored size: 1.53 KB

Contents

# TODOs

In no particular order

* User defined default settings for all mappings
* Refactor, methods too big, objects missing
* Name things better
* Full adaptorization of the database, refactor some Sequel specific things
  into the adapter

## Candidate features to consider
* Column aliasing
* Callbacks e.g. after_save, after_insert as functions defined in mapping
* Database generated IDs and Timestamps (perhaps implemented as callbacks)
* When possible optimise blocks given to `AssociationProxy#select` with
  Sequel's `#where` with block [querying API](http://sequel.jeremyevans.net/rdoc/files/doc/cheat_sheet_rdoc.html#label-AND%2FOR%2FNOT)
* `#eager_load!` that raises an error when traversing outside the eagerly
  loaded data

# Hopefully done

## Persistence
* Efficient saving
  - Part one, if it wasn't loaded it wasn't modified, check identity map
  - Part two, dirty tracking
* Support swapping out DB for in memory datasets

## Associations
* Eager loading

## Querying
* Querying API, what would a repository with some arbitrary queries look like?
  - e.g. an association on post called `burger_comments` that finds comments
    with the word burger in them

## Configuration
* Automatic config generation based on schema, foreign keys etc
* Config to take either a classes or callable factory

# Not happening (at least for now)

## Associations
* Read only associations
  - Loaded objects would be immutable
  - Collection proxy would have no #push or #remove
  - Skipped when dumping
* Associations defined with a join
* Composable associations

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
terrestrial-0.5.0 TODO.md
terrestrial-0.3.0 TODO.md