@@ -57,6 +57,7 @@ def __hyperstack_preprocess_attrs(attrs)
5757 end
5858 dealiased_attrs = { }
5959 attrs . each { |attr , value | dealiased_attrs [ _dealias_attribute ( attr ) ] = value }
60+ dealiased_attrs
6061 end
6162
6263 def find ( *args )
@@ -297,11 +298,12 @@ def abstract_class=(val)
297298 assoc = Associations ::AssociationReflection . new ( self , macro , name , opts )
298299 if macro == :has_many
299300 define_method ( name ) { @backing_record . get_has_many ( assoc , nil ) }
300- define_method ( "#{ name } = " ) { |val | @backing_record . set_has_many ( assoc , val ) }
301+ define_method ( "_hyperstack_internal_setter_ #{ name } " ) { |val | @backing_record . set_has_many ( assoc , val ) }
301302 else
302303 define_method ( name ) { @backing_record . get_belongs_to ( assoc , nil ) }
303- define_method ( "#{ name } = " ) { |val | @backing_record . set_belongs_to ( assoc , val ) }
304+ define_method ( "_hyperstack_internal_setter_ #{ name } " ) { |val | @backing_record . set_belongs_to ( assoc , val ) }
304305 end
306+ alias_method "#{ name } =" , "_hyperstack_internal_setter_#{ name } "
305307 assoc
306308 end
307309 end
@@ -310,11 +312,12 @@ def composed_of(name, opts = {})
310312 reflection = Aggregations ::AggregationReflection . new ( base_class , :composed_of , name , opts )
311313 if reflection . klass < ActiveRecord ::Base
312314 define_method ( name ) { @backing_record . get_ar_aggregate ( reflection , nil ) }
313- define_method ( "#{ name } = " ) { |val | @backing_record . set_ar_aggregate ( reflection , val ) }
315+ define_method ( "_hyperstack_internal_setter_ #{ name } " ) { |val | @backing_record . set_ar_aggregate ( reflection , val ) }
314316 else
315317 define_method ( name ) { @backing_record . get_non_ar_aggregate ( name , nil ) }
316- define_method ( "#{ name } = " ) { |val | @backing_record . set_non_ar_aggregate ( reflection , val ) }
318+ define_method ( "_hyperstack_internal_setter_ #{ name } " ) { |val | @backing_record . set_non_ar_aggregate ( reflection , val ) }
317319 end
320+ alias_method "#{ name } =" , "_hyperstack_internal_setter_#{ name } "
318321 end
319322
320323 def column_names
@@ -339,6 +342,9 @@ def server_method(name, default: nil)
339342 vector = args . count . zero? ? name : [ [ name ] + args ]
340343 @backing_record . get_server_method ( vector , true )
341344 end
345+ define_method ( "_hyperstack_internal_setter_#{ name } " ) do |val |
346+ backing_record . set_attr_value ( name , val )
347+ end
342348 end
343349
344350 # def define_attribute_methods
@@ -366,7 +372,8 @@ def define_attribute_methods
366372
367373 define_method ( name ) { @backing_record . get_attr_value ( name , nil ) } unless method_defined? ( name )
368374 define_method ( "#{ name } !" ) { @backing_record . get_attr_value ( name , true ) } unless method_defined? ( "#{ name } !" )
369- define_method ( "#{ name } =" ) { |val | @backing_record . set_attr_value ( name , val ) } unless method_defined? ( "#{ name } =" )
375+ define_method ( "_hyperstack_internal_setter_#{ name } " ) { |val | @backing_record . set_attr_value ( name , val ) }
376+ alias_method "#{ name } =" , "_hyperstack_internal_setter_#{ name } " unless method_defined? ( "#{ name } =" )
370377 define_method ( "#{ name } _changed?" ) { @backing_record . changed? ( name ) } unless method_defined? ( "#{ name } _changed?" )
371378 define_method ( "#{ name } ?" ) { @backing_record . get_attr_value ( name , nil ) . present? } unless method_defined? ( "#{ name } ?" )
372379 end
@@ -384,7 +391,6 @@ def _react_param_conversion(param, opt = nil)
384391 klass = ReactiveRecord ::Base . infer_type_from_hash ( self , param )
385392 klass == self || klass < self
386393 else
387- #debugger if param[:duplicate_of_id]
388394 # TODO: investigate saving .changes here and then replacing the
389395 # TODO: changes after the load is complete. In other words preserve the
390396 # TODO: changed values as changes while just updating the synced values.
0 commit comments