Method: FileMonitoring::DirStat#load_instance
- Defined in:
- lib/file_monitoring/monitor_path.rb
#load_instance(sub_paths, sub_paths_index, size, modification_time) ⇒ Object
add instance while initializing tree using content data from file Parameters:
sub_paths - Array of sub paths of the instance which is added to tree
Example:
instance path = /dir1/dir2/file_name
Sub path 1: /dir1
Sub path 2: /dir1/dir2
Sub path 3: /dir1/dir2/file_name
sub paths would create DirStat objs or FileStat(FileStat create using last sub path).
sub_paths_index - the index indicates the next sub path to insert to the tree
the index will be raised at each recursive call down the tree
size - the instance size to insert to the tree
modification_time - the instance modification_time to insert to the tree
178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 |
# File 'lib/file_monitoring/monitor_path.rb', line 178 def load_instance(sub_paths, sub_paths_index, size, modification_time) # initialize dirs and files. @dirs = {} unless @dirs @files = {} unless @files if sub_paths.size-1 == sub_paths_index # Add File case - index points to last entry - leaf case. file_stat = FileStat.new(sub_paths[sub_paths_index], FileStatEnum::STABLE, size, modification_time, true) add_file(file_stat) else # Add Dir to tree if not present. index points to new dir path. dir_stat = @dirs[sub_paths[sub_paths_index]] #create new dir if not exist unless dir_stat dir_stat = DirStat.new(sub_paths[sub_paths_index]) add_dir(dir_stat) end # continue recursive call on tree with next sub path index dir_stat.load_instance(sub_paths, sub_paths_index+1, size, modification_time) end end |