Sha256: 70c074e7cc6c72358e490315b254361f188c28db6b9496404185eaf94373849d

Contents?: true

Size: 1.08 KB

Versions: 1

Compression:

Stored size: 1.08 KB

Contents

require 'data_mapper/associations/reference'
require 'data_mapper/associations/has_many_association'
require 'data_mapper/associations/belongs_to_association'
require 'data_mapper/associations/has_and_belongs_to_many_association'

module DataMapper
  module Associations
  
    def self.included(base)
      base.extend(ClassMethods)
    end
    
    module ClassMethods
      
      def has_many(association_name, options = {})
        database.schema[self].associations << HasManyAssociation.new(self, association_name, options)
      end
      
      def has_one(association_name, options = {})
        database.schema[self].associations << HasManyAssociation.new(self, association_name, options)
      end
      
      def belongs_to(association_name, options = {})
        database.schema[self].associations << BelongsToAssociation.new(self, association_name, options)
      end
      
      def has_and_belongs_to_many(association_name, options = {})
        database.schema[self].associations << HasAndBelongsToManyAssociation.new(self, association_name, options)
      end
      
    end
    
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
datamapper-0.2.5 lib/data_mapper/associations.rb