Sha256: 96d6c333f26068540adf17d980b0123293af7b9ece0966ae0861605c5c5dc4e7
Contents?: true
Size: 1.78 KB
Versions: 4
Compression:
Stored size: 1.78 KB
Contents
require File.join(File.dirname(__FILE__), 'CONFIG.rb') require 'rubygems' require 'facets' require 'test/unit' require 'og' # 'testreverse' is a legacy database schema. Og's advanced # reverse engineering features allows us to map any schema # to our objects. # create a 'legacy' schema. $og2.store.exec "create table my_users (thename VARCHAR(32) PRIMARY KEY, password TEXT, age3 INTEGER);" $og2.store.exec "create table my_comments (cid MEDIUMINT NOT NULL AUTO_INCREMENT, body TEXT, user VARCHAR(32), PRIMARY KEY(cid));" class TestReverse < Test::Unit::TestCase # :nodoc: all include Og class User property :name, String, :field => :thename, :uniq => true property :password, String property :age, Fixnum, :field => :age3 has_many Comment, :foreign_field => :user set_table :my_users set_primary_key :name, String def initialize(name, password, age) @name, @password, @age = name, password, age end end class Comment property :cid, Fixnum property :body, String belongs_to User, :field => :user set_table :my_comments set_primary_key :cid def initialize(body) @body = body end end $og2.manage_classes(User, Comment) def test_all assert_equal 'my_users', User.table assert_equal 'my_comments', Comment.table User.new('gmosx', 'navel', 30).insert User.new('Helen', 'kontesa', 25).insert gmosx = User.find_by_name('gmosx') assert_equal 'gmosx', gmosx.name helen = User.find_all_by_age(25).first assert_equal 'Helen', helen.name c = Comment.new('hello') c.insert helen.comments << c assert_equal 1, helen.comments(:reload => true).size assert_equal 'hello', helen.comments[0].body end end # * George Moschovitis <gm@navel.gr>
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
og-0.28.0 | test/og/tc_reverse.rb |
og-0.29.0 | test/og/tc_reverse.rb |
og-0.30.0 | test/og/tc_reverse.rb |
og-0.31.0 | test/og/tc_reverse.rb |