class Synchronisable::Worker::Record
Responsible for record synchronization.
@api private
Public Instance Methods
sync_record()
click to toggle source
Synchronizes record.
# File lib/synchronisable/worker/record.rb, line 10 def sync_record @synchronizer.with_record_sync_callbacks(@source) do log_info(@source.dump_message, :green) if @source.updatable? log_info("updating #{@source.model}: #{@source.local_record.id}", :blue) update_record else create_record_pair log_info("#{@source.model} (id: #{@source.local_record.id}) was created", :blue) log_info("#{@source.import_record.class}: #{@source.import_record.id} was created", :blue) end end end
Private Instance Methods
create_record_pair()
click to toggle source
# File lib/synchronisable/worker/record.rb, line 37 def create_record_pair record = @source.model.create!(@source.local_attrs) @source.import_record = Import.create!( :synchronisable_id => record.id, :synchronisable_type => @source.model.to_s, :remote_id => @source.remote_id.to_s, :unique_id => @source.unique_id.to_s, :attrs => @source.local_attrs ) end
update_record()
click to toggle source
# File lib/synchronisable/worker/record.rb, line 29 def update_record @source.import_record.update_attributes( remote_id: @source.remote_id, attrs: @source.local_attrs ) @source.local_record.update_attributes!(@source.local_attrs) end