aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/action_cable/connection/identification.rb10
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/action_cable/connection/identification.rb b/lib/action_cable/connection/identification.rb
index 6c2af04663..3ea3b77e56 100644
--- a/lib/action_cable/connection/identification.rb
+++ b/lib/action_cable/connection/identification.rb
@@ -9,19 +9,23 @@ module ActionCable
end
class_methods do
+ # Mark a key as being a connection identifier index that can then used to find the specific connection again later.
+ # Common identifiers are current_user and current_account, but could be anything really.
def identified_by(*identifiers)
Array(identifiers).each { |identifier| attr_accessor identifier }
self.identifiers += identifiers
end
end
+ # Return a single connection identifier that combines the value of all the registered identifiers into a single gid.
def connection_identifier
@connection_identifier ||= connection_gid identifiers.map { |id| instance_variable_get("@#{id}") }.compact
end
- def connection_gid(ids)
- ids.map { |o| o.to_global_id.to_s }.sort.join(":")
- end
+ private
+ def connection_gid(ids)
+ ids.map { |o| o.to_global_id.to_s }.sort.join(":")
+ end
end
end
end