# File lib/gibbler.rb, line 322 def __gibbler(digest_type=nil) klass = self.class d = [] gibbler_debug :gibbler_fields, gibbler_fields gibbler_fields.each do |n| value = instance_variable_get("@#{n}") unless value.respond_to? :__gibbler gibbler_debug klass, :skipping, n next end d << '%s:%s:%s' % [value.class, n, value.__gibbler(digest_type)] end d = d.join(':').__gibbler(digest_type) a = Gibbler.digest "%s:%d:%s" % [klass, d.size, d], digest_type gibbler_debug klass, a, [klass, d.size, d] a end