tmpdir 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
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: []