Module: Gibbler::File
Overview
Creates a digest based on: CLASS:PATHLENGTH:PATH
where PATHLENGTH is the length of the PATH string. PATH is not modified in any way (it is not converted to an absolute path).
NOTE: You may expect this method to include other information like the file contents and modified date (etc…). The reason we do not is because Gibbler is concerned only about Ruby and not the outside world. There are many complexities in parsing file data and attributes which would make it difficult to run across platforms and Ruby versions / engines. If you want to
e.g.
File.new('.') # => c8bc8b3a
File.new('/tmp') # => 3af85a19
File.new('/tmp/') # => 92cbcb7d
Class Method Summary collapse
Instance Method Summary collapse
-
#__gibbler(digest_type = nil) ⇒ Object
Creates a digest for the current state of self.
Methods included from Object
#digest_cache, #freeze, #gibbled?, #gibbler, #gibbler_debug, #gibbler_fields, gibbler_fields
Class Method Details
.included(obj) ⇒ Object
651 652 653 654 |
# File 'lib/gibbler.rb', line 651 def self.included(obj) obj.extend Attic obj.attic :gibbler_cache end |
Instance Method Details
#__gibbler(digest_type = nil) ⇒ Object
Creates a digest for the current state of self.
657 658 659 660 661 662 663 |
# File 'lib/gibbler.rb', line 657 def __gibbler(digest_type=nil) klass = self.class value = self.nil? ? "\0" : self.path a = Gibbler.digest "%s:%d:%s" % [klass, value.size, value], digest_type gibbler_debug klass, a, [klass, value.size, value] a end |