Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Дана папка с изображениями, кол-во файлов изображений не ограничено.
- #Необходимо вывести в массив хешей, где содержится информация о названии файла и количестве его повторений
- #Пример:
- #result = [{filenames: ['file1.png', ....], count: 10}, {filenames: ['file3.png',...], count: 9}]
- #Решение
- dir_name = ARGV[0]
- abort "No dirname in arg" if dir_name.nil?
- dir_pattern = "#{dir_name}/**/*"
- file_arr = Dir.glob(dir_pattern).reject { |f| File.directory?(f) }
- def hash_files(files)
- files.each_with_object(Hash.new [] ) do |file, res|
- res[File.basename(file)] += [file]
- end
- end
- def results(files)
- res = []
- hash_files(files).each do |key, value|
- elem = {}
- elem[:filenames] = [key] + value
- elem[:count] = value.count
- res << elem
- end
- res
- end
- puts results(file_arr)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement