class AnyCable::Socket::State
(for example, used to keep session beetween RPC calls)
Represents the per-connection store
def changed_fields
def changed_fields return unless source keys = dirty_keys return if keys.nil? source.slice(*keys) end
def initialize(from)
def initialize(from) @source = from @dirty_keys = nil end
def read(key)
def read(key) source&.[](key) end
def write(key, val)
def write(key, val) return if source&.[](key) == val @source ||= {} keys = (@dirty_keys ||= []) keys << key source[key] = val end