module DigestibleAttributes::Digester
Constants
- FIELD_ESCAPE
- FIELD_SEPARATOR
- NULL_ESCAPE
Public Instance Methods
calculate_digest()
click to toggle source
# File lib/digestible_attributes/digester.rb, line 9 def calculate_digest OpenSSL::Digest(self.class.digest_algorithm).hexdigest(digestible_string) end
Private Instance Methods
digestible_string()
click to toggle source
# File lib/digestible_attributes/digester.rb, line 19 def digestible_string symbolized_digest_fields.map do |field, value| base_str = "#{field}#{FIELD_ESCAPE}" if value.nil? base_str += NULL_ESCAPE else base_str += value.to_s end end.join(FIELD_SEPARATOR) end
symbolized_digest_fields()
click to toggle source
# File lib/digestible_attributes/digester.rb, line 15 def symbolized_digest_fields attributes.symbolize_keys.slice(*self.class.digest_fields) end