# File lib/flexirecord.rb, line 991
 991:       def inspect
 992:         synchronize do
 993:           processed_objects = Thread.current[:flexirecord_baserecord_inspect_cycle_check] ||= {}
 994:           if processed_objects[self]
 995:             return "#<#{self.class}:0x#{sprintf "%08x", object_id}"
 996:           else
 997:             begin
 998:               processed_objects[self] = true
 999:               return "#<#{self.class}:0x#{sprintf "%08x", object_id} #{@saved ? 'saved' : 'unsaved'}, old_primary_key = {" <<
1000:                 self.class.primary_columns.dup.delete_if { |column| not @old_primary_key.has_key?(column) }.
1001:                 collect { |column| column.inspect << '=>' << @old_primary_key[column].inspect }.join(', ') << "}, data = {" <<
1002:                 self.class.columns.dup.delete_if { |column| not (@data_hash.has_key?([column]) or self.class.reader(column)) }.
1003:                 collect { |column| column.inspect << '=>' << read(column).inspect }.join(', ') << "}>"
1004:             ensure
1005:               processed_objects.delete(self)
1006:             end
1007:           end
1008:         end
1009:       end