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(h = self) ⇒ Object
Creates a digest for the current state of self.
Methods included from Object
#gibbled?, #gibbler, #gibbler_debug
Class Method Details
.included(obj) ⇒ Object
403 404 405 406 |
# File 'lib/gibbler.rb', line 403 def self.included(obj) obj.extend Attic obj.attic :__gibbler_cache end |
Instance Method Details
#__gibbler(h = self) ⇒ Object
Creates a digest for the current state of self.
409 410 411 412 413 414 415 |
# File 'lib/gibbler.rb', line 409 def __gibbler(h=self) klass = h.class value = h.nil? ? "\0" : h.path a = Gibbler.digest "%s:%d:%s" % [klass, value.size, value] gibbler_debug klass, a, [klass, value.size, value] a end |