file-temp 1.7.1 → 1.7.2

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: 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