sys-filesystem 1.3.0 → 1.3.1

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: f47e78baa2a2d0586d9dccbe36fc98a2683f0f0cc9828d70317ba7d2dc2aaa40
4
- data.tar.gz: 8a887956f1a3c621057e93960e67871c646ae00f7cfe157d21ee0fd0f7d21bc7
3
+ metadata.gz: 6334dc57daad97c3eaf9b0ce177abfa6792d13e106428e83646fbd1f6aa389d9
4
+ data.tar.gz: a9b0350667a8dfdb7afecd3acbc5604c5baabebea6674f2187810311e7e8bb1a
5
5
  SHA512:
6
- metadata.gz: 66a048e0249d7147868c2a3a21468f5f292be47e82d19316d00d7dc5deab8a4c961bd363c55c55ac7e83d8992a0ecc71a3579ec4ca6e7a874308bd7f5e727aa7
7
- data.tar.gz: 76ba77a00a187654367b01cacf2c282959fdbcaa3b2646075687a4f842ade1926bab0b38c51e60ac7b582f0633ce9ff27e32c349720788988a0e48cc5915c27a
6
+ metadata.gz: 7717c681b42ccd2be205d5d22f0f11be3a10ca70c6c91d95c87f8e104e0e4ada27725849bfdbef06a957af5c871affed1698aee553ce1dae50feca1236bff6e3
7
+ data.tar.gz: 88c377c758e9158a9980e3b9e9081e19f1c8c71d4613ea22e265b5d77510b81314b37a8a7a80f6466d2e8420cd1565169e58b9676a1281fcec0fee2fd4202bd0
Binary file
data.tar.gz.sig CHANGED
Binary file
data/CHANGES CHANGED
@@ -1,3 +1,10 @@
1
+ == 1.3.1 - 15-Oct-2019
2
+ * Fixed a bug where the Statvfs and Statfs structs were not allocated properly
3
+ on Linux, which could cause issues. Thanks go to Daniele Orlandi for the spot.
4
+ * Added specs to ensure that the FFI struct size matches the C struct size.
5
+ This required adding mkmf-lite as a development dependency.
6
+ * Added a slightly more pessimistic version requirement for test-unit.
7
+
1
8
  == 1.3.0 - 3-Oct-2019
2
9
  * Added the mount and umount singleton methods.
3
10
  * Changed an internal class variable to a frozen constant.
@@ -1,7 +1,7 @@
1
1
  module Sys
2
2
  class Filesystem
3
3
  # The version of the sys-filesystem library
4
- VERSION = '1.3.0'.freeze
4
+ VERSION = '1.3.1'.freeze
5
5
  end
6
6
  end
7
7
 
@@ -19,7 +19,7 @@ module Sys
19
19
  begin
20
20
  attach_function(:umount_c, :umount, [:string], :int)
21
21
  rescue FFI::NotFoundError
22
- if RbConfig::CONFIG['host_os'] =~ /darwin|osx|mach/i
22
+ if RbConfig::CONFIG['host_os'] =~ /darwin|osx|mach|bsd/i
23
23
  attach_function(:umount_c, :unmount, [:string], :int)
24
24
  end
25
25
  end
@@ -39,6 +39,21 @@ module Sys
39
39
  :f_mntfromname, [:char, MNAMELEN],
40
40
  :f_mntonname, [:char, MNAMELEN]
41
41
  )
42
+ elsif RbConfig::CONFIG['host_os'] =~ /linux/i
43
+ layout(
44
+ :f_type, :ulong,
45
+ :f_bsize, :ulong,
46
+ :f_blocks, :uint64,
47
+ :f_bfree, :uint64,
48
+ :f_bavail, :uint64,
49
+ :f_files, :uint64,
50
+ :f_ffree, :uint64,
51
+ :f_fsid, [:int, 2],
52
+ :f_namelen, :ulong,
53
+ :f_frsize, :ulong,
54
+ :f_flags, :ulong,
55
+ :f_spare, [:ulong, 4]
56
+ )
42
57
  else
43
58
  layout(
44
59
  :f_bsize, :uint32,
@@ -112,18 +127,16 @@ module Sys
112
127
  layout(
113
128
  :f_bsize, :ulong,
114
129
  :f_frsize, :ulong,
115
- :f_blocks, :ulong,
116
- :f_bfree, :ulong,
117
- :f_bavail, :ulong,
118
- :f_files, :ulong,
119
- :f_ffree, :ulong,
120
- :f_favail, :ulong,
130
+ :f_blocks, :uint64,
131
+ :f_bfree, :uint64,
132
+ :f_bavail, :uint64,
133
+ :f_files, :uint64,
134
+ :f_ffree, :uint64,
135
+ :f_favail, :uint64,
121
136
  :f_fsid, :ulong,
122
137
  :f_flag, :ulong,
123
138
  :f_namemax, :ulong,
124
- :f_ftype, :ulong,
125
- :f_basetype, [:char, 16],
126
- :f_str, [:char, 16]
139
+ :f_spare, [:int, 6]
127
140
  )
128
141
  end
129
142
  end
@@ -2,21 +2,22 @@ require 'rubygems'
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = 'sys-filesystem'
5
- spec.version = '1.3.0'
5
+ spec.version = '1.3.1'
6
6
  spec.author = 'Daniel J. Berger'
7
7
  spec.email = 'djberg96@gmail.com'
8
8
  spec.homepage = 'https://github.com/djberg96/sys-filesystem'
9
9
  spec.summary = 'A Ruby interface for getting file system information.'
10
- spec.test_files = Dir['test/*.rb']
11
10
  spec.license = 'Apache-2.0'
11
+ spec.test_files = Dir['test/*.rb']
12
12
  spec.files = Dir['**/*'].reject{ |f| f.include?('git') }
13
13
  spec.cert_chain = Dir['certs/*']
14
14
 
15
15
  spec.extra_rdoc_files = ['CHANGES', 'README', 'MANIFEST']
16
16
 
17
17
  spec.add_dependency('ffi')
18
- spec.add_development_dependency('test-unit', '>= 2.5.0')
19
18
  spec.add_development_dependency('rake')
19
+ spec.add_development_dependency('test-unit', '~> 3.3')
20
+ spec.add_development_dependency('mkmf-lite', '~> 0.3')
20
21
 
21
22
  spec.metadata = {
22
23
  'homepage_uri' => 'https://github.com/djberg96/sys-filesystem',
@@ -5,8 +5,10 @@
5
5
  # This test suite should be run via the 'rake test' task.
6
6
  ####################################################################
7
7
  require 'test-unit'
8
- require 'sys/filesystem'
8
+ require 'sys-filesystem'
9
+ require 'mkmf-lite'
9
10
  include Sys
11
+ include Mkmf::Lite
10
12
 
11
13
  class TC_Sys_Filesystem_Unix < Test::Unit::TestCase
12
14
  def self.startup
@@ -24,99 +26,99 @@ class TC_Sys_Filesystem_Unix < Test::Unit::TestCase
24
26
  @array = []
25
27
  end
26
28
 
27
- def test_version
28
- assert_equal('1.3.0', Filesystem::VERSION)
29
+ test "version number is set to the expected value" do
30
+ assert_equal('1.3.1', Filesystem::VERSION)
29
31
  assert_true(Filesystem::VERSION.frozen?)
30
32
  end
31
33
 
32
- def test_stat_path
34
+ test "stat path works as expected" do
33
35
  assert_respond_to(@stat, :path)
34
36
  assert_equal("/", @stat.path)
35
37
  end
36
38
 
37
- def test_stat_block_size
39
+ test "stat block_size works as expected" do
38
40
  assert_respond_to(@stat, :block_size)
39
41
  assert_kind_of(Numeric, @stat.block_size)
40
42
  end
41
43
 
42
- def test_block_size_is_a_plausible_value
43
- assert_true(@stat.block_size >= 1024)
44
- assert_true(@stat.block_size <= 16384)
45
- end
46
-
47
- def test_stat_fragment_size
44
+ test "stat fragment_size works as expected" do
48
45
  assert_respond_to(@stat, :fragment_size)
49
46
  assert_kind_of(Numeric, @stat.fragment_size)
50
47
  end
51
48
 
52
- def test_stat_blocks
49
+ test "stat fragment_size is a plausible value" do
50
+ assert_true(@stat.fragment_size >= 512)
51
+ assert_true(@stat.fragment_size <= 16384)
52
+ end
53
+
54
+ test "stat blocks works as expected" do
53
55
  assert_respond_to(@stat, :blocks)
54
56
  assert_kind_of(Numeric, @stat.blocks)
55
57
  end
56
58
 
57
- def test_stat_blocks_free
59
+ test "stat blocks_free works as expected" do
58
60
  assert_respond_to(@stat, :blocks_free)
59
61
  assert_kind_of(Numeric, @stat.blocks_free)
60
62
  end
61
63
 
62
- def test_stat_blocks_available
64
+ test "stat blocks_available works as expected" do
63
65
  assert_respond_to(@stat, :blocks_available)
64
66
  assert_kind_of(Numeric, @stat.blocks_available)
65
67
  end
66
68
 
67
- def test_stat_files
69
+ test "stat files works as expected" do
68
70
  assert_respond_to(@stat, :files)
69
71
  assert_kind_of(Numeric, @stat.files)
70
72
  end
71
73
 
72
- def test_inodes_alias
74
+ test "stat inodes is an alias for files" do
73
75
  assert_respond_to(@stat, :inodes)
74
76
  assert_true(@stat.method(:inodes) == @stat.method(:files))
75
77
  end
76
78
 
77
- def test_stat_files_free
79
+ test "stat files tree works as expected" do
78
80
  assert_respond_to(@stat, :files_free)
79
81
  assert_kind_of(Numeric, @stat.files_free)
80
82
  end
81
83
 
82
- def test_stat_inodes_free_alias
84
+ test "stat inodes_free is an alias for files_free" do
83
85
  assert_respond_to(@stat, :inodes_free)
84
86
  assert_true(@stat.method(:inodes_free) == @stat.method(:files_free))
85
87
  end
86
88
 
87
- def test_stat_files_available
89
+ test "stat files_available works as expected" do
88
90
  assert_respond_to(@stat, :files_available)
89
91
  assert_kind_of(Numeric, @stat.files_available)
90
92
  end
91
93
 
92
- def test_stat_inodes_available_alias
94
+ test "stat inodes_available is an alias for files_available" do
93
95
  assert_respond_to(@stat, :inodes_available)
94
96
  assert_true(@stat.method(:inodes_available) == @stat.method(:files_available))
95
97
  end
96
98
 
97
- def test_stat_filesystem_id
99
+ test "stat filesystem_id works as expected" do
98
100
  assert_respond_to(@stat, :filesystem_id)
99
101
  assert_kind_of(Integer, @stat.filesystem_id)
100
102
  end
101
103
 
102
- def test_stat_flags
104
+ test "stat flags works as expected" do
103
105
  assert_respond_to(@stat, :flags)
104
106
  assert_kind_of(Numeric, @stat.flags)
105
107
  end
106
108
 
107
- def test_stat_name_max
109
+ test "stat name_max works as expected" do
108
110
  assert_respond_to(@stat, :name_max)
109
111
  assert_kind_of(Numeric, @stat.name_max)
110
112
  end
111
113
 
112
- def test_stat_base_type
114
+ test "stat base_type works as expected" do
113
115
  omit_unless(@@solaris, "base_type test skipped except on Solaris")
114
116
 
115
117
  assert_respond_to(@stat, :base_type)
116
118
  assert_kind_of(String, @stat.base_type)
117
119
  end
118
120
 
119
- def test_stat_constants
121
+ test "stat constants are defined" do
120
122
  assert_not_nil(Filesystem::Stat::RDONLY)
121
123
  assert_not_nil(Filesystem::Stat::NOSUID)
122
124
 
@@ -125,120 +127,120 @@ class TC_Sys_Filesystem_Unix < Test::Unit::TestCase
125
127
  assert_not_nil(Filesystem::Stat::NOTRUNC)
126
128
  end
127
129
 
128
- def test_stat_bytes_total
130
+ test "stat bytes_total works as expected" do
129
131
  assert_respond_to(@stat, :bytes_total)
130
132
  assert_kind_of(Numeric, @stat.bytes_total)
131
133
  end
132
134
 
133
- def test_stat_bytes_free
135
+ test "stat bytes_free works as expected" do
134
136
  assert_respond_to(@stat, :bytes_free)
135
137
  assert_kind_of(Numeric, @stat.bytes_free)
136
138
  assert_equal(@stat.bytes_free, @stat.blocks_free * @stat.fragment_size)
137
139
  end
138
140
 
139
- def test_stat_bytes_available
141
+ test "stat bytes_available works as expected" do
140
142
  assert_respond_to(@stat, :bytes_available)
141
143
  assert_kind_of(Numeric, @stat.bytes_available)
142
144
  assert_equal(@stat.bytes_available, @stat.blocks_available * @stat.fragment_size)
143
145
  end
144
146
 
145
- def test_stat_bytes_used
147
+ test "stat bytes works as expected" do
146
148
  assert_respond_to(@stat, :bytes_used)
147
149
  assert_kind_of(Numeric, @stat.bytes_used)
148
150
  end
149
151
 
150
- def test_stat_percent_used
152
+ test "stat percent_used works as expected" do
151
153
  assert_respond_to(@stat, :percent_used)
152
154
  assert_kind_of(Float, @stat.percent_used)
153
155
  end
154
156
 
155
- def test_stat_expected_errors
157
+ test "stat singleton method requires an argument" do
156
158
  assert_raises(ArgumentError){ Filesystem.stat }
157
159
  end
158
160
 
159
- def test_stat_case_insensitive
161
+ test "stat case_insensitive method works as expected" do
160
162
  expected = @@darwin ? true : false
161
163
  assert_equal(expected, @stat.case_insensitive?)
162
164
  assert_equal(expected, Filesystem.stat(Dir.home).case_insensitive?)
163
165
  end
164
166
 
165
- def test_stat_case_sensitive
167
+ test "stat case_sensitive method works as expected" do
166
168
  expected = @@darwin ? false : true
167
169
  assert_equal(expected, @stat.case_sensitive?)
168
170
  assert_equal(expected, Filesystem.stat(Dir.home).case_sensitive?)
169
171
  end
170
172
 
171
- def test_numeric_methods_basic
173
+ test "numeric helper methods are defined" do
172
174
  assert_respond_to(@size, :to_kb)
173
175
  assert_respond_to(@size, :to_mb)
174
176
  assert_respond_to(@size, :to_gb)
175
177
  assert_respond_to(@size, :to_tb)
176
178
  end
177
179
 
178
- def test_to_kb
180
+ test "to_kb works as expected" do
179
181
  assert_equal(57344, @size.to_kb)
180
182
  end
181
183
 
182
- def test_to_mb
184
+ test "to_mb works as expected" do
183
185
  assert_equal(56, @size.to_mb)
184
186
  end
185
187
 
186
- def test_to_gb
188
+ test "to_gb works as expected" do
187
189
  assert_equal(0, @size.to_gb)
188
190
  end
189
191
 
190
192
  # Filesystem::Mount tests
191
193
 
192
- def test_mounts_with_no_block
194
+ test "mounts singleton method works as expected without a block" do
193
195
  assert_nothing_raised{ @array = Filesystem.mounts }
194
196
  assert_kind_of(Filesystem::Mount, @array[0])
195
197
  end
196
198
 
197
- def test_mounts_with_block
199
+ test "mounts singleton method works as expected with a block" do
198
200
  assert_nothing_raised{ Filesystem.mounts{ |m| @array << m } }
199
201
  assert_kind_of(Filesystem::Mount, @array[0])
200
202
  end
201
203
 
202
- def test_mounts_high_iteration
204
+ test "calling the mounts singleton method a large number of times does not cause issues" do
203
205
  assert_nothing_raised{ 1000.times{ @array = Filesystem.mounts } }
204
206
  end
205
207
 
206
- def test_mount_name
208
+ test "mount name method works as expected" do
207
209
  assert_respond_to(@mnt, :name)
208
210
  assert_kind_of(String, @mnt.name)
209
211
  end
210
212
 
211
- def test_fsname_alias
213
+ test "mount fsname is an alias for name" do
212
214
  assert_respond_to(@mnt, :fsname)
213
215
  assert_true(@mnt.method(:fsname) == @mnt.method(:name))
214
216
  end
215
217
 
216
- def test_mount_point
218
+ test "mount point method works as expected" do
217
219
  assert_respond_to(@mnt, :mount_point)
218
220
  assert_kind_of(String, @mnt.mount_point)
219
221
  end
220
222
 
221
- def test_dir_alias
223
+ test "mount dir is an alias for mount_point" do
222
224
  assert_respond_to(@mnt, :dir)
223
225
  assert_true(@mnt.method(:dir) == @mnt.method(:mount_point))
224
226
  end
225
227
 
226
- def test_mount_type
228
+ test "mount mount_type works as expected" do
227
229
  assert_respond_to(@mnt, :mount_type)
228
230
  assert_kind_of(String, @mnt.mount_type)
229
231
  end
230
232
 
231
- def test_mount_options
233
+ test "mount options works as expected" do
232
234
  assert_respond_to(@mnt, :options)
233
235
  assert_kind_of(String, @mnt.options)
234
236
  end
235
237
 
236
- def test_opts_alias
238
+ test "mount opts is an alias for options" do
237
239
  assert_respond_to(@mnt, :opts)
238
240
  assert_true(@mnt.method(:opts) == @mnt.method(:options))
239
241
  end
240
242
 
241
- def test_mount_time
243
+ test "mount time works as expected" do
242
244
  assert_respond_to(@mnt, :mount_time)
243
245
 
244
246
  if @@solaris
@@ -248,47 +250,68 @@ class TC_Sys_Filesystem_Unix < Test::Unit::TestCase
248
250
  end
249
251
  end
250
252
 
251
- def test_mount_dump_frequency
253
+ test "mount dump_frequency works as expected" do
252
254
  msg = 'dump_frequency test skipped on this platform'
253
255
  omit_if(@@solaris || @@freebsd || @@darwin, msg)
254
256
  assert_respond_to(@mnt, :dump_frequency)
255
257
  assert_kind_of(Numeric, @mnt.dump_frequency)
256
258
  end
257
259
 
258
- def test_freq_alias
260
+ test "mount freq is an alias for dump_frequency" do
259
261
  assert_respond_to(@mnt, :freq)
260
262
  assert_true(@mnt.method(:freq) == @mnt.method(:dump_frequency))
261
263
  end
262
264
 
263
- def test_mount_pass_number
265
+ test "mount pass_number works as expected" do
264
266
  msg = 'pass_number test skipped on this platform'
265
267
  omit_if(@@solaris || @@freebsd || @@darwin, msg)
266
268
  assert_respond_to(@mnt, :pass_number)
267
269
  assert_kind_of(Numeric, @mnt.pass_number)
268
270
  end
269
271
 
270
- def test_passno_alias
272
+ test "mount passno is an alias for pass_number" do
271
273
  assert_respond_to(@mnt, :passno)
272
274
  assert_true(@mnt.method(:passno) == @mnt.method(:pass_number))
273
275
  end
274
276
 
275
- def test_mount_point_singleton
277
+ test "mount_point singleton method works as expected" do
276
278
  assert_respond_to(Filesystem, :mount_point)
277
279
  assert_nothing_raised{ Filesystem.mount_point(Dir.pwd) }
278
280
  assert_kind_of(String, Filesystem.mount_point(Dir.pwd))
279
281
  end
280
282
 
281
- def test_ffi_functions_are_private
283
+ test "mount singleton method is defined" do
284
+ assert_respond_to(Sys::Filesystem, :mount)
285
+ end
286
+
287
+ test "umount singleton method is defined" do
288
+ assert_respond_to(Sys::Filesystem, :umount)
289
+ end
290
+
291
+ # FFI
292
+
293
+ test "ffi functions are private" do
282
294
  assert_false(Filesystem.methods.include?('statvfs'))
283
295
  assert_false(Filesystem.methods.include?('strerror'))
284
296
  end
285
297
 
286
- def test_mount_singleton_method
287
- assert_respond_to(Sys::Filesystem, :mount)
298
+ test "statfs struct is expected size" do
299
+ header = @@freebsd || @@darwin ? 'sys/mount.h' : 'sys/statfs.h'
300
+ assert_equal(check_sizeof('struct statfs', header), Filesystem::Structs::Statfs.size)
288
301
  end
289
302
 
290
- def test_umount_singleton_method
291
- assert_respond_to(Sys::Filesystem, :umount)
303
+ test "statvfs struct is expected size" do
304
+ assert_equal(check_sizeof('struct statvfs', 'sys/statvfs.h'), Filesystem::Structs::Statvfs.size)
305
+ end
306
+
307
+ test "mnttab struct is expected size" do
308
+ omit_unless(@@solaris, "mnttab test skipped except on Solaris")
309
+ assert_equal(check_sizeof('struct mnttab', 'sys/mnttab.h'), Filesystem::Structs::Mnttab.size)
310
+ end
311
+
312
+ test "mntent struct is expected size" do
313
+ omit_unless(@@linux, "mnttab test skipped except on Linux")
314
+ assert_equal(check_sizeof('struct mntent', 'mntent.h'), Filesystem::Structs::Mntent.size)
292
315
  end
293
316
 
294
317
  def teardown
@@ -20,7 +20,7 @@ class TC_Sys_Filesystem_Windows < Test::Unit::TestCase
20
20
  end
21
21
 
22
22
  test "version number is set to the expected value" do
23
- assert_equal('1.3.0', Filesystem::VERSION)
23
+ assert_equal('1.3.1', Filesystem::VERSION)
24
24
  assert_true(Filesystem::VERSION.frozen?)
25
25
  end
26
26
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sys-filesystem
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
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: 2019-10-03 00:00:00.000000000 Z
38
+ date:
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: ffi
@@ -52,33 +52,47 @@ dependencies:
52
52
  - !ruby/object:Gem::Version
53
53
  version: '0'
54
54
  - !ruby/object:Gem::Dependency
55
- name: test-unit
55
+ name: rake
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - ">="
59
59
  - !ruby/object:Gem::Version
60
- version: 2.5.0
60
+ version: '0'
61
61
  type: :development
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - ">="
66
66
  - !ruby/object:Gem::Version
67
- version: 2.5.0
67
+ version: '0'
68
68
  - !ruby/object:Gem::Dependency
69
- name: rake
69
+ name: test-unit
70
70
  requirement: !ruby/object:Gem::Requirement
71
71
  requirements:
72
- - - ">="
72
+ - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: '0'
74
+ version: '3.3'
75
75
  type: :development
76
76
  prerelease: false
77
77
  version_requirements: !ruby/object:Gem::Requirement
78
78
  requirements:
79
- - - ">="
79
+ - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: '0'
81
+ version: '3.3'
82
+ - !ruby/object:Gem::Dependency
83
+ name: mkmf-lite
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '0.3'
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '0.3'
82
96
  description: |2
83
97
  The sys-filesystem library provides a cross-platform interface for
84
98
  gathering filesystem information, such as disk space and mount point data.
@@ -91,12 +105,20 @@ extra_rdoc_files:
91
105
  - MANIFEST
92
106
  files:
93
107
  - test
94
- - test/test_sys_filesystem.rb
95
- - test/test_sys_filesystem_unix.rb
96
108
  - test/test_sys_filesystem_windows.rb
109
+ - test/test_sys_filesystem_unix.rb
110
+ - test/test_sys_filesystem.rb
111
+ - CHANGES
112
+ - MANIFEST
113
+ - README
114
+ - Rakefile
115
+ - sys-filesystem.gemspec
116
+ - certs
117
+ - certs/djberg96_pub.pem
97
118
  - examples
98
119
  - examples/example_stat.rb
99
120
  - lib
121
+ - lib/sys-filesystem.rb
100
122
  - lib/sys
101
123
  - lib/sys/unix
102
124
  - lib/sys/unix/sys
@@ -105,22 +127,14 @@ files:
105
127
  - lib/sys/unix/sys/filesystem/constants.rb
106
128
  - lib/sys/unix/sys/filesystem/functions.rb
107
129
  - lib/sys/unix/sys/filesystem.rb
130
+ - lib/sys/filesystem.rb
108
131
  - lib/sys/windows
109
132
  - lib/sys/windows/sys
110
133
  - lib/sys/windows/sys/filesystem
111
- - lib/sys/windows/sys/filesystem/constants.rb
112
134
  - lib/sys/windows/sys/filesystem/helper.rb
135
+ - lib/sys/windows/sys/filesystem/constants.rb
113
136
  - lib/sys/windows/sys/filesystem/functions.rb
114
137
  - lib/sys/windows/sys/filesystem.rb
115
- - lib/sys/filesystem.rb
116
- - lib/sys-filesystem.rb
117
- - MANIFEST
118
- - README
119
- - Rakefile
120
- - certs
121
- - certs/djberg96_pub.pem
122
- - CHANGES
123
- - sys-filesystem.gemspec
124
138
  homepage: https://github.com/djberg96/sys-filesystem
125
139
  licenses:
126
140
  - Apache-2.0
@@ -146,12 +160,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
146
160
  - !ruby/object:Gem::Version
147
161
  version: '0'
148
162
  requirements: []
149
- rubyforge_project:
150
- rubygems_version: 2.7.6.2
163
+ rubygems_version: 3.0.6
151
164
  signing_key:
152
165
  specification_version: 4
153
166
  summary: A Ruby interface for getting file system information.
154
167
  test_files:
155
- - test/test_sys_filesystem.rb
156
- - test/test_sys_filesystem_unix.rb
157
168
  - test/test_sys_filesystem_windows.rb
169
+ - test/test_sys_filesystem_unix.rb
170
+ - test/test_sys_filesystem.rb
metadata.gz.sig CHANGED
Binary file