Skip to content

Instantly share code, notes, and snippets.

@yannick
Created June 13, 2009 22:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yannick/129451 to your computer and use it in GitHub Desktop.
Save yannick/129451 to your computer and use it in GitHub Desktop.
require 'rubygems'
require 'dm-core'
require 'dm-timestamps'
require 'pp'
DataMapper.setup(:default,
:adapter => 'mysql',
:host => 'localhost',
:username => 'root',
:database => 'dm_core_test',
:encoding => 'utf8'
)
DataMapper::Logger.new(STDOUT, :debug)
DataObjects::Mysql.logger = DataObjects::Logger.new(STDOUT, :debug)
class User
include DataMapper::Resource
property :id, Serial
property :name, String
has n, :friendships
has n, :friends, :through => :friendships, :model => 'User'
end
class Friendship
include DataMapper::Resource
property :id, Serial
belongs_to :user
belongs_to :friend, :model => 'User'
end
DataMapper.auto_migrate!
users = []
users << jan = User.create(:name => 'Jan')
users << piet = User.create(:name => 'Piet')
users << klaas = User.create(:name => 'Klaas')
users.each{|u| u.save}
Friendship.new(:user => jan, :friend => piet).save
Friendship.new(:user => jan, :friend => klaas).save
pp piet.friendships
pp jan.friends
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment