20 lines
362 B
Ruby
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
|