Class: MongoDatabaseCleaner

Inherits:
Object
  • Object
show all
Defined in:
lib/generators/voluntary/install/templates/spec/support/mongo_database_cleaner.rb,
lib/generators/voluntary/product_dummy/templates/spec/support/mongo_database_cleaner.rb

Class Method Summary collapse

Class Method Details

.cleanObject



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/generators/voluntary/install/templates/spec/support/mongo_database_cleaner.rb', line 2

def self.clean
  root = Rails.root
  
  Dir["#{root}/app/models/**/*.*"].each do |name|
    path_name = name.gsub("#{root}/app/models/", '')
    path_name = path_name.split('/')
    
    next if path_name.try(:first) == 'concerns'
    
    klass = path_name.pop.sub(/\.rb$/,'').camelize
    
    unless path_name.none?
      klass = [path_name.map(&:camelize).join('::'), klass].join('::')
    end
    
    begin
      klass = klass.constantize
    rescue Exception => e
      raise e
      raise [klass, root, name, path_name].inspect
    end
    
    next if klass.respond_to?(:table_name) || !klass.respond_to?(:delete_all)
    
    klass.delete_all
  end
end