Skip to content

Commit 956b345

Browse files
[DOC] Enhanced RDoc for ::cp (#74)
1 parent ff49055 commit 956b345

File tree

1 file changed

+44
-7
lines changed

1 file changed

+44
-7
lines changed

lib/fileutils.rb

Lines changed: 44 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -631,16 +631,53 @@ def link_entry(src, dest, dereference_root = false, remove_destination = false)
631631
end
632632
module_function :link_entry
633633

634+
# Copies files from +src+ to +dest+.
634635
#
635-
# Copies a file content +src+ to +dest+. If +dest+ is a directory,
636-
# copies +src+ to +dest/src+.
636+
# If +src+ is the path to a file and +dest+ is not the path to a directory,
637+
# copies +src+ to +dest+:
637638
#
638-
# If +src+ is a list of files, then +dest+ must be a directory.
639+
# FileUtils.touch('src0.txt')
640+
# File.exist?('dest0.txt') # => false
641+
# FileUtils.cp('src0.txt', 'dest0.txt')
642+
# File.exist?('dest0.txt') # => true
643+
#
644+
# If +src+ is the path to a file and +dest+ is the path to a directory,
645+
# copies +src+ to <tt>dest/src</tt>:
646+
#
647+
# FileUtils.touch('src1.txt')
648+
# FileUtils.mkdir('dest1')
649+
# FileUtils.cp('src1.txt', 'dest1')
650+
# File.exist?('dest1/src1.txt') # => true
651+
#
652+
# If +src+ is an array of paths to files and +dest+ is the path to a directory,
653+
# copies from each +src+ to +dest+:
654+
#
655+
# src_file_paths = ['src2.txt', 'src2.dat']
656+
# FileUtils.touch(src_file_paths)
657+
# FileUtils.mkdir('dest2')
658+
# FileUtils.cp(src_file_paths, 'dest2')
659+
# File.exist?('dest2/src2.txt') # => true
660+
# File.exist?('dest2/src2.dat') # => true
661+
#
662+
# Keyword arguments:
663+
#
664+
# - <tt>preserve: true</tt> - preserves file times.
665+
# - <tt>noop: true</tt> - does not copy files.
666+
# - <tt>verbose: true</tt> - prints an equivalent command:
667+
#
668+
# FileUtils.cp('src0.txt', 'dest0.txt', noop: true, verbose: true)
669+
# FileUtils.cp('src1.txt', 'dest1', noop: true, verbose: true)
670+
# FileUtils.cp(src_file_paths, 'dest2', noop: true, verbose: true)
671+
#
672+
# Output:
673+
#
674+
# cp src0.txt dest0.txt
675+
# cp src1.txt dest1
676+
# cp src2.txt src2.dat dest2
677+
#
678+
# Raises an exception if +src+ is a directory.
639679
#
640-
# FileUtils.cp 'eval.c', 'eval.c.org'
641-
# FileUtils.cp %w(cgi.rb complex.rb date.rb), '/usr/lib/ruby/1.6'
642-
# FileUtils.cp %w(cgi.rb complex.rb date.rb), '/usr/lib/ruby/1.6', verbose: true
643-
# FileUtils.cp 'symlink', 'dest' # copy content, "dest" is not a symlink
680+
# FileUtils.copy is an alias for FileUtils.cp.
644681
#
645682
def cp(src, dest, preserve: nil, noop: nil, verbose: nil)
646683
fu_output_message "cp#{preserve ? ' -p' : ''} #{[src,dest].flatten.join ' '}" if verbose

0 commit comments

Comments
 (0)