From 1d6197a3c7c9b8ab1036b89187fe00d404c06a42 Mon Sep 17 00:00:00 2001 From: Alex Martens Date: Fri, 11 Jul 2025 02:59:12 -0400 Subject: [PATCH] Defer the inclusion until after ActiveRecord has been fully loaded, improving booting performance and following Rails best practices --- lib/userstamp/stampable.rb | 10 ++++++---- lib/userstamp/stamper.rb | 4 +++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/userstamp/stampable.rb b/lib/userstamp/stampable.rb index f76fdd7..550dc63 100644 --- a/lib/userstamp/stampable.rb +++ b/lib/userstamp/stampable.rb @@ -81,13 +81,13 @@ def stampable(options = {}) class_eval do belongs_to :creator, :class_name => self.stamper_class_name.to_s.singularize.camelize, :foreign_key => self.creator_attribute - + belongs_to :updater, :class_name => self.stamper_class_name.to_s.singularize.camelize, :foreign_key => self.updater_attribute - + before_save :set_updater_attribute before_create :set_creator_attribute - + if defined?(Caboose::Acts::Paranoid) belongs_to :deleter, :class_name => self.stamper_class_name.to_s.singularize.camelize, :foreign_key => self.deleter_attribute @@ -148,4 +148,6 @@ def set_deleter_attribute end end -ActiveRecord::Base.send(:include, Ddb::Userstamp::Stampable) if defined?(ActiveRecord) \ No newline at end of file +ActiveSupport.on_load(:active_record) do + ActiveRecord::Base.send(:include, Ddb::Userstamp::Stampable) +end diff --git a/lib/userstamp/stamper.rb b/lib/userstamp/stamper.rb index c0caa83..dd2e7bb 100644 --- a/lib/userstamp/stamper.rb +++ b/lib/userstamp/stamper.rb @@ -40,4 +40,6 @@ def reset_stamper end end -ActiveRecord::Base.send(:include, Ddb::Userstamp::Stamper) if defined?(ActiveRecord) \ No newline at end of file +ActiveSupport.on_load(:active_record) do + ActiveRecord::Base.send(:include, Ddb::Userstamp::Stamper) +end