Sha256: 96f7e2d6180df41c820295cdacb48173490a4238594834073bf42f9c2dae84f2
Contents?: true
Size: 912 Bytes
Versions: 3
Compression:
Stored size: 912 Bytes
Contents
class CounterCacheUpdate::UpdateService < ServicePattern::Service attr_reader :use_progress_bar def initialize(use_progress_bar: false) @use_progress_bar = use_progress_bar end def execute! Rails.application.eager_load! if use_progress_bar require "progress_bar" @progress_bar = ProgressBar.new(model_classes.size) end update_relationships! ServicePattern::Response.new(success: true) end private def update_relationships! model_classes.each do |model_class| @progress_bar&.increment! model_class.reflections.each do |_name, reflection| next unless reflection.macro.to_sym == :belongs_to next unless reflection.options[:counter_cache] CounterCacheUpdate::TableUpdatorService.execute!(reflection: reflection) end end end def model_classes @model_classes ||= ActiveRecord::Base.descendants end end
Version data entries
3 entries across 3 versions & 1 rubygems