Class: DatabaseFlusher::Mongoid::DeletionStrategy

Inherits:
Object
  • Object
show all
Defined in:
lib/database_flusher/mongoid/deletion_strategy.rb

Defined Under Namespace

Classes: Subscriber

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeDeletionStrategy

Returns a new instance of DeletionStrategy.



25
26
27
# File 'lib/database_flusher/mongoid/deletion_strategy.rb', line 25

def initialize
  @collections = Set.new
end

Instance Attribute Details

#collectionsObject (readonly)

Returns the value of attribute collections.



5
6
7
# File 'lib/database_flusher/mongoid/deletion_strategy.rb', line 5

def collections
  @collections
end

Instance Method Details

#cleanObject



40
41
42
43
44
45
46
47
# File 'lib/database_flusher/mongoid/deletion_strategy.rb', line 40

def clean
  return if collections.empty?
  # puts "Cleaning #{collections.inspect}"
  collections.each do |name|
    client[name].delete_many
  end
  collections.clear
end

#clean_allObject



49
50
51
52
53
# File 'lib/database_flusher/mongoid/deletion_strategy.rb', line 49

def clean_all
  all_collections.each do |name|
    client[name].delete_many
  end
end

#startObject



29
30
31
32
33
34
# File 'lib/database_flusher/mongoid/deletion_strategy.rb', line 29

def start
  @subscriber ||= client.subscribe(
    Mongo::Monitoring::COMMAND,
    Subscriber.new(self)
  )
end

#stopObject

Raises:

  • (NotImplementedError)


36
37
38
# File 'lib/database_flusher/mongoid/deletion_strategy.rb', line 36

def stop
  raise NotImplementedError, "Mongo doesn't provide unsubscribe"
end