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

Version Path
ihoka-friendly-0.8.0.pre lib/friendly/associations/set.rb
ihoka-friendly-0.7.1.2 lib/friendly/associations/set.rb
ihoka-friendly-0.7.1.1 lib/friendly/associations/set.rb
ihoka-friendly-0.7.1 lib/friendly/associations/set.rb
ihoka-friendly-0.7.0 lib/friendly/associations/set.rb
ihoka-friendly-0.6.3 lib/friendly/associations/set.rb
ihoka-friendly-0.6.2 lib/friendly/associations/set.rb
friendly-0.6.0 lib/friendly/associations/set.rb
honkster-friendly-0.5.3 lib/friendly/associations/set.rb
honkster-friendly-0.5.2 lib/friendly/associations/set.rb
honkster-friendly-0.5.1 lib/friendly/associations/set.rb
wayne-friendly-0.5.1 lib/friendly/associations/set.rb
wego-friendly-0.5.1 lib/friendly/associations/set.rb
arunthampi-friendly-0.5.1 lib/friendly/associations/set.rb
friendly_postgres-0.5.1 lib/friendly/associations/set.rb
friendly-0.5.1 lib/friendly/associations/set.rb
friendly-0.5.0 lib/friendly/associations/set.rb
friendly_postgres-0.4.5 lib/friendly/associations/set.rb
friendly-0.4.5 lib/friendly/associations/set.rb
friendly-0.4.4 lib/friendly/associations/set.rb