Sha256: c184206968f843da5e7295e97028566f510fe8cb7c5f9c534c30972d7462c4e2

Contents?: true

Size: 752 Bytes

Versions: 25

Compression:

Stored size: 752 Bytes

Contents

module Friendly
  module Associations
    class Association
      attr_reader :owner_klass, :name

      def initialize(owner_klass, name, options = {})
        @owner_klass = owner_klass
        @name        = name
        @class_name  = options[:class_name]
        @foreign_key = options[:foreign_key]
      end

      def klass
        @klass ||= class_name.constantize
      end

      def foreign_key
        @foreign_key ||= [owner_klass_name, :id].join("_").to_sym
      end

      def class_name
        @class_name ||= name.to_s.classify
      end

      def owner_klass_name
        owner_klass.name.to_s.underscore.singularize
      end

      def scope(document)
        klass.scope(foreign_key => document.id)
      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/association.rb
ihoka-friendly-0.7.1.2 lib/friendly/associations/association.rb
ihoka-friendly-0.7.1.1 lib/friendly/associations/association.rb
ihoka-friendly-0.7.1 lib/friendly/associations/association.rb
ihoka-friendly-0.7.0 lib/friendly/associations/association.rb
ihoka-friendly-0.6.3 lib/friendly/associations/association.rb
ihoka-friendly-0.6.2 lib/friendly/associations/association.rb
friendly-0.6.0 lib/friendly/associations/association.rb
honkster-friendly-0.5.3 lib/friendly/associations/association.rb
honkster-friendly-0.5.2 lib/friendly/associations/association.rb
honkster-friendly-0.5.1 lib/friendly/associations/association.rb
wayne-friendly-0.5.1 lib/friendly/associations/association.rb
wego-friendly-0.5.1 lib/friendly/associations/association.rb
arunthampi-friendly-0.5.1 lib/friendly/associations/association.rb
friendly_postgres-0.5.1 lib/friendly/associations/association.rb
friendly-0.5.1 lib/friendly/associations/association.rb
friendly-0.5.0 lib/friendly/associations/association.rb
friendly_postgres-0.4.5 lib/friendly/associations/association.rb
friendly-0.4.5 lib/friendly/associations/association.rb
friendly-0.4.4 lib/friendly/associations/association.rb