Sha256: 07af22c748ae971dbe0db0f1ade993c9537fe6231d5a4ab78802bbf2761fc484
Contents?: true
Size: 961 Bytes
Versions: 1
Compression:
Stored size: 961 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] next if reflection.options[:polymorphic] CounterCacheUpdate::TableUpdatorService.execute!(reflection: reflection) end end end def model_classes @model_classes ||= ActiveRecord::Base.descendants end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
counter_cache_update-0.0.3 | app/services/counter_cache_update/update_service.rb |