class DatabaseCleaner::Redis::Deletion
Public Class Methods
new(only: [], except: [])
click to toggle source
# File lib/database_cleaner/redis/deletion.rb, line 6 def initialize only: [], except: [] @only = only @except = except end
Public Instance Methods
clean()
click to toggle source
# File lib/database_cleaner/redis/deletion.rb, line 11 def clean if @only.none? && @except.none? connection.flushdb else keys_to_delete.each do |key| connection.del key end end connection.quit unless db == :default end
Private Instance Methods
connection()
click to toggle source
# File lib/database_cleaner/redis/deletion.rb, line 36 def connection @connection ||= begin if db == :default ::Redis.new elsif db.is_a?(::Redis) # pass directly the connection db else ::Redis.new(url: db) end end end
expand_keys(keys)
click to toggle source
# File lib/database_cleaner/redis/deletion.rb, line 32 def expand_keys keys keys.flat_map { |key| connection.keys(key) } end
keys_to_delete()
click to toggle source
# File lib/database_cleaner/redis/deletion.rb, line 25 def keys_to_delete only = expand_keys(@only) except = expand_keys(@except) only = connection.keys if only.none? (only - except) end