Sha256: 580f8d05d585d9c665ab2e41404793665636ab16fb57738bc69feaeaa3144697

Contents?: true

Size: 864 Bytes

Versions: 5

Compression:

Stored size: 864 Bytes

Contents

require "mongoid/criteria"
require "mongoid/document"
module RocketJob
  module MongoidClients
    module Options
      extend ActiveSupport::Concern

      def with_collection(collection_name)
        self.collection_name = collection_name
        self
      end

      def collection(parent = nil)
        @collection_name ? mongo_client[@collection_name] : super(parent)
      end

      def collection_name
        @collection_name || super
      end

      def collection_name=(collection_name)
        @collection_name = collection_name&.to_sym
      end

      private

      module ClassMethods
        def with_collection(collection_name)
          all.with_collection(collection_name)
        end
      end
    end
  end
end

::Mongoid::Criteria.include(RocketJob::MongoidClients::Options)
::Mongoid::Document.include(RocketJob::MongoidClients::Options)

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rocketjob-5.3.0 lib/rocket_job/extensions/mongoid/clients/options.rb
rocketjob-5.2.0 lib/rocket_job/extensions/mongoid/clients/options.rb
rocketjob-5.2.0.beta3 lib/rocket_job/extensions/mongoid/clients/options.rb
rocketjob-5.2.0.beta2 lib/rocket_job/extensions/mongoid/clients/options.rb
rocketjob-5.2.0.beta1 lib/rocket_job/extensions/mongoid/clients/options.rb