class PasswordChanger::Actions::ChangePassword
Attributes
changer[R]
printers[R]
Public Class Methods
new(printers, changer)
click to toggle source
# File lib/password_changer/actions/change_password.rb, line 10 def initialize(printers, changer) @changer = changer @printers = printers end
Public Instance Methods
run(*data)
click to toggle source
# File lib/password_changer/actions/change_password.rb, line 15 def run(*data) users = data.flatten.map do |d| raise ArgumentError, 'Attribute "user_name" or "old_password" is missing!' if d[:name].blank? || d[:old_password].blank? new_password = PasswordChanger::PasswordGenerator.new.generate(old_password: d[:old_password]) d[:new_password] = new_password if d[:new_password].blank? User.new(**d) end users.each do |u| PasswordChanger.logger.info "Changing user \"#{u.name}\"." changer.change(u) end printers.each { |p| p.output users } end