Class: Decidim::Cdtb::Fixes::NicknameFixer
- Inherits:
-
Task
- Object
- Task
- Decidim::Cdtb::Fixes::NicknameFixer
show all
- Defined in:
- lib/decidim/cdtb/fixes/nickname_fixer.rb
Overview
Fixes invalid Decidim::User#nickname
Instance Attribute Summary
Attributes inherited from Task
#num_applied, #title
Instance Method Summary
collapse
Methods inherited from Task
#execute!, #finish, #init
Methods included from TasksUtils
#do_log_error, #do_log_info, #log_task_end, #log_task_failure, #log_task_info, #log_task_step, #log_task_title, #logger
Constructor Details
Returns a new instance of NicknameFixer.
9
10
11
12
13
14
15
|
# File 'lib/decidim/cdtb/fixes/nickname_fixer.rb', line 9
def initialize
regex= Decidim::UserBaseEntity::REGEXP_NICKNAME.source.gsub("\\z", "\\Z")
@query= Decidim::User.where.not("nickname ~ ?", regex)
progress_bar= { title: "Decidim::User" }
super("FIX NICKNAMES", progress_bar:)
end
|
Instance Method Details
#do_execution(context) ⇒ Object
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/decidim/cdtb/fixes/nickname_fixer.rb', line 26
def do_execution(context)
progress_bar= context[:progress_bar]
@query.find_each do |user|
Decidim::User.validators_on(:nickname).each do |validator|
validator.validate_each(user, :nickname, user.nickname)
end
if user.errors[:nickname].any?
::Cdtb::FixNicknameJob.perform_later(user.id)
@num_applied+= 1
end
progress_bar.increment
end
end
|
#end_execution(_ctx) ⇒ Object
42
43
44
|
# File 'lib/decidim/cdtb/fixes/nickname_fixer.rb', line 42
def end_execution(_ctx)
log_task_step("#{@num_applied} users nicknamized")
end
|
#prepare_execution(_ctx) ⇒ Object
17
18
19
20
|
# File 'lib/decidim/cdtb/fixes/nickname_fixer.rb', line 17
def prepare_execution(_ctx)
@num_users= @query.count
log_task_info("Checking #{@num_users} users...")
end
|
#total_items ⇒ Object
22
23
24
|
# File 'lib/decidim/cdtb/fixes/nickname_fixer.rb', line 22
def total_items
@num_users
end
|