Extended maintenance of Ruby 1.9.3 ended on February 23, 2015. Read more
Path to the currently running Ruby program
Run a Ruby interpreter with the given arguments.
Example:
ruby %Q{-pe '$_.upcase!' <README}
# File rake/file_utils.rb, line 77 def ruby(*args,&block) options = (Hash === args.last) ? args.pop : {} if args.length > 1 then sh(*([RUBY] + args + [options]), &block) else sh("#{RUBY} #{args.first}", options, &block) end end
Attempt to do a normal file link, but fall back to a copy if the link fails.
# File rake/file_utils.rb, line 90 def safe_ln(*args) unless LN_SUPPORTED[0] cp(*args) else begin ln(*args) rescue StandardError, NotImplementedError LN_SUPPORTED[0] = false cp(*args) end end end
Run the system command cmd
. If multiple arguments are given
the command is not run with the shell (same semantics as Kernel::exec and
Kernel::system).
Example:
sh %Q{ls -ltr} sh 'ls', 'file with spaces' # check exit status after command runs sh %Q{grep pattern file} do |ok, res| if ! ok puts "pattern not found (status = #{res.exitstatus})" end end
# File rake/file_utils.rb, line 33 def sh(*cmd, &block) options = (Hash === cmd.last) ? cmd.pop : {} shell_runner = block_given? ? block : create_shell_runner(cmd) set_verbose_option(options) options[:noop] ||= Rake::FileUtilsExt.nowrite_flag Rake.rake_check_options options, :noop, :verbose Rake.rake_output_message cmd.join(" ") if options[:verbose] unless options[:noop] res = rake_system(*cmd) status = $? status = PseudoStatus.new(1) if !res && status.nil? shell_runner.call(res, status) end end
Split a file path into individual directory names.
Example:
split_all("a/b/c") => ['a', 'b', 'c']
# File rake/file_utils.rb, line 108 def split_all(path) head, tail = File.split(path) return [tail] if head == '.' || tail == '/' return [head, tail] if head == '/' return split_all(head) + [tail] end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.