* Update rubocop-todo.yml with new violations * Fix Layout/EmptyLine* rules * Fix Layout/Indentation* rules * Fix remaining Layout/* rules * Fix Lint/DuplicateMethods by removing unused accessor * Fix Lint/IneffectiveAccessModifier * Fix Lint/MissingCopEnableDirective * Re-run rubocop auto gen config * Fix Layout/RescueEnsureAlignment * Fix Naming/* rules * Fix some RSpec/* rules * Fix typos * Fix RSpec/LetBeforeExamples * Series should only be an attr_writer, not an attr_accessor * Fix RSpec/InstanceVariable * Fix RSpec/InstanceVariable * Fix RSpec/RepeatedDescription and RSpec/RepeatedExample * Fix Style/ClassAndModuleChildren * Fix Style/ConditionalAssignment * Fix some Style/* rules * Trigger Travis CI build because failing tests are not failing locally * Revert "Fix Style/ClassAndModuleChildren" This reverts commit 1686801d8a1516ba1894f79e24401a20dea65f99.
34 lines
791 B
Ruby
34 lines
791 B
Ruby
# Usecase would be
|
|
# EmailDigest.send_periodic_digest_email
|
|
# OR
|
|
# EmailDigets.send_periodic_digest_email(Users.first(4))
|
|
|
|
class EmailDigest
|
|
def self.send_periodic_digest_email(users = [])
|
|
new(users).send_periodic_digest_email
|
|
end
|
|
|
|
def initialize(users = [])
|
|
@users = users.empty? ? get_users : users
|
|
end
|
|
|
|
def send_periodic_digest_email
|
|
@users.find_each do |user|
|
|
user_email_heuristic = EmailLogic.new(user).analyze
|
|
next unless user_email_heuristic.should_receive_email?
|
|
|
|
articles = user_email_heuristic.articles_to_send
|
|
begin
|
|
DigestMailer.digest_email(user, articles).deliver
|
|
rescue StandardError
|
|
puts "Email issue"
|
|
end
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def get_users
|
|
User.where(email_digest_periodic: true)
|
|
end
|
|
end
|