class WisperPlus::Railtie
Public Class Methods
subscribe(model_klass, subscriber_klass)
click to toggle source
# File lib/wisper_plus/railtie.rb, line 5 def self.subscribe(model_klass, subscriber_klass) model_class = model_klass if model_class != 'Global' begin model_class = model_class.constantize if !model_class.ancestors.include?(ApplicationRecord) # puts "🔸 #{model_class} is not an ActiveRecord model".yellow return end if !model_class.ancestors.include?(Wisper::Publisher) puts "🔸 #{model_class} is not including Wisper::ActiveRecord::Publisher. Cannot Subscribe #{subscriber_klass.magenta}.".yellow return end rescue NameError model_class = model_class.split("::") model_class.pop if model_class.size.positive? model_class = model_class.join('::') retry else puts "🔸 #{model_klass} not found" return end end end begin subscriber_klass = subscriber_klass.constantize rescue NameError puts "🔸 #{subscriber_klass} not found" end begin if model_class != 'Global' model_class.subscribe(subscriber_klass.new, async: false) else Wisper.subscribe(subscriber_klass.new) end rescue NoMethodError puts "🔸 #{model_class}.subscribe() not found" end if Rails.env.development? puts "🔹 #{subscriber_klass.to_s.magenta} => #{model_class.to_s.blue}" end end