discourse/plugins/chat/app/models/concerns/chatable.rb

20 lines
362 B
Ruby

# frozen_string_literal: true
module Chatable
extend ActiveSupport::Concern
def chat_channel
channel_class.new(chatable: self)
end
def create_chat_channel!(**args)
channel_class.create!(args.merge(chatable: self))
end
private
def channel_class
"#{self.class}Channel".safe_constantize || raise("Unknown chatable #{self}")
end
end