Class: Decidim::DirectVerifications::Instrumenter

Inherits:
Object
  • Object
show all
Defined in:
lib/decidim/direct_verifications/instrumenter.rb

Instance Method Summary collapse

Constructor Details

#initialize(current_user) ⇒ Instrumenter

Returns a new instance of Instrumenter.



6
7
8
9
10
# File 'lib/decidim/direct_verifications/instrumenter.rb', line 6

def initialize(current_user)
  @current_user = current_user
  @errors = { registered: Set.new, authorized: Set.new, revoked: Set.new }
  @processed = { registered: Set.new, authorized: Set.new, revoked: Set.new }
end

Instance Method Details

#add_error(type, email) ⇒ Object



16
17
18
# File 'lib/decidim/direct_verifications/instrumenter.rb', line 16

def add_error(type, email)
  @errors[type] << email
end

#add_processed(type, email) ⇒ Object



12
13
14
# File 'lib/decidim/direct_verifications/instrumenter.rb', line 12

def add_processed(type, email)
  @processed[type] << email
end

#emails_count(key) ⇒ Object



28
29
30
# File 'lib/decidim/direct_verifications/instrumenter.rb', line 28

def emails_count(key)
  @processed[key].size + @errors[key].size
end

#errors_count(key) ⇒ Object



24
25
26
# File 'lib/decidim/direct_verifications/instrumenter.rb', line 24

def errors_count(key)
  errors[key].size
end

#processed_count(key) ⇒ Object



20
21
22
# File 'lib/decidim/direct_verifications/instrumenter.rb', line 20

def processed_count(key)
  processed[key].size
end

#track(event, email, user = nil) ⇒ Object



32
33
34
35
36
37
38
39
# File 'lib/decidim/direct_verifications/instrumenter.rb', line 32

def track(event, email, user = nil)
  if user
    add_processed event, email
    log_action user
  else
    add_error event, email
  end
end