# TIP: Using vim and want to get rid of this example shit? # In nav-mode type: 100dd
# Hey there, # to filter your records you will use Ruby # but don’t be afraid, it’s fairly simple. # Just look at the examples and referenced links.
# Use ruby methods to narrow down you result set. # * www.ruby-doc.org/core-2.1.1/File.html # * www.ruby-doc.org/core-2.1.1/Enumerable.html
# ==================================================== # = Doc (remove, reuse or comment out the examples!) = # ====================================================
puts “Filtering in #{@fs.base_dir}” @fs.index.select! do |inode, node|
# node has the following methods # * dir => source movie directory (e.g. C:/Movies) # * relative_path => relative path to @fs.base_dir # * mode => file mode # * owner => name of the file owner # * group => name of the file group # * owngrp => owner and group combined by a colon # * basename => alias for File#basename # * dirname => alias for File#dirname # * extname => alias for File#extname # * stat => alias for File#stat # * size => alias for File#size # * directory? => alias for FileTest#directory? # * file? => alias for FileTest#file? # * symlink? => alias for FileTest#symlink? # The index is NOT NESTED! If you remove a directory node, all sub nodes # will still be in the index! # Set break point to interactively call methods from here. # See http://pryrepl.org ory type "help" when you are in the REPL. # Use exit or exit! to break out of REPL. # binding.pry # -------------------------------------------------------------- node.directory? && node.basename =~ /^[a-z0-9]+$/
end
# Filter by name, for regex see rubular.com @fs.index.reject! {|inode, node| node.basename =~ /whatever/i }
# Only big files @fs.index.select! {|inode, node| node.file? && node.size > 1024 * 1024 * 10 }
# Sort by size @fs.index.replace Hash[@fs.index.sort_by{|inode, node| node.size }.reverse]