Project

General

Profile

Actions

Feature #17297

closed

Feature: Introduce Pathname.mktmpdir

Feature #17297: Feature: Introduce Pathname.mktmpdir

Added by schneems (Richard Schneeman) about 5 years ago. Updated about 1 year ago.

Status:
Closed
Target version:
-
[ruby-core:100671]

Description

When I want to create a tmpdir I often want to manipulate it as a pathname. By introducing Pathname.mktmpdir I can get this behavior.

Currently I must:

Dir.mktmpdir do |dir| dir = Pathname(dir) # ... code end 

I would like to be able to instead:

Pathname.mktmpdir do |dir| # ... code end 

Diff:

$ git diff master diff --git a/ext/pathname/lib/pathname.rb b/ext/pathname/lib/pathname.rb index e6fb90277d..ec32e7d611 100644 --- a/ext/pathname/lib/pathname.rb +++ b/ext/pathname/lib/pathname.rb @@ -597,3 +597,20 @@ def rmtree end end +class Pathname # * tmpdir * + # Creates a tmp directory and wraps the returned path in a Pathname object. + # + # See Dir.mktmpdir + def self.mktmpdir + require 'tmpdir' unless defined?(Dir.mktmpdir) + if block_given? + Dir.mktmpdir do |dir| + dir = self.new(dir) + yield dir + end + else + self.new(Dir.mktmpdir) + end + end +end + diff --git a/test/pathname/test_pathname.rb b/test/pathname/test_pathname.rb index 43cef4849f..8edcccf666 100644 --- a/test/pathname/test_pathname.rb +++ b/test/pathname/test_pathname.rb @@ -1272,6 +1272,14 @@ def test_s_glob_3args } end + def test_mktmpdir + Pathname.mktmpdir do |dir| + assert_equal Pathname(dir), dir + assert dir.directory? + assert dir.exist? + end + end + def test_s_getwd wd = Pathname.getwd assert_kind_of(Pathname, wd) 

Github link: https://github.com/ruby/ruby/pull/3709

Updated by hsbt (Hiroshi SHIBATA) about 4 years ago Actions #1 [ruby-core:105087]

  • Status changed from Open to Assigned
  • Assignee set to akr (Akira Tanaka)

Updated by hsbt (Hiroshi SHIBATA) about 1 year ago Actions #2 [ruby-core:119439]

  • Status changed from Assigned to Closed

This feature request has been approved by @akr (Akira Tanaka). I merged https://github.com/ruby/ruby/pull/3709 now.

Actions

Also available in: PDF Atom