diff --git a/lib/colorls/core.rb b/lib/colorls/core.rb index b558968..f5f7707 100644 --- a/lib/colorls/core.rb +++ b/lib/colorls/core.rb @@ -416,20 +416,32 @@ module ColorLS def options(content) if content.directory? - key = content.name.downcase.to_sym - key = @folder_aliases[key] unless @folders.key? key - key = :folder if key.nil? - color = content.hidden? ? @colors[:hidden_dir] : @colors[:dir] - group = :folders + options_directory(content).values_at(:key, :color, :group) else - key = File.extname(content.name).delete_prefix('.').downcase.to_sym - key = @file_aliases[key] unless @files.key? key - color = file_color(content, key) - group = @files.key?(key) ? :recognized_files : :unrecognized_files - key = :file if key.nil? + options_file(content).values_at(:key, :color, :group) end + end - [key, color, group] + def options_directory(content) + key = content.name.downcase.to_sym + key = @folder_aliases[key] unless @folders.key?(key) + key = :folder if key.nil? + + color = content.hidden? ? @colors[:hidden_dir] : @colors[:dir] + + {key: key, color: color, group: :folders} + end + + def options_file(content) + key = File.extname(content.name).delete_prefix('.').downcase.to_sym + key = @file_aliases[key] unless @files.key?(key) + + color = file_color(content, key) + group = @files.key?(key) ? :recognized_files : :unrecognized_files + + key = :file if key.nil? + + {key: key, color: color, group: group} end def tree_contents(path)