Method: CShadow#init_with

Defined in:
lib/cgen/cshadow.rb

#init_with(coder) ⇒ Object



1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
# File 'lib/cgen/cshadow.rb', line 1107

def init_with coder
  psa = self.class.shadow_attrs.select {|attr| attr.persists}
  psvars = psa.map{|attr|attr.var.to_s}

  from_array = psvars.map {|sv| coder[sv]}
  _load_data(from_array)
  
  (coder.map.keys - psvars).each do |ivar|
    obj.instance_variable_set("@#{ivar}", coder[ivar])
  end
end