# File lib/chef/chef_fs/file_system/base_fs_object.rb, line 25 def initialize(name, parent) @parent = parent @name = name if parent @path = Chef::ChefFS::PathUtils::join(parent.path, name) else if name != '' raise ArgumentError, "Name of root object must be empty string: was '#{name}' instead" end @path = '/' end end
Override can_have_child? to report whether a given file could be added to this directory. (Some directories can't have subdirs, some can only have .json files, etc.)
# File lib/chef/chef_fs/file_system/base_fs_object.rb, line 74 def can_have_child?(name, is_dir) false end
# File lib/chef/chef_fs/file_system/base_fs_object.rb, line 67 def child(name) NonexistentFSObject.new(name, self) end
Override this if you have a special comparison algorithm that can tell you whether this entry is the same as another--either a quicker or a more reliable one. Callers will use this to decide whether to upload, download or diff an object.
You should not override this if you're going to do the standard +self.read == other.read+. If you return nil, the caller will call +other.compare_to(you)+ instead. Give them a chance :)
other - the entry to compare to
+[ are_same, value, other_value ]+ are_same may be true, false or nil (which means "don't know"). value and other_value must either be the text of self or other, :none (if the entry does not exist or has no value) or nil if the value was not retrieved.
nil if a definitive answer cannot be had and nothing was retrieved.
are_same, value, other_value = entry.compare_to(other) if are_same.nil? are_same, other_value, value = other.compare_to(entry) end if are_same.nil? value = entry.read if value.nil? other_value = entry.read if other_value.nil? are_same = (value == other_value) end
# File lib/chef/chef_fs/file_system/base_fs_object.rb, line 111 def compare_to(other) return nil end
# File lib/chef/chef_fs/file_system/base_fs_object.rb, line 59 def dir? false end
# File lib/chef/chef_fs/file_system/base_fs_object.rb, line 63 def exists? true end
Generated with the Darkfish Rdoc Generator 2.