Sha256: ccc53e1d8b30e0c3755026416045a8e6c5236dd74d21ab35bd305574ddbd58c2

Contents?: true

Size: 635 Bytes

Versions: 22

Compression:

Stored size: 635 Bytes

Contents

module MongoDoc
  module PolymorphicCollection

    def collection_name(name = nil)
      @_collection_name ||= determine_collection_name(name && name.to_s)
    end

    private

    def _parentclass(parentclass = nil)
      @_parentclass ||= parentclass
    end

    def default_collection_name
      self.to_s.tableize.gsub('/', '.')
    end

    def determine_collection_name(name)
      name || find_collection_name
    end

    def find_collection_name
      _parentclass.try(:collection_name) || default_collection_name
    end

    def inherited(subklass)
      super
      subklass.send(:_parentclass, self)
    end

  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
mongo_doc-0.6.34 lib/mongo_doc/polymorphic_collection.rb
mongo_doc-0.6.33 lib/mongo_doc/polymorphic_collection.rb
mongo_doc-0.6.32 lib/mongo_doc/polymorphic_collection.rb
mongo_doc-0.6.31 lib/mongo_doc/polymorphic_collection.rb
mongo_doc-0.6.30 lib/mongo_doc/polymorphic_collection.rb
mongo_doc-0.6.29 lib/mongo_doc/polymorphic_collection.rb
mongo_doc-0.6.28 lib/mongo_doc/polymorphic_collection.rb
mongo_doc-0.6.27 lib/mongo_doc/polymorphic_collection.rb
mongo_doc-0.6.26 lib/mongo_doc/polymorphic_collection.rb
mongo_doc-0.6.25 lib/mongo_doc/polymorphic_collection.rb
mongo_doc-0.6.23 lib/mongo_doc/polymorphic_collection.rb
mongo_doc-0.6.22 lib/mongo_doc/polymorphic_collection.rb
mongo_doc-0.6.21 lib/mongo_doc/polymorphic_collection.rb
mongo_doc-0.6.20 lib/mongo_doc/polymorphic_collection.rb
mongo_doc-0.6.19 lib/mongo_doc/polymorphic_collection.rb
mongo_doc-0.6.18 lib/mongo_doc/polymorphic_collection.rb
mongo_doc-0.6.17 lib/mongo_doc/polymorphic_collection.rb
mongo_doc-0.6.16 lib/mongo_doc/polymorphic_collection.rb
mongo_doc-0.6.15 lib/mongo_doc/polymorphic_collection.rb
mongo_doc-0.6.14 lib/mongo_doc/polymorphic_collection.rb