7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/anycable/rails/channel_state.rb', line 7
def state_attr_accessor(*names)
names.each do |name|
channel_state_attributes << name
class_eval " def \#{name}\n return @\#{name} if instance_variable_defined?(:@\#{name})\n return unless anycabled?\n\n raw_val = __istate__[\"\#{name}\"]\n val = raw_val.present? ? AnyCable::Serializer.deserialize(JSON.parse(raw_val)) : nil\n\n @\#{name} = val.try(:with_indifferent_access) || val\n end\n\n def \#{name}=(val)\n __istate__[\"\#{name}\"] = AnyCable::Serializer.serialize(val).to_json if anycabled?\n instance_variable_set(:@\#{name}, val)\n end\n RUBY\n end\nend\n", __FILE__, __LINE__ + 1
|