module UserNotifier::NotificationSource::ClassMethods
Private Instance Methods
create_notification_class()
click to toggle source
# File lib/user_notifier/models/has_notifications.rb, line 30 def create_notification_class base_class_name = notification_class_name.demodulize unless self.parent.const_defined?(notification_class_name) klass = Class.new UserNotifier::Base do self.table_name = base_class_name.tableize end self.parent.const_set base_class_name, klass source_name = self.table_name.singularize if self.model_name.to_s.downcase != UserNotifier.user_class_name.downcase klass.belongs_to source_name.to_sym, inverse_of: :notifications end klass.belongs_to :source, class_name: self.model_name.to_s, foreign_key: "#{source_name}_id", inverse_of: :notifications end end
notification_class_name()
click to toggle source
# File lib/user_notifier/models/has_notifications.rb, line 26 def notification_class_name "#{self.model_name}Notification" end
set_association()
click to toggle source
# File lib/user_notifier/models/has_notifications.rb, line 21 def set_association create_notification_class self.has_many :notifications, class_name: notification_class_name, dependent: :destroy end