file-temp 1.7.1 → 1.7.2

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: 2f7a532c6a985ef7afd93f064e38ff3fb81228d642707fa06156f23b1a2d33c6
4
- data.tar.gz: 5de639ab3cc6644fb385d35b364f8aa4c6c8afbd989706875a8e6f90193eaa18
3
+ metadata.gz: eff786722d8fdd2d775c3bf89a93256c3e6cb52a73966d13aa5f5520c37c96ee
4
+ data.tar.gz: 57637cb99fbb42afa24779c95527faeedf0a0ff304fc0eba3de517912377459e
5
5
  SHA512:
6
- metadata.gz: 7e77feff9b86f7e33c233037e5c5342fac28a7bd3e5b18296cfae915e8a9e39b0d73a4a9dc87ac3ce096869b9bad401c98041bd2cb847a04d4c1b74f98a5b884
7
- data.tar.gz: 285fe4b48491c6468e7f0a3646d3a9da2b9d55e9386b5f6ee232882bb611311c3122ffa34ac98162e3f847f618c20fae57254c8135d368cc58aeb7d76761dd8e
6
+ metadata.gz: 35e334372e93fec4e19687f353262910bc7b77e7ccde89d48f01c92f86c85e329efcc00363bc7689447b67230dce4b50047dc8390ab06586e99bdd5c9fef55a2
7
+ data.tar.gz: 7443857009f786d4c8d460a1e2d3924f5deb1d6074c5f5813c39a4138e40e8e88132a5ec36152718fba2484d234cdc9c40f73fb98a15694aafddda07e89480c0
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGES.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 1.7.2 - 11-Jul-2023
2
+ * Fixed a bug in the Windows version where it would sometimes fail.
3
+ * Dropped JRuby from the test matrix for now because of a bug.
4
+ See https://github.com/jruby/jruby/issues/7847 for more details.
5
+
1
6
  ## 1.7.1 - 28-Dec-2020
2
7
  * Updated file option kwarg handling so that it's compatible with Ruby 3.x.
3
8
  * Switched from rdoc to markdown format since github isn't rendering rdoc properly.
data/Gemfile CHANGED
@@ -1,7 +1,2 @@
1
- source 'https://rubygems.org' do
2
- gem 'rake'
3
- gem 'ffi', '~> 1.1'
4
- group 'test' do
5
- gem 'rspec', '~> 3.9'
6
- end
7
- end
1
+ source 'https://rubygems.org'
2
+ gemspec
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ [![Ruby](https://github.com/djberg96/file-temp/actions/workflows/ruby.yml/badge.svg)](https://github.com/djberg96/file-temp/actions/workflows/ruby.yml)
2
+
1
3
  ## Description
2
4
  The file-temp library is an alternate way to handle tempfile generation.
3
5
 
@@ -7,8 +9,11 @@ The file-temp library is an alternate way to handle tempfile generation.
7
9
  ## Installation
8
10
  `gem install file-temp`
9
11
 
12
+ ## Adding the trusted cert
13
+ `gem cert --add <(curl -Ls https://raw.githubusercontent.com/djberg96/file-temp/main/certs/djberg96_pub.pem)`
14
+
10
15
  ## Synopsis
11
- ```
16
+ ```ruby
12
17
  require 'file/temp'
13
18
 
14
19
  fh = File::Temp.new
@@ -42,18 +47,22 @@ temporary file name generated by Java is different than the C version,
42
47
  since it uses a GUID instead of the 'XXXXXX' template, but the
43
48
  interface is otherwise identical.
44
49
 
50
+ As of version 1.7.2 there is a known issue with using File::Temp.open
51
+ vs File::Temp.new. See https://github.com/jruby/jruby/issues/7847 for
52
+ more details.
53
+
45
54
  ## MS Windows
46
55
  You may need to use the mingw build in order to use this library.
47
56
 
48
57
  Also, there was a bug with the `GetTempFileName` function on certain versions
49
- of MS Windows that may cause a failure. However, if you'r patched up you
58
+ of MS Windows that may cause a failure. However, if you're patched up you
50
59
  should not see it.
51
60
 
52
61
  ## License
53
62
  Apache-2.0
54
63
 
55
64
  ## Copyright
56
- (C) 2007-2020 Daniel J. Berger
65
+ (C) 2007-2023 Daniel J. Berger
57
66
  All Rights Reserved
58
67
 
59
68
  ## Warranty
data/Rakefile CHANGED
@@ -1,17 +1,18 @@
1
1
  require 'rake'
2
2
  require 'rake/clean'
3
3
  require 'rspec/core/rake_task'
4
+ require 'rubocop/rake_task'
4
5
 
5
6
  CLEAN.include('**/*.tar', '**/*.zip', '**/*.gz', '**/*.bz2')
6
- CLEAN.include('**/*.rbc', '**/*.gem', '**/*.tmp')
7
+ CLEAN.include('**/*.rbc', '**/*.gem', '**/*.tmp', '**/*.lock')
7
8
 
8
9
  namespace 'gem' do
9
10
  desc 'Create the file-temp gem'
10
11
  task :create => [:clean] do
11
12
  require 'rubygems/package'
12
- spec = eval(IO.read('file-temp.gemspec'))
13
+ spec = Gem::Specification.load('file-temp.gemspec')
13
14
  spec.signing_key = File.join(Dir.home, '.ssh', 'gem-private_key.pem')
14
- Gem::Package.build(spec, true)
15
+ Gem::Package.build(spec)
15
16
  end
16
17
 
17
18
  desc 'Install the file-temp gem'
@@ -21,6 +22,8 @@ namespace 'gem' do
21
22
  end
22
23
  end
23
24
 
25
+ RuboCop::RakeTask.new
26
+
24
27
  desc 'Run the test suite for the file-temp library'
25
28
  RSpec::Core::RakeTask.new(:spec)
26
29
 
data/file-temp.gemspec CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = 'file-temp'
5
- spec.version = '1.7.1'
5
+ spec.version = '1.7.2'
6
6
  spec.author = 'Daniel J. Berger'
7
7
  spec.license = 'Apache-2.0'
8
8
  spec.email = 'djberg96@gmail.com'
@@ -14,15 +14,18 @@ Gem::Specification.new do |spec|
14
14
 
15
15
  spec.add_dependency('ffi', '~> 1.1')
16
16
  spec.add_development_dependency('rspec', '~> 3.9')
17
+ spec.add_development_dependency('rubocop')
18
+ spec.add_development_dependency('rubocop-rspec')
17
19
  spec.add_development_dependency('rake')
18
20
 
19
21
  spec.metadata = {
20
- 'homepage_uri' => 'https://github.com/djberg96/file-temp',
21
- 'bug_tracker_uri' => 'https://github.com/djberg96/file-temp/issues',
22
- 'changelog_uri' => 'https://github.com/djberg96/file-temp/blob/master/CHANGES.md',
23
- 'documentation_uri' => 'https://github.com/djberg96/file-temp/wiki',
24
- 'source_code_uri' => 'https://github.com/djberg96/file-temp',
25
- 'wiki_uri' => 'https://github.com/djberg96/file-temp/wiki'
22
+ 'homepage_uri' => 'https://github.com/djberg96/file-temp',
23
+ 'bug_tracker_uri' => 'https://github.com/djberg96/file-temp/issues',
24
+ 'changelog_uri' => 'https://github.com/djberg96/file-temp/blob/main/CHANGES.md',
25
+ 'documentation_uri' => 'https://github.com/djberg96/file-temp/wiki',
26
+ 'source_code_uri' => 'https://github.com/djberg96/file-temp',
27
+ 'wiki_uri' => 'https://github.com/djberg96/file-temp/wiki',
28
+ 'rubygems_mfa_required' => 'true'
26
29
  }
27
30
 
28
31
  spec.description = <<-EOF
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'java'
2
- import java.lang.System
3
4
 
5
+ # The File::Temp class encapsulates temporary files. It is a subclass of File.
4
6
  class File::Temp < File
5
7
  # The temporary directory used on MS Windows or Unix.
6
- TMPDIR = java.lang.System.getProperties["java.io.tmpdir"]
8
+ TMPDIR = java.lang.System.getProperties['java.io.tmpdir']
7
9
 
8
10
  # The name of the temporary file.
9
11
  attr_reader :path
@@ -42,7 +44,7 @@ class File::Temp < File
42
44
  # to Errno::EINVAL.
43
45
  begin
44
46
  @file = java.io.File.createTempFile(template, nil, java.io.File.new(directory))
45
- rescue NativeException => err
47
+ rescue NativeException
46
48
  raise SystemCallError.new(22), template # 22 is EINVAL
47
49
  end
48
50
 
@@ -69,6 +71,6 @@ class File::Temp < File
69
71
  #
70
72
  def close
71
73
  super
72
- @file.finalize
74
+ @file.finalize if @file.respond_to?(:finalize)
73
75
  end
74
76
  end
data/lib/file/temp.rb CHANGED
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class File::Temp < File
2
4
  # The version of the file-temp library
3
- VERSION = '1.7.1'.freeze
5
+ VERSION = '1.7.2'
4
6
  end
5
7
 
6
8
  if RUBY_PLATFORM == 'java'
@@ -1,6 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'ffi'
2
4
  require 'tmpdir'
3
5
 
6
+ # The File::Temp class encapsulates temporary files. It is a subclass of File.
4
7
  class File::Temp < File
5
8
  extend FFI::Library
6
9
  ffi_lib FFI::Library::LIBC
@@ -1,9 +1,13 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'ffi'
2
4
  require 'tmpdir'
3
5
 
6
+ # The File::Temp class encapsulates temporary files. It is a subclass of File.
4
7
  class File::Temp < File
5
8
  extend FFI::Library
6
9
  ffi_lib FFI::Library::LIBC
10
+ ffi_convention :stdcall
7
11
 
8
12
  # :stopdoc:
9
13
 
@@ -11,13 +15,13 @@ class File::Temp < File
11
15
 
12
16
  attach_function :_close, [:int], :int
13
17
  attach_function :fclose, [:pointer], :int
14
- attach_function :_fdopen, [:int, :string], :pointer
18
+ attach_function :_fdopen, %i[int string], :pointer
15
19
  attach_function :_fileno, [:pointer], :int
16
20
  attach_function :_get_errno, [:pointer], :int
17
- attach_function :_open, [:string, :int, :int], :int
18
- attach_function :_open_osfhandle, [:long, :int], :int
19
- attach_function :tmpnam_s, [:pointer, :size_t], :int
20
- attach_function :mktemp_s, :_mktemp_s, [:pointer, :size_t], :int
21
+ attach_function :_open, %i[string int int], :int
22
+ attach_function :_open_osfhandle, %i[long int], :int
23
+ attach_function :tmpnam_s, %i[pointer size_t], :int
24
+ attach_function :mktemp_s, :_mktemp_s, %i[pointer size_t], :int
21
25
 
22
26
  private_class_method :_close, :fclose, :_fdopen, :_fileno, :_get_errno
23
27
  private_class_method :_open, :_open_osfhandle, :mktemp_s, :tmpnam_s
@@ -25,10 +29,10 @@ class File::Temp < File
25
29
  ffi_lib :kernel32
26
30
 
27
31
  attach_function :CloseHandle, [:long], :bool
28
- attach_function :CreateFileW, [:buffer_in, :ulong, :ulong, :pointer, :ulong, :ulong, :ulong], :long
32
+ attach_function :CreateFileW, %i[buffer_in ulong ulong pointer ulong ulong ulong], :long
29
33
  attach_function :DeleteFileW, [:string], :bool
30
- attach_function :GetTempPathW, [:ulong, :buffer_out], :ulong
31
- attach_function :GetTempFileNameW, [:buffer_in, :string, :uint, :buffer_out], :uint
34
+ attach_function :GetTempPathW, %i[ulong buffer_out], :ulong
35
+ attach_function :GetTempFileNameW, %i[buffer_in string uint buffer_out], :uint
32
36
 
33
37
  private_class_method :_close, :_fdopen, :_open, :_open_osfhandle
34
38
  private_class_method :CloseHandle, :CreateFileW, :DeleteFileW
@@ -134,7 +138,7 @@ class File::Temp < File
134
138
 
135
139
  raise SystemCallError.new('tmpnam_s', errno) if errno != 0
136
140
 
137
- directory + ptr.read_string + 'tmp'
141
+ directory + (ptr.read_string << 'tmp')
138
142
  end
139
143
 
140
144
  private
@@ -153,13 +157,12 @@ class File::Temp < File
153
157
  #
154
158
  def get_temp_path
155
159
  buf = 0.chr * 1024
156
- buf.encode!("UTF-16LE")
160
+ buf.encode!('UTF-16LE')
157
161
 
158
- if GetTempPathW(buf.size, buf) == 0
159
- raise SystemCallError, FFI.errno, 'GetTempPathW'
160
- end
162
+ rv = GetTempPathW(buf.size, buf)
163
+ raise SystemCallError, FFI.errno, 'GetTempPathW' if rv == 0
161
164
 
162
- buf.strip.chop # remove trailing slash
165
+ buf[0, rv+2] # Characters plus null terminator
163
166
  end
164
167
 
165
168
  # The version of tmpfile() implemented by Microsoft is unacceptable.
@@ -171,15 +174,16 @@ class File::Temp < File
171
174
  # project.
172
175
  #
173
176
  def tmpfile
174
- file_name = get_temp_path()
177
+ file_name = get_temp_path
178
+
175
179
  buf = 0.chr * 1024
176
- buf.encode!("UTF-16LE")
180
+ buf.encode!('UTF-16LE')
177
181
 
178
- if GetTempFileNameW(file_name, 'rb_', 0, buf) == 0
182
+ if GetTempFileNameW(file_name, String.new('rb_', encoding: 'UTF-16LE'), 0, buf) == 0
179
183
  raise SystemCallError, FFI.errno, 'GetTempFileNameW'
180
184
  end
181
185
 
182
- file_name = buf.strip
186
+ file_name = buf.strip + "\000\000".encode('UTF-16LE')
183
187
 
184
188
  handle = CreateFileW(
185
189
  file_name,
data/lib/file-temp.rb CHANGED
@@ -1 +1,3 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'file/temp'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  ######################################################################
2
4
  # file_temp_spec.rb
3
5
  #
@@ -17,143 +19,149 @@ RSpec.describe File::Temp do
17
19
  @fh = nil
18
20
 
19
21
  # Because Dir[] doesn't work right with backslashes
20
- @dir = @dir.tr("\\", "/") if windows
22
+ @dir = @dir.tr('\\', '/') if windows
21
23
  end
22
24
 
23
- context "constants" do
24
- example "library version is set to expected value" do
25
- expect( File::Temp::VERSION).to eq('1.7.1')
25
+ after do
26
+ @dir = nil
27
+ @template = nil
28
+ @fh.close if @fh && !@fh.closed?
29
+ @fh = nil
30
+
31
+ Dir['temp_*'].each{ |f| File.delete(f) }
32
+ Dir['rb_file_temp_*'].each{ |f| File.delete(f) }
33
+
34
+ Dir.chdir(File::Temp::TMPDIR) do
35
+ Dir['temp_*'].each{ |f| File.delete(f) }
36
+ Dir['rb_file_temp_*'].each{ |f| File.delete(f) }
37
+ end
38
+ end
39
+
40
+ context 'constants' do
41
+ example 'library version is set to expected value' do
42
+ expect(File::Temp::VERSION).to eq('1.7.2')
26
43
  expect(File::Temp::VERSION).to be_frozen
27
44
  end
28
45
 
29
- example "TMPDIR constant is defined" do
30
- expect(File::Temp::TMPDIR).to be_kind_of(String)
46
+ example 'TMPDIR constant is defined' do
47
+ expect(File::Temp::TMPDIR).to be_a(String)
31
48
  expect(File::Temp::TMPDIR.size).to be > 0
32
49
  end
33
50
  end
34
51
 
35
- context "threads" do
36
- example "library works as expected with multiple threads" do
52
+ context 'threads' do
53
+ example 'library works as expected with multiple threads' do
37
54
  threads = []
38
- expect{ 100.times{ threads << Thread.new{ File::Temp.new }}}.not_to raise_error
39
- expect{ threads.each{ |t| t.join }.not_to raise_error }
55
+ expect{ 100.times{ threads << Thread.new{ described_class.new } } }.not_to raise_error
56
+ expect{ threads.each(&:join) }.not_to raise_error
40
57
  end
41
58
  end
42
59
 
43
- context "constructor" do
44
- example "constructor works as expected with default auto delete option" do
60
+ context 'constructor' do
61
+ example 'constructor works as expected with default auto delete option' do
45
62
  expect{
46
- @fh = File::Temp.new
47
- @fh.print "hello"
63
+ @fh = described_class.new
64
+ @fh.print 'hello'
48
65
  @fh.close
49
66
  }.not_to raise_error
50
67
  end
51
68
 
52
- example "constructor works as expected with false auto delete option" do
69
+ example 'constructor works as expected with false auto delete option' do
53
70
  expect{
54
- @fh = File::Temp.new(:delete => false)
55
- @fh.print "hello"
71
+ @fh = described_class.new(:delete => false)
72
+ @fh.print 'hello'
56
73
  @fh.close
57
74
  }.not_to raise_error
58
75
  end
59
76
 
60
- example "constructor accepts and uses an optional template as expected" do
61
- expect{ File::Temp.new(:delete => false, :template => 'temp_foo_XXXXXX').close }.not_to raise_error
77
+ example 'constructor accepts and uses an optional template as expected' do
78
+ expect{ described_class.new(:delete => false, :template => 'temp_foo_XXXXXX').close }.not_to raise_error
62
79
  expect(Dir["#{@dir}/temp_foo*"].length).to be >= 1
63
80
  end
64
81
 
65
- example "constructor with false auto delete and block works as expected" do
82
+ example 'constructor with false auto delete and block works as expected' do
66
83
  expect{
67
- File::Temp.open(:delete => false, :template => 'temp_foo_XXXXXX'){ |fh| fh.puts "hello" }
84
+ described_class.open(:delete => false, :template => 'temp_foo_XXXXXX'){ |fh| fh.puts 'hello' }
68
85
  }.not_to raise_error
69
86
  expect(Dir["#{@dir}/temp_foo*"].length).to be >= 1
70
87
  end
71
88
 
72
- example "other arguments are treated as file option arguments" do
89
+ example 'other arguments are treated as file option arguments' do
73
90
  expect{
74
- @fh = File::Temp.new(
91
+ @fh = described_class.new(
75
92
  :delete => true,
76
93
  :template => 'temp_bar_XXXXX',
77
94
  :directory => Dir.pwd,
78
95
  :mode => 'xb'
79
96
  )
80
- }.to raise_error(ArgumentError, /invalid access mode/)
97
+ }.to raise_error(ArgumentError, /invalid.*?(access)?.*?mode/) # Truffleruby missing the word 'access'
81
98
  end
82
99
  end
83
100
 
84
- context "template" do
85
- example "template argument must be a string" do
86
- expect{ @fh = File::Temp.new(:delete => false, :template => 1) }.to raise_error(TypeError)
101
+ context 'template' do
102
+ example 'template argument must be a string' do
103
+ expect{ @fh = described_class.new(:delete => false, :template => 1) }.to raise_error(TypeError)
87
104
  end
88
105
 
89
- example "an error is raised if a custom template is invalid" do
90
- skip "skipped on OSX" if osx
91
- expect{ File::Temp.new(:delete => false, :template => 'xx') }.to raise_error(Errno::EINVAL)
106
+ example 'an error is raised if a custom template is invalid' do
107
+ skip 'skipped on OSX' if osx
108
+ expect{ described_class.new(:delete => false, :template => 'xx') }.to raise_error(Errno::EINVAL)
92
109
  end
93
110
  end
94
111
 
95
- context "temp_name" do
96
- example "temp_name basic functionality" do
97
- expect(File::Temp).to respond_to(:temp_name)
98
- expect{ File::Temp.temp_name }.not_to raise_error
99
- expect(File::Temp.temp_name).to be_kind_of(String)
112
+ context 'temp_name' do
113
+ example 'temp_name basic functionality' do
114
+ expect(described_class).to respond_to(:temp_name)
115
+ expect{ described_class.temp_name }.not_to raise_error
116
+ expect(described_class.temp_name).to be_a(String)
100
117
  end
101
118
 
102
- example "temp_name returns expected value" do
119
+ example 'temp_name returns expected value' do
103
120
  if windows
104
- expect( File.extname(File::Temp.temp_name)).to match(/^.*?\d*?tmp/)
121
+ expect(File.extname(described_class.temp_name)).to match(/^.*?\d*?tmp/)
105
122
  else
106
- expect( File.extname(File::Temp.temp_name)).to eq('.tmp')
123
+ expect(File.extname(described_class.temp_name)).to eq('.tmp')
107
124
  end
108
125
  end
109
126
  end
110
127
 
111
- context "path" do
112
- example "temp path basic functionality" do
113
- @fh = File::Temp.new
128
+ context 'path' do
129
+ example 'temp path basic functionality' do
130
+ @fh = described_class.new
114
131
  expect(@fh).to respond_to(:path)
115
132
  end
116
133
 
117
- example "temp path is nil if delete option is true" do
118
- @fh = File::Temp.new
134
+ example 'temp path is nil if delete option is true' do
135
+ @fh = described_class.new
119
136
  expect(@fh.path).to be_nil
120
137
  end
121
138
 
122
- example "temp path is not nil if delete option is false" do
123
- @fh = File::Temp.new(delete: false)
139
+ example 'temp path is not nil if delete option is false' do
140
+ @fh = described_class.new(delete: false)
124
141
  expect(@fh.path).not_to be_nil
125
142
  end
126
143
  end
127
144
 
128
- context "ffi" do
129
- example "ffi functions are private" do
130
- methods = File::Temp.methods(false).map(&:to_s)
131
- expect(methods).not_to include('_fileno')
132
- expect(methods).not_to include('mkstemp')
133
- expect(methods).not_to include('_umask')
134
- expect(methods).not_to include('fclose')
135
- expect(methods).not_to include('strerror')
136
- expect(methods).not_to include('tmpnam')
137
- expect(methods).not_to include('CloseHandle')
138
- expect(methods).not_to include('CreateFileA')
139
- expect(methods).not_to include('DeleteFileA')
140
- expect(methods).not_to include('GetTempPathA')
141
- expect(methods).not_to include('GetTempFileNameA')
145
+ context 'ffi' do
146
+ before do
147
+ @methods = described_class.methods(false).map(&:to_s)
142
148
  end
143
- end
144
-
145
- after do
146
- @dir = nil
147
- @template = nil
148
- @fh.close if @fh && !@fh.closed?
149
- @fh = nil
150
149
 
151
- Dir["temp_*"].each{ |f| File.delete(f) }
152
- Dir["rb_file_temp_*"].each{ |f| File.delete(f) }
150
+ example 'ffi unix functions are private', :unix do
151
+ expect(@methods).not_to include('_fileno')
152
+ expect(@methods).not_to include('mkstemp')
153
+ expect(@methods).not_to include('_umask')
154
+ expect(@methods).not_to include('fclose')
155
+ expect(@methods).not_to include('strerror')
156
+ expect(@methods).not_to include('tmpnam')
157
+ end
153
158
 
154
- Dir.chdir(File::Temp::TMPDIR) do
155
- Dir["temp_*"].each{ |f| File.delete(f) }
156
- Dir["rb_file_temp_*"].each{ |f| File.delete(f) }
159
+ example 'ffi windows functions are private', :windows do
160
+ expect(@methods).not_to include('CloseHandle')
161
+ expect(@methods).not_to include('CreateFileA')
162
+ expect(@methods).not_to include('DeleteFileA')
163
+ expect(@methods).not_to include('GetTempPathA')
164
+ expect(@methods).not_to include('GetTempFileNameA')
157
165
  end
158
166
  end
159
167
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: file-temp
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.1
4
+ version: 1.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel J. Berger
@@ -35,7 +35,7 @@ cert_chain:
35
35
  ORVCZpRuCPpmC8qmqxUnARDArzucjaclkxjLWvCVHeFa9UP7K3Nl9oTjJNv+7/jM
36
36
  WZs4eecIcUc4tKdHxcAJ0MO/Dkqq7hGaiHpwKY76wQ1+8xAh
37
37
  -----END CERTIFICATE-----
38
- date:
38
+ date: 2023-07-11 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: ffi
@@ -65,6 +65,34 @@ dependencies:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
67
  version: '3.9'
68
+ - !ruby/object:Gem::Dependency
69
+ name: rubocop
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ type: :development
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ - !ruby/object:Gem::Dependency
83
+ name: rubocop-rspec
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
68
96
  - !ruby/object:Gem::Dependency
69
97
  name: rake
70
98
  requirement: !ruby/object:Gem::Requirement
@@ -88,37 +116,31 @@ executables: []
88
116
  extensions: []
89
117
  extra_rdoc_files: []
90
118
  files:
119
+ - CHANGES.md
120
+ - Gemfile
91
121
  - LICENSE
92
- - file-temp.gemspec
93
- - spec
94
- - spec/file_temp_spec.rb
122
+ - MANIFEST.md
95
123
  - README.md
96
124
  - Rakefile
97
- - MANIFEST.md
98
- - certs
99
125
  - certs/djberg96_pub.pem
100
- - lib
126
+ - file-temp.gemspec
101
127
  - lib/file-temp.rb
102
- - lib/file
103
- - lib/file/temp.rb
104
- - lib/file/java
105
128
  - lib/file/java/temp.rb
106
- - lib/file/unix
129
+ - lib/file/temp.rb
107
130
  - lib/file/unix/temp.rb
108
- - lib/file/windows
109
131
  - lib/file/windows/temp.rb
110
- - Gemfile
111
- - CHANGES.md
132
+ - spec/file_temp_spec.rb
112
133
  homepage: http://github.com/djberg96/file-temp
113
134
  licenses:
114
135
  - Apache-2.0
115
136
  metadata:
116
137
  homepage_uri: https://github.com/djberg96/file-temp
117
138
  bug_tracker_uri: https://github.com/djberg96/file-temp/issues
118
- changelog_uri: https://github.com/djberg96/file-temp/blob/master/CHANGES.md
139
+ changelog_uri: https://github.com/djberg96/file-temp/blob/main/CHANGES.md
119
140
  documentation_uri: https://github.com/djberg96/file-temp/wiki
120
141
  source_code_uri: https://github.com/djberg96/file-temp
121
142
  wiki_uri: https://github.com/djberg96/file-temp/wiki
143
+ rubygems_mfa_required: 'true'
122
144
  post_install_message:
123
145
  rdoc_options: []
124
146
  require_paths:
@@ -134,7 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
156
  - !ruby/object:Gem::Version
135
157
  version: '0'
136
158
  requirements: []
137
- rubygems_version: 3.0.3
159
+ rubygems_version: 3.3.26
138
160
  signing_key:
139
161
  specification_version: 4
140
162
  summary: An alternative way to generate temp files
metadata.gz.sig CHANGED
Binary file