Sha256: db545de097a13657ba5f323413de6bc51206dae00549877b152a6b5d975b7462
Contents?: true
Size: 1.73 KB
Versions: 1
Compression:
Stored size: 1.73 KB
Contents
# frozen_string_literal: true module CodeKindly module Utils class File include Presence class << self def all(path) CodeKindly::Utils::Dir.all path end def choose_from_options(dir_path, h_l = nil) require 'highline' h_l ||= HighLine.new file_opts = file_options(dir_path) return nil if blank? file_opts msg = file_opts.inject('') { |(k, v), m| m + "\n #{k}: #{v}" } option = h_l.ask("Select a file:#{msg}\n 0: None", Integer) file_path = file_opts.fetch(option, nil) return if file_path.nil? ::File.join(dir_path, file_path) end def file_options(path) require 'map' options = Map.new key = 0 find(path).each do |file| options[key += 1] = file end options end def find(path) require 'fileutils' all(path).select { |entry| ::File.file?("#{path}/#{entry}") } end # move to trash (or delete) existing downloaded files # sudo gem install osx-trash (http://www.dribin.org/dave/blog/archives/2008/05/24/osx_trash/) def trash!(file_string) command = command_to_trash_files(file_string) return if command.nil? Kernel.system(command) end private def command_to_trash_files(file_string) return if Command.run("ls #{file_string}").result.nil? trash = OS.which('trash') if trash then "#{trash.chomp} #{file_string}" elsif ::File.directory?('~/.Trash') then "mv #{file_string} ~/.Trash" else "rm #{file_string}" end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
codekindly-utils-0.0.12 | lib/code_kindly/utils/file.rb |