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