tmpdir 0.1.2 → 0.1.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 84a1d6925a3dce09b6cee2ed681d30e1627763f3ee4d1eedb777dd6f85aab68e
4
- data.tar.gz: 1efaad6103749c58fb74b1b78d90b43aa0c63a02a4c4f223cc3a33cec89abcda
3
+ metadata.gz: 23db0dc38a62002db3cbbe9dc185ba6d39a571ff12c064552d62162a511ae280
4
+ data.tar.gz: a44a1139f82880434057a5206b73efbfcd7ddce39e6ebb5ae9b69d47d028f20a
5
5
  SHA512:
6
- metadata.gz: 25d2caf79564b451c54de55c78cd55efc5951c8a92295226c860e60ce10069d0986dc9149ba0a79f86ed630303cd3e0378bdf13d1c3211db6f962a0f1dc70092
7
- data.tar.gz: dcbbeb5f96f45b953550f41028415e4a6ae71a5230e4a51db8edc51d68d2a595d1ef0610e62249dfa71886b6c00a65551d2d88f2a1e54ed0e4661707502907e2
6
+ metadata.gz: 276895513eab16fa4e2ab9d78216f62b5438cf3a59d24e3be758dd64934bdd86db570590b41bb73480ae699781b2a2e1f36504ae4b34141f8503bca0d6c20001
7
+ data.tar.gz: bff0818e6786cdc7b5084f57d4f3b270192fc850aced926fc0a41c40fb50d4d8a18397515c486fe7a73f8838dd8b1594dfda806ae3dd8fc50391c224bd7ab026
data/.document ADDED
@@ -0,0 +1,2 @@
1
+ README.md
2
+ lib/
@@ -0,0 +1,6 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: 'github-actions'
4
+ directory: '/'
5
+ schedule:
6
+ interval: 'weekly'
@@ -1,4 +1,4 @@
1
- name: ubuntu
1
+ name: test
2
2
 
3
3
  on: [push, pull_request]
4
4
 
@@ -7,18 +7,21 @@ jobs:
7
7
  name: build (${{ matrix.ruby }} / ${{ matrix.os }})
8
8
  strategy:
9
9
  matrix:
10
- ruby: [ 2.7, 2.6, 2.5, 2.4, head ]
11
- os: [ ubuntu-latest, macos-latest ]
10
+ ruby: [ '3.1', '3.0', '2.7', head ]
11
+ os: [ ubuntu-latest, macos-latest, windows-latest ]
12
+ exclude:
13
+ - { os: windows-latest, ruby: head }
14
+ include:
15
+ - { os: windows-latest, ruby: mingw }
16
+ - { os: windows-latest, ruby: mswin }
12
17
  runs-on: ${{ matrix.os }}
13
18
  steps:
14
- - uses: actions/checkout@v2
19
+ - uses: actions/checkout@v3
15
20
  - name: Set up Ruby
16
21
  uses: ruby/setup-ruby@v1
17
22
  with:
18
23
  ruby-version: ${{ matrix.ruby }}
19
24
  - name: Install dependencies
20
- run: |
21
- gem install bundler --no-document
22
- bundle install
25
+ run: bundle install
23
26
  - name: Run test
24
27
  run: rake test
data/Rakefile CHANGED
@@ -9,7 +9,7 @@ end
9
9
 
10
10
  task :sync_tool do
11
11
  require 'fileutils'
12
- FileUtils.cp "../ruby/tool/lib/test/unit/core_assertions.rb", "./test/lib"
12
+ FileUtils.cp "../ruby/tool/lib/core_assertions.rb", "./test/lib"
13
13
  FileUtils.cp "../ruby/tool/lib/envutil.rb", "./test/lib"
14
14
  FileUtils.cp "../ruby/tool/lib/find_executable.rb", "./test/lib"
15
15
  end
data/lib/tmpdir.rb CHANGED
@@ -19,9 +19,10 @@ class Dir
19
19
  # Returns the operating system's temporary file path.
20
20
 
21
21
  def self.tmpdir
22
- tmp = nil
23
- ['TMPDIR', 'TMP', 'TEMP', ['system temporary path', @@systmpdir], ['/tmp']*2, ['.']*2].each do |name, dir = ENV[name]|
24
- next if !dir
22
+ ['TMPDIR', 'TMP', 'TEMP', ['system temporary path', @@systmpdir], ['/tmp']*2, ['.']*2].find do |name, dir|
23
+ unless dir
24
+ next if !(dir = ENV[name]) or dir.empty?
25
+ end
25
26
  dir = File.expand_path(dir)
26
27
  stat = File.stat(dir) rescue next
27
28
  case
@@ -32,12 +33,9 @@ class Dir
32
33
  when stat.world_writable? && !stat.sticky?
33
34
  warn "#{name} is world-writable: #{dir}"
34
35
  else
35
- tmp = dir
36
- break
36
+ break dir
37
37
  end
38
- end
39
- raise ArgumentError, "could not find a temporary directory" unless tmp
40
- tmp
38
+ end or raise ArgumentError, "could not find a temporary directory"
41
39
  end
42
40
 
43
41
  # Dir.mktmpdir creates a temporary directory.
@@ -69,7 +67,7 @@ class Dir
69
67
  #
70
68
  # Dir.mktmpdir {|dir|
71
69
  # # use the directory...
72
- # open("#{dir}/foo", "w") { ... }
70
+ # open("#{dir}/foo", "w") { something using the file }
73
71
  # }
74
72
  #
75
73
  # If a block is not given,
@@ -79,7 +77,7 @@ class Dir
79
77
  # dir = Dir.mktmpdir
80
78
  # begin
81
79
  # # use the directory...
82
- # open("#{dir}/foo", "w") { ... }
80
+ # open("#{dir}/foo", "w") { something using the file }
83
81
  # ensure
84
82
  # # remove the directory.
85
83
  # FileUtils.remove_entry dir
@@ -108,6 +106,7 @@ class Dir
108
106
  end
109
107
  end
110
108
 
109
+ # Temporary name generator
111
110
  module Tmpname # :nodoc:
112
111
  module_function
113
112
 
@@ -115,16 +114,23 @@ class Dir
115
114
  Dir.tmpdir
116
115
  end
117
116
 
117
+ # Unusable characters as path name
118
118
  UNUSABLE_CHARS = "^,-.0-9A-Z_a-z~"
119
119
 
120
- class << (RANDOM = Random.new)
120
+ # Dedicated random number generator
121
+ RANDOM = Random.new
122
+ class << RANDOM # :nodoc:
123
+ # Maximum random number
121
124
  MAX = 36**6 # < 0x100000000
125
+
126
+ # Returns new random string upto 6 bytes
122
127
  def next
123
128
  rand(MAX).to_s(36)
124
129
  end
125
130
  end
126
131
  private_constant :RANDOM
127
132
 
133
+ # Generates and yields random names to create a temporary name
128
134
  def create(basename, tmpdir=nil, max_try: nil, **opts)
129
135
  origdir = tmpdir
130
136
  tmpdir ||= tmpdir()
data/tmpdir.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "tmpdir"
3
- spec.version = "0.1.2"
3
+ spec.version = "0.1.3"
4
4
  spec.authors = ["Yukihiro Matsumoto"]
5
5
  spec.email = ["matz@ruby-lang.org"]
6
6
 
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
8
8
  spec.description = %q{Extends the Dir class to manage the OS temporary file path.}
9
9
  spec.homepage = "https://github.com/ruby/tmpdir"
10
10
  spec.licenses = ["Ruby", "BSD-2-Clause"]
11
- spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
11
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
12
12
 
13
13
  spec.metadata["homepage_uri"] = spec.homepage
14
14
  spec.metadata["source_code_uri"] = spec.homepage
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.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yukihiro Matsumoto
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-04-05 00:00:00.000000000 Z
11
+ date: 2022-12-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fileutils
@@ -31,6 +31,8 @@ executables: []
31
31
  extensions: []
32
32
  extra_rdoc_files: []
33
33
  files:
34
+ - ".document"
35
+ - ".github/dependabot.yml"
34
36
  - ".github/workflows/test.yml"
35
37
  - ".gitignore"
36
38
  - Gemfile
@@ -56,14 +58,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
56
58
  requirements:
57
59
  - - ">="
58
60
  - !ruby/object:Gem::Version
59
- version: 2.3.0
61
+ version: 2.7.0
60
62
  required_rubygems_version: !ruby/object:Gem::Requirement
61
63
  requirements:
62
64
  - - ">="
63
65
  - !ruby/object:Gem::Version
64
66
  version: '0'
65
67
  requirements: []
66
- rubygems_version: 3.3.0.dev
68
+ rubygems_version: 3.4.0.dev
67
69
  signing_key:
68
70
  specification_version: 4
69
71
  summary: Extends the Dir class to manage the OS temporary file path.