Sha256: 2dd29bdadd00d9c046ce8ce387aebe6df41ae846edb6defffec247557c4e4526

Contents?: true

Size: 1002 Bytes

Versions: 1

Compression:

Stored size: 1002 Bytes

Contents

require 'mongoid-shell'
require 'mongoid'
require 'fileutils'

require_relative 'mongoid_seeder/config'

module MongoidSeeder
  def self.before_suite
    Config.before_suite.call
    seed
  end

  def self.before_each
    Config.before_each.call
  end

  def self.after_each
    Config.after_each.call
    after_tests
  end

  def self.after_suite
    Config.after_suite.call
    drop
  end

  def self.seed
    options = {
      db: Mongoid.session(:default).options[:database],
      restore: db_path
    }
    mongorestore = Mongoid::Shell::Commands::Mongorestore.new(options)
    system mongorestore.to_s
  end

  def self.db_path
    Config.seed_dir
  end

  def self.dump
    mongodump = Mongoid::Shell::Commands::Mongodump.new( out: db_path)
    system mongodump.to_s
  end

  def self.drop
    Mongoid.session(:default).drop
  end

  def self.after_tests
    Mongoid.session(:default).collections.select{|a| Config.condition_to_drop_collection.call(a) }.each{|a| a.where.remove_all }
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mongoid_seeder-0.0.4 lib/mongoid_seeder.rb