Sha256: c24125e8a66439196f02d8f2f58c6f97026032080a9ca669343e7dd6d0849c01

Contents?: true

Size: 1.09 KB

Versions: 6

Compression:

Stored size: 1.09 KB

Contents

module ActiveScaffold::DataStructures::Association
  class ActiveMongoid < Mongoid
    def self.reflect_on_all_associations(klass)
      return [] unless klass.respond_to? :am_relations

      klass.am_relations.values
    end

    def primary_key
      @association[:primary_key]
    end

    def counter_cache
      @association[:counter_cache]
    end

    def inverse_klass
      as ? @association[:inverse_class_name].constantize : super
    end

    def allow_join?
      false
    end

    def belongs_to?
      %i[belongs_to_record belongs_to_document].include?(@association.macro)
    end

    def has_one? # rubocop:disable Naming/PredicateName
      %i[has_one_record has_one_document].include?(@association.macro)
    end

    def has_many? # rubocop:disable Naming/PredicateName
      %i[has_many_records has_many_documents].include?(@association.macro)
    end

    def table_name
      @association.klass < ActiveRecord::Base ? @association.klass.table_name : super
    end

    protected

    def reflect_on_association(name)
      @association.klass.reflect_on_am_association(name)
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
active_scaffold-4.0.2 lib/active_scaffold/data_structures/association/active_mongoid.rb
active_scaffold-4.0.1 lib/active_scaffold/data_structures/association/active_mongoid.rb
active_scaffold-4.0.0 lib/active_scaffold/data_structures/association/active_mongoid.rb
active_scaffold-4.0.0.rc3 lib/active_scaffold/data_structures/association/active_mongoid.rb
active_scaffold-4.0.0.rc2 lib/active_scaffold/data_structures/association/active_mongoid.rb
active_scaffold-4.0.0.rc1 lib/active_scaffold/data_structures/association/active_mongoid.rb