Sha256: 6d318296ce75c6f510a647a970c44dbe42e7cd99c3df88ebb40c1df2582e2ee8
Contents?: true
Size: 883 Bytes
Versions: 25
Compression:
Stored size: 883 Bytes
Contents
module Friendly module Associations class Set attr_reader :klass, :association_klass, :associations def initialize(klass, association_klass = Association) @klass = klass @association_klass = association_klass @associations = {} end def add(name, options = {}) associations[name] = association_klass.new(klass, name, options) add_association_accessor(name) end def get_scope(name, document) get(name).scope(document) end def get(name) associations[name] end protected def add_association_accessor(name) klass.class_eval do eval <<-__END__ def #{name} self.class.association_set.get_scope(:#{name}, self) end __END__ end end end end end
Version data entries
25 entries across 25 versions & 7 rubygems