Sha256: e3c620f3fd54d7187e6345874441e991900f3e7f4e54f35b0589fe606d6ddbff

Contents?: true

Size: 655 Bytes

Versions: 8

Compression:

Stored size: 655 Bytes

Contents

module Mongoo
  class DescribeDsl
    def self.after_describe
      @after_describe ||= []
    end

    def self.before_describe
      @before_describe ||= []
    end

    def initialize(klass)
      @klass = klass
    end

    def describe(&block)
      Mutex.new.synchronize do
        self.class.before_describe.uniq!
        self.class.after_describe.uniq!

        self.class.before_describe.each do |m|
          send(m)
        end

        block.call(self)

        self.class.after_describe.each do |m|
          send(m)
        end
      end
    end

    def index(*args)
      @klass.send(:index, *args)
    end
  end # DescribeDsl
end # Mongoo

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
mongoo-0.5.7 lib/mongoo/describe_dsl.rb
mongoo-0.5.6 lib/mongoo/describe_dsl.rb
mongoo-0.5.5 lib/mongoo/describe_dsl.rb
mongoo-0.5.4 lib/mongoo/describe_dsl.rb
mongoo-0.5.3 lib/mongoo/describe_dsl.rb
mongoo-0.5.2 lib/mongoo/describe_dsl.rb
mongoo-0.5.1 lib/mongoo/describe_dsl.rb
mongoo-0.5.0 lib/mongoo/describe_dsl.rb