tmpdir 0.1.1 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c0d9634c0737b99ed1386a7d3be6361e752c25f17b5a480bddde860963aa102f
4
- data.tar.gz: ef93a41c46bca182f2e9e4dc0d9a7cc9d705a151e6278afd24bfcb2aba03a4bb
3
+ metadata.gz: 23db0dc38a62002db3cbbe9dc185ba6d39a571ff12c064552d62162a511ae280
4
+ data.tar.gz: a44a1139f82880434057a5206b73efbfcd7ddce39e6ebb5ae9b69d47d028f20a
5
5
  SHA512:
6
- metadata.gz: 39d20bfd3d0546c67b931ae7e039cbb6b2b0e89e87a70e33153562fbbebbad1d8cdb9dba8bcdeda7246e8560ec9d7d988de9233c37522c5faa9cc5c4d44af806
7
- data.tar.gz: 49d849bbfa103d62bfd075825bb43965c18f6e261f047c164c63f91fa9e0c31de032b051983d84bfa8b8dcc60d39c93eb8b7d49daa8a4c78f1768721fd6096f3
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@master
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
 
118
- UNUSABLE_CHARS = [File::SEPARATOR, File::ALT_SEPARATOR, File::PATH_SEPARATOR, ":"].uniq.join("").freeze
117
+ # Unusable characters as path name
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.1"
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.1
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: 2020-12-22 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.2.2
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.