tmpdir 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/tmpdir.rb +16 -8
  3. metadata +5 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1180516b6bd6658a8a32cfefe017af10eb41ed5fa78312d7dd27163b032f1632
4
- data.tar.gz: d7d4ebda12343e82d2fbfb1f750597692df607672bad6d3134637f94679a96b6
3
+ metadata.gz: 57a97ebf7b14e2f44e7b803b0f9dbec79dbeeab9e7073dd3d606fe9713a175fe
4
+ data.tar.gz: b3fbfc28c8a3296b6aa0f933e8238f6582ab2d8a5d61dcda9315faee74083478
5
5
  SHA512:
6
- metadata.gz: 965aed93f89f7553bc5c780176119d397aa0b32a203b6f8913806a4e8925887cbe1f0cae96e073547cdf6f102a9c0b2d475fb323097ae9ec3e4e0bba63ba85ff
7
- data.tar.gz: a48a3973178e8047b1aa139660f2808811e739e6aef1825c316093c1da9c85b8248290a125e0e2f9cd381aca8d39caa250e02d190b23be40f555d3e97fb70086
6
+ metadata.gz: 762bd5a660ee67f4defedb07775e0a1de30d4d3366b48dd6540726890f65181e698a8d4374c0ffccf93e1011bc097b7deeb8e185fb6d830f2e7ae9d53ee02ab9
7
+ data.tar.gz: 35ff31c1db12fa6eeb58fba94fde58d487f5e69c251bff2e6f39f315865667d03ee7fb56df70edaddae0dea1ed0acf61348627edd35849111b93c652e04542dd
data/lib/tmpdir.rb CHANGED
@@ -16,10 +16,6 @@ class Dir
16
16
  # Class variables are inaccessible from non-main Ractor.
17
17
  # And instance variables too, in Ruby 3.0.
18
18
 
19
- # System-wide temporary directory path
20
- SYSTMPDIR = (defined?(Etc.systmpdir) ? Etc.systmpdir.freeze : '/tmp')
21
- private_constant :SYSTMPDIR
22
-
23
19
  ##
24
20
  # Returns the operating system's temporary file path.
25
21
  #
@@ -27,7 +23,7 @@ class Dir
27
23
  # Dir.tmpdir # => "/tmp"
28
24
 
29
25
  def self.tmpdir
30
- ['TMPDIR', 'TMP', 'TEMP', ['system temporary path', SYSTMPDIR], ['/tmp']*2, ['.']*2].find do |name, dir|
26
+ Tmpname::TMPDIR_CANDIDATES.find do |name, dir|
31
27
  unless dir
32
28
  next if !(dir = ENV[name] rescue next) or dir.empty?
33
29
  end
@@ -98,13 +94,13 @@ class Dir
98
94
  # FileUtils.remove_entry dir
99
95
  # end
100
96
  #
101
- def self.mktmpdir(prefix_suffix=nil, *rest, **options)
97
+ def self.mktmpdir(prefix_suffix=nil, *rest, **options, &block)
102
98
  base = nil
103
99
  path = Tmpname.create(prefix_suffix || "d", *rest, **options) {|path, _, _, d|
104
100
  base = d
105
101
  mkdir(path, 0700)
106
102
  }
107
- if block_given?
103
+ if block
108
104
  begin
109
105
  yield path.dup
110
106
  ensure
@@ -126,6 +122,18 @@ class Dir
126
122
  module Tmpname # :nodoc:
127
123
  module_function
128
124
 
125
+ # System-wide temporary directory path
126
+ systmpdir = (defined?(Etc.systmpdir) ? Etc.systmpdir.freeze : '/tmp')
127
+
128
+ # Temporary directory candidates consisting of environment variable
129
+ # names or description and path pairs.
130
+ TMPDIR_CANDIDATES = [
131
+ 'TMPDIR', 'TMP', 'TEMP',
132
+ ['system temporary path', systmpdir],
133
+ %w[/tmp /tmp],
134
+ %w[. .],
135
+ ].each(&:freeze).freeze
136
+
129
137
  def tmpdir
130
138
  Dir.tmpdir
131
139
  end
@@ -149,8 +157,8 @@ class Dir
149
157
 
150
158
  # Generates and yields random names to create a temporary name
151
159
  def create(basename, tmpdir=nil, max_try: nil, **opts)
152
- origdir = tmpdir
153
160
  if tmpdir
161
+ origdir = tmpdir = File.path(tmpdir)
154
162
  raise ArgumentError, "empty parent path" if tmpdir.empty?
155
163
  else
156
164
  tmpdir = tmpdir()
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tmpdir
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yukihiro Matsumoto
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-11-06 00:00:00.000000000 Z
11
+ date: 2024-12-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fileutils
@@ -46,7 +46,7 @@ licenses:
46
46
  metadata:
47
47
  homepage_uri: https://github.com/ruby/tmpdir
48
48
  source_code_uri: https://github.com/ruby/tmpdir
49
- post_install_message:
49
+ post_install_message:
50
50
  rdoc_options: []
51
51
  require_paths:
52
52
  - lib
@@ -62,7 +62,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
62
62
  version: '0'
63
63
  requirements: []
64
64
  rubygems_version: 3.5.11
65
- signing_key:
65
+ signing_key:
66
66
  specification_version: 4
67
67
  summary: Extends the Dir class to manage the OS temporary file path.
68
68
  test_files: []