The fastest way should be (not including directories in count):
Dir.glob(File.join(your_directory_as_variable_or_string, '**', '*')).select { |file| File.file?(file) }.count
And shorter:
dir="~/Documents"
Dir[File.join(dir, '**', '*')].count { |file| File.file?(file) }