Sha256: ad854de857f215c9ed0951ae98e34b9afd6bce9e9b9c9dfc11913fe2a1c75418
Contents?: true
Size: 845 Bytes
Versions: 24
Compression:
Stored size: 845 Bytes
Contents
# frozen_string_literal: true module ActionCable module Channel module Naming extend ActiveSupport::Concern module ClassMethods # Returns the name of the channel, underscored, without the <tt>Channel</tt> ending. # If the channel is in a namespace, then the namespaces are represented by single # colon separators in the channel name. # # ChatChannel.channel_name # => 'chat' # Chats::AppearancesChannel.channel_name # => 'chats:appearances' # FooChats::BarAppearancesChannel.channel_name # => 'foo_chats:bar_appearances' def channel_name @channel_name ||= name.delete_suffix("Channel").gsub("::", ":").underscore end end # Delegates to the class's ::channel_name. delegate :channel_name, to: :class end end end
Version data entries
24 entries across 24 versions & 4 rubygems