README.rdoc in cloudwow-not_relational-0.1.9 vs README.rdoc in cloudwow-not_relational-0.1.11
- old
+ new
@@ -1,7 +1,65 @@
= not_relational
+== Domain model persistance on non relational databases.
+Not Relational is a really good thing that you really want. It is in fact a ruby library for declaring and persisting domain models. It is similiar in some ways to Active Record but is oriented towards non-relational databases such as Amazon's Simple DB service. In version 1.x only SDBRepository and the MemoryRepository (a self contained repository for tests and small apps) are implemented.
-not relational is a really good thing that you really want.
+=== Configuration
+Add a section such as this to your yaml configuration file.
+ example here
+=== Rails configuration
+* NonRelational will look for it's configuration in config/database.yml .
+* If you will not be using ActiveREcord, turn it off.
+* Add the following to application.rb (or application_controller.rb)
+=== Non-rails configuration
+NonRelational will first check for ./database.yml and then ./config/database.yml for configuration.
+=== Declare your models
+You domain model classes must inherit from NonRelational::DomainModel
+ class Thingee
+ # declare a primary key.
+ # NonRelational will set the id to a guid if you try to save it
+ # without an id.
+ property :id, :string, :primary_key=true
+
+ property :name, :string
+ property :title, :string
+ property :the_time, :date
+ property :index, :int
+ # Declare a text field if the string may be too large for SDB.
+ # text properties will be stored in large object storage which
+ # usually means Amazon's S3.
+ property :index, :text
+
+ #declare an index
+ index :name_and_index,[:name,index]
+
+ #declare a one-to-many relationship
+ has_many :Widget
+
+ #declare a many-to-one relationship
+ belongs_to :Person
+ end
+
+=== Create and Save
+ thingee=Thingee.new()
+ thingee2=Thingee.new(:name='my thingee',:index =>1,:the_time => TIme.now)
+ thingee2.save
+=== Query
+ thingee1=Thingee.find('thingee_id_1')
+ thingee1=Thingee.find(:first,:conditions => {:name => 'david')
+ thingee1=Thingee.find(:all,
+ :limit=>3,:
+ order_by => :index,
+ order => :descending,
+ :conditions => {:name => 'david',:title=>'boss'})
+ thingees=Thingee.find_by_name('david')
+ thingees=Thingee.find_by_name_and_index('david',3)
+
+=== Encryption
+* Encrypt the whole model
+* Encrypt individual property
+* Remove encryption form individual property.
+=== Unit tests
+* MemoryRepository for fast or offline tests.
== Copyright
Copyright (c) 2009 David Knight. See LICENSE for details.