Class: GlobalErrorHandler::AppException

Inherits:
Object
  • Object
show all
Defined in:
lib/global_error_handler/app_exception.rb

Class Method Summary collapse

Class Method Details

.all(start, field = nil, filter = nil) ⇒ Object



3
4
5
6
7
8
9
10
11
# File 'lib/global_error_handler/app_exception.rb', line 3

def all(start, field = nil, filter = nil)
  start ||= 0
  if field && filter
    keys = GlobalErrorHandler::Redis.filter_exception_keys start, "error_#{field}", filter
  else
    keys = GlobalErrorHandler::Redis.exception_keys start
  end
  GlobalErrorHandler::Redis.find_all keys
end

.count(field = nil, filter = nil) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/global_error_handler/app_exception.rb', line 13

def count(field = nil, filter = nil)
  if field && filter
    GlobalErrorHandler::Redis.filtered_exceptions_count("error_#{field}", filter)
  else
    GlobalErrorHandler::Redis.exceptions_count
  end
end

.delete(id) ⇒ Object



26
27
28
29
# File 'lib/global_error_handler/app_exception.rb', line 26

def delete(id)
  return if id.blank?
  GlobalErrorHandler::Redis.delete exception_key(id)
end

.delete_all(ids) ⇒ Object



31
32
33
34
35
# File 'lib/global_error_handler/app_exception.rb', line 31

def delete_all(ids)
  return if ids.blank?
  keys = ids.map{ |id| exception_key id }
  GlobalErrorHandler::Redis.delete_all keys
end

.filtered_ids_by(field, str, len = 1000, start = 0) ⇒ Object



60
61
62
63
64
# File 'lib/global_error_handler/app_exception.rb', line 60

def filtered_ids_by(field, str, len=1000, start=0)
  keys = GlobalErrorHandler::Redis.filter_exception_keys start, "error_#{field}", str, len
  return [] if keys.blank?
  keys.map{ |key| key.split(':').last rescue nil }.compact
end

.filters_for(field) ⇒ Object



51
52
53
54
55
56
57
58
# File 'lib/global_error_handler/app_exception.rb', line 51

def filters_for(field)
  keys = GlobalErrorHandler::Redis.filter_keys_for "error_#{field}"
  return [] if keys.blank?
  keys.map do |key|
    key =~ /^#{GlobalErrorHandler::Redis::FILTER_KEY_PREFIX}:error_#{field}:(.*)/
    $1
  end
end

.find(id) ⇒ Object



21
22
23
24
# File 'lib/global_error_handler/app_exception.rb', line 21

def find(id)
  return if id.blank?
  GlobalErrorHandler::Redis.find exception_key(id)
end

.truncate(filter = nil, opts = {}) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/global_error_handler/app_exception.rb', line 37

def truncate(filter = nil, opts = {})
  if filter
    field = opts.delete(:field)
    total = opts.delete(:total) || 1000
    size = 1000
    (total / size.to_f).ceil.times do |iteration|
      ids = filtered_ids_by field, filter, size, iteration
      delete_all ids unless ids.blank?
    end
  else
    GlobalErrorHandler::Redis.truncate!
  end
end