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

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

27 lines
437 B
Ruby
Raw Normal View History

# 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
case self
when Category
CategoryChannel
when DirectMessageChannel
DMChannel
else
raise "Unknown chatable #{self}"
end
end
end