Skip to content

Instantly share code, notes, and snippets.

@slaskis
Created March 2, 2009 18:09
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 slaskis/72891 to your computer and use it in GitHub Desktop.
Save slaskis/72891 to your computer and use it in GitHub Desktop.
require "vendor/dm-core"
require "dm-is-tree"
require "dm-timestamps"
class Node
include DataMapper::Resource
has n, :medias, :through => :node_medias
property :id, Serial
property :parent_id, Integer
property :name, String
property :title, String
property :description, Text
property :color, Integer
property :order, Integer, :default => 0
property :published, Boolean, :default => false
property :created_at, DateTime
property :updated_at, DateTime
property :deleted_at, DateTime
is :tree, :order => :order
end
class NodeMedia
include DataMapper::Resource
belongs_to :nodes
belongs_to :medias
property :order, Integer, :default => 0
property :created_at, DateTime
default_scope(:default).update(:order => [:order]) # set default order
end
class Media
include DataMapper::Resource
has n, :nodes, :through => :node_medias
property :id, Serial
property :title, String
property :filename, String
property :type, String
property :thumbnail_path, String
property :media_path, String
property :order, Integer, :default => 0
property :created_at, DateTime
property :updated_at, DateTime
property :deleted_at, DateTime
# Alot of stuff here...
end
DataMapper::Logger.new(STDOUT, :debug)
DataMapper.setup(:default, "sqlite3:///#{Dir.pwd}/problems.db")
DataMapper.auto_migrate!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment