sys-filesystem 1.1.6 → 1.1.9

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
- SHA1:
3
- metadata.gz: 819b6d21deb2c0e958a38ec3ba23f511e343286b
4
- data.tar.gz: d180ac914f02bde52231efe4cb903f00ca1f3173
2
+ SHA256:
3
+ metadata.gz: 1f33933d030d3147fa24950695f5e5e2980d520bb600dfc70701087fc1935680
4
+ data.tar.gz: f5c1ee3037fbb6786b7147d4cd9ccd583baaa5284a4e4102dbd8ad868bf15f8b
5
5
  SHA512:
6
- metadata.gz: 85d89bbe808f6ec1259f686a5b762044b9e07a03db5cac98ba269dd1034b97d30d905fb5c709ddad3eb9b0c2122de7553404acc781522726bcfa78acf8c7ed2b
7
- data.tar.gz: 81adece28fb90a500819200c82d1a871f0fa238f1a020394db7defa35e1d8c73bced46da7bc98bc7b979ade3b85dea9960c2e12b03c5dc7ecd7512acd07cbbba
6
+ metadata.gz: d8f1f0bf6be3adb1f0cd8aaf1df21f0ef504af1c7818da93c1b66a98a54c02ada277de37c7310675db429b9e4b8f07c72b23e540d37a1b5f8994181aacc0e0ab
7
+ data.tar.gz: d564f2d9de62b360b6ebc7c3233fa90929d94c8e1e94ccab2f3b7ad1d85b40e8a2e13baaa600835c44e3171d7bff97053fd510a49e5256d16c2ada62ed7e9648
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/CHANGES CHANGED
@@ -1,3 +1,21 @@
1
+ == 1.1.9 - 26-Jan-2018
2
+ * The bytes_free and bytes_total methods were updated to use the fragment size
3
+ instead of the block size. This fixes Macs using APFS, as well as Solaris 10.
4
+ Thanks go to Mikhail Vasin for the spot.
5
+ * Removed the code specific to FreeBSD 10, which was ultimately an attempt
6
+ to address the issue now resolved by the above change.
7
+ * Updated the cert again.
8
+
9
+ == 1.1.8 - 2-Sep-2017
10
+ * The stat and mount_point methods now call to_s on the string argument
11
+ explicitly so that Pathname objects will now work with String#wincode.
12
+ * Updated some tests to avoid Fixnum warnings for Ruby 2.4.
13
+ * Updated the cert.
14
+
15
+ == 1.1.7 - 1-Aug-2016
16
+ * Fixed an issue in the stat method for MS Windows where the blocks_avail
17
+ value was not correct. Thanks go to Maxime Lapointe for the spot.
18
+
1
19
  == 1.1.6 - 17-May-2016
2
20
  * On versions that use setmntent or fopen, explicitly raise an error if
3
21
  either of those calls return a null value.
data/README CHANGED
@@ -61,14 +61,8 @@
61
61
  = License
62
62
  Artistic 2.0
63
63
 
64
- == Contributions
65
- Although this library is free, please consider having your company
66
- setup a gittip if used by your company professionally.
67
-
68
- http://www.gittip.com/djberg96/
69
-
70
64
  = Copyright
71
- (C) 2003-2016 Daniel J. Berger
65
+ (C) 2003-2018 Daniel J. Berger
72
66
  All Rights Reserved
73
67
 
74
68
  = Warranty
@@ -1,21 +1,21 @@
1
1
  -----BEGIN CERTIFICATE-----
2
2
  MIIDcDCCAligAwIBAgIBATANBgkqhkiG9w0BAQUFADA/MREwDwYDVQQDDAhkamJl
3
3
  cmc5NjEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYDY29t
4
- MB4XDTE1MDkwMjIwNDkxOFoXDTE2MDkwMTIwNDkxOFowPzERMA8GA1UEAwwIZGpi
4
+ MB4XDTE3MDkwMzE1MjMxM1oXDTE4MDkwMzE1MjMxM1owPzERMA8GA1UEAwwIZGpi
5
5
  ZXJnOTYxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkWA2Nv
6
- bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMyTkvXqRp6hLs9eoJOS
7
- Hmi8kRYbq9Vkf15/hMxJpotYMgJVHHWrmDcC5Dye2PbnXjTkKf266Zw0PtT9h+lI
8
- S3ts9HO+vaCFSMwFFZmnWJSpQ3CNw2RcHxjWkk9yF7imEM8Kz9ojhiDXzBetdV6M
9
- gr0lV/alUr7TNVBDngbXEfTWscyXh1qd7xZ4EcOdsDktCe5G45N/o3662tPQvJsi
10
- FOF0CM/KuBsa/HL1/eoEmF4B3EKIRfTHrQ3hu20Kv3RJ88QM4ec2+0dd97uX693O
11
- zv6981fyEg+aXLkxrkViM/tz2qR2ZE0jPhHTREPYeMEgptRkTmWSKAuLVWrJEfgl
12
- DtkCAwEAAaN3MHUwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFEwe
13
- nn6bfJADmuIDiMSOzedOrL+xMB0GA1UdEQQWMBSBEmRqYmVyZzk2QGdtYWlsLmNv
6
+ bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ8y4kEssxNpAdPhNNw2
7
+ p4zkERFndPAnmOKDdErczFYYUA9uYpA7/iTjkLlNyRwvsNHpnMXdSF7vy++YIU+F
8
+ Ux3AGTmspupbdSzqBNUhSEJ9TmpjMer1dMYMR9fRw3r3qQreiO2u/O/tV4VpzrDj
9
+ 28JC0b1PcKtfobxbnk+hporZqTH6ClOxDsRx+trlkr7q7FLZwTZn0ywjAV8WMVTO
10
+ SMmkzXQ37s2Nnrq6r+dDZI0voBxyQkAUzmdBOQTrvOFAo3tuWcnJNR/RRdFhJ9nK
11
+ mYMPmEd1z0s+cU0SUEeTvhGv/9LCmbSyZqKezDLYNR4Gb0FOA9D50+4OOi2+3G1o
12
+ 1U0CAwEAAaN3MHUwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFJCx
13
+ ukSSioTiLtwQCdML0IyEZAJ/MB0GA1UdEQQWMBSBEmRqYmVyZzk2QGdtYWlsLmNv
14
14
  bTAdBgNVHRIEFjAUgRJkamJlcmc5NkBnbWFpbC5jb20wDQYJKoZIhvcNAQEFBQAD
15
- ggEBAHmNOCWoDVD75zHFueY0viwGDVP1BNGFC+yXcb7u2GlK+nEMCORqzURbYPf7
16
- tL+/hzmePIRz7i30UM//64GI1NLv9jl7nIwjhPpXpf7/lu2I9hOTsvwSumb5UiKC
17
- /sqBxI3sfj9pr79Wpv4MuikX1XPik7Ncb7NPsJPw06Lvyc3Hkg5X2XpPtLtS+Gr2
18
- wKJnmzb5rIPS1cmsqv0M9LPWflzfwoZ/SpnmhagP+g05p8bRNKjZSA2iImM/GyYZ
19
- EJYzxdPOrx2n6NYR3Hk+vHP0U7UBSveI6+qx+ndQYaeyCn+GRX2PKS9h66YF/Q1V
20
- tGSHgAmcLlkdGgan182qsE/4kKM=
15
+ ggEBAJh/dmRaTpJAUeJ2x9CEyy9gSP6SZjMeAwWgPNdowPDyw0JzlpBIrYiTnCYK
16
+ 2OqxvIi8L38+rHw3KYL0fEyNqP3RbMl6+SljRwiU0JwEqj9e1pqIx99RTLKeI9PM
17
+ F8LxxmDHreGOaY4R8JBOMxys1wBkF/Iilx4qoT4LBn+DzraAlmYjr6O6itIxGten
18
+ NFJFS/tFBTTeNW6SJLdDnGd2b7vBBEd/ZpIhuZNxriU6FKWC5FJeBdAiuw6lqHun
19
+ QLLepVJthIvwmfc8AU5TJGMawtVAUHIWiuQPoBBVVKOkeEhioO0cV8UabKsKMbE8
20
+ VpiARrgH+4lYiRFJ+gKpIbSEJvk=
21
21
  -----END CERTIFICATE-----
@@ -1,7 +1,7 @@
1
1
  module Sys
2
2
  class Filesystem
3
3
  # The version of the sys-filesystem library
4
- VERSION = '1.1.6'.freeze
4
+ VERSION = '1.1.9'.freeze
5
5
  end
6
6
  end
7
7
 
@@ -42,6 +42,8 @@ module Sys
42
42
  MOUNT_FILE = '/etc/mtab'
43
43
  elsif File.exist?('/etc/mnttab')
44
44
  MOUNT_FILE = '/etc/mnttab'
45
+ elsif File.exist?('/proc/mounts')
46
+ MOUNT_FILE = '/proc/mounts'
45
47
  else
46
48
  MOUNT_FILE = 'getmntinfo'
47
49
  end
@@ -126,12 +128,12 @@ module Sys
126
128
 
127
129
  # Returns the total space on the partition.
128
130
  def bytes_total
129
- blocks * block_size
131
+ blocks * fragment_size
130
132
  end
131
133
 
132
134
  # Returns the total amount of free space on the partition.
133
135
  def bytes_free
134
- blocks_available * block_size
136
+ blocks_available * fragment_size
135
137
  end
136
138
 
137
139
  # Returns the total amount of used space on the partition.
@@ -217,11 +219,6 @@ module Sys
217
219
  obj.block_size /= 256
218
220
  end
219
221
 
220
- # FreeBSD 10 does things a little differently too
221
- if RbConfig::CONFIG['host_os'] =~ /freebsd10/i
222
- obj.block_size = obj.fragment_size
223
- end
224
-
225
222
  if fs.members.include?(:f_basetype)
226
223
  obj.base_type = fs[:f_basetype].to_s
227
224
  end
@@ -5,6 +5,15 @@ module Sys
5
5
  class Filesystem
6
6
  module Structs
7
7
  class Statfs < FFI::Struct
8
+
9
+ # FreeBSD 12.0 MNAMELEN from 88 => 1024.
10
+ MNAMELEN =
11
+ if RbConfig::CONFIG['host_os'] =~ /freebsd(.*)/i
12
+ $1.to_f < 12.0 ? 88 : 1024
13
+ else
14
+ 88
15
+ end
16
+
8
17
  if RbConfig::CONFIG['host_os'] =~ /bsd/i
9
18
  layout(
10
19
  :f_version, :uint32,
@@ -27,8 +36,8 @@ module Sys
27
36
  :f_fsid, [:int32, 2],
28
37
  :f_charspare, [:char, 80],
29
38
  :f_fstypename, [:char, 16],
30
- :f_mntfromname, [:char, 88],
31
- :f_mntonname, [:char, 88]
39
+ :f_mntfromname, [:char, MNAMELEN],
40
+ :f_mntonname, [:char, MNAMELEN]
32
41
  )
33
42
  else
34
43
  layout(
@@ -65,8 +65,7 @@ module Sys
65
65
  # The total number of unused blocks.
66
66
  attr_reader :blocks_free
67
67
 
68
- # The total number of unused blocks available to unprivileged
69
- # processes. Identical to +blocks+ at the moment.
68
+ # The total number of unused blocks available to unprivileged processes.
70
69
  attr_reader :blocks_available
71
70
 
72
71
  # Total number of files/inodes that can be created on the file system.
@@ -242,7 +241,7 @@ module Sys
242
241
  # File.mount_point("C:\\Documents and Settings") # => "C:\\'
243
242
  #
244
243
  def self.mount_point(file)
245
- wfile = FFI::MemoryPointer.from_string(file.wincode)
244
+ wfile = FFI::MemoryPointer.from_string(file.to_s.wincode)
246
245
 
247
246
  if PathStripToRootW(wfile)
248
247
  wfile.read_string(wfile.size).split("\000\000").first.tr(0.chr, '')
@@ -266,7 +265,7 @@ module Sys
266
265
  total_bytes = FFI::MemoryPointer.new(:ulong_long)
267
266
 
268
267
  mpoint = mount_point(path)
269
- wpath = path.wincode
268
+ wpath = path.to_s.wincode
270
269
 
271
270
  # We need this call for the 64 bit support
272
271
  unless GetDiskFreeSpaceExW(wpath, bytes_avail, total_bytes, bytes_free)
@@ -277,24 +276,26 @@ module Sys
277
276
  bytes_free = bytes_free.read_ulong_long
278
277
  total_bytes = total_bytes.read_ulong_long
279
278
 
280
- sectors = FFI::MemoryPointer.new(:ulong_long)
281
- bytes = FFI::MemoryPointer.new(:ulong_long)
282
- free = FFI::MemoryPointer.new(:ulong_long)
283
- total = FFI::MemoryPointer.new(:ulong_long)
279
+ sectors_ptr = FFI::MemoryPointer.new(:ulong_long)
280
+ bytes_ptr = FFI::MemoryPointer.new(:ulong_long)
281
+ free_ptr = FFI::MemoryPointer.new(:ulong_long)
282
+ total_ptr = FFI::MemoryPointer.new(:ulong_long)
284
283
 
285
284
  # We need this call for the total/cluster info, which is not in the Ex call.
286
- unless GetDiskFreeSpaceW(wpath, sectors, bytes, free, total)
285
+ unless GetDiskFreeSpaceW(wpath, sectors_ptr, bytes_ptr, free_ptr, total_ptr)
287
286
  raise SystemCallError.new('GetDiskFreeSpace', FFI.errno)
288
287
  end
289
288
 
290
- sectors = sectors.read_ulong_long
291
- bytes = bytes.read_ulong_long
292
- free = free.read_ulong_long
293
- total = total.read_ulong_long
289
+ sectors_per_cluster = sectors_ptr.read_ulong_long
290
+ bytes_per_sector = bytes_ptr.read_ulong_long
294
291
 
295
- block_size = sectors * bytes
296
- blocks_avail = total_bytes / block_size
292
+ free_ptr.free
293
+ total_ptr.free
294
+
295
+ block_size = sectors_per_cluster * bytes_per_sector
296
+ blocks_avail = bytes_avail / block_size
297
297
  blocks_free = bytes_free / block_size
298
+ total_blocks = total_bytes / block_size
298
299
 
299
300
  vol_name_ptr = FFI::MemoryPointer.new(:char, MAXPATH)
300
301
  base_type_ptr = FFI::MemoryPointer.new(:char, MAXPATH)
@@ -303,7 +304,7 @@ module Sys
303
304
  flags_ptr = FFI::MemoryPointer.new(:ulong)
304
305
 
305
306
  bool = GetVolumeInformationW(
306
- mpoint.wincode,
307
+ mpoint.to_s.wincode,
307
308
  vol_name_ptr,
308
309
  vol_name_ptr.size,
309
310
  vol_serial_ptr,
@@ -314,7 +315,7 @@ module Sys
314
315
  )
315
316
 
316
317
  unless bool
317
- raise SystemCallError.new('GetVolumInformation', FFI.errno)
318
+ raise SystemCallError.new('GetVolumeInformation', FFI.errno)
318
319
  end
319
320
 
320
321
  vol_serial = vol_serial_ptr.read_ulong
@@ -322,16 +323,19 @@ module Sys
322
323
  flags = flags_ptr.read_ulong
323
324
  base_type = base_type_ptr.read_string(base_type_ptr.size).tr(0.chr, '')
324
325
 
326
+ # Lets explicitly free our pointers
325
327
  vol_name_ptr.free
326
328
  vol_serial_ptr.free
327
329
  name_max_ptr.free
328
330
  flags_ptr.free
329
331
  base_type_ptr.free
332
+ sectors_ptr.free
333
+ bytes_ptr.free
330
334
 
331
335
  stat_obj = Stat.new
332
336
  stat_obj.instance_variable_set(:@path, path)
333
337
  stat_obj.instance_variable_set(:@block_size, block_size)
334
- stat_obj.instance_variable_set(:@blocks, blocks_avail)
338
+ stat_obj.instance_variable_set(:@blocks, total_blocks)
335
339
  stat_obj.instance_variable_set(:@blocks_available, blocks_avail)
336
340
  stat_obj.instance_variable_set(:@blocks_free, blocks_free)
337
341
  stat_obj.instance_variable_set(:@name_max, name_max)
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = 'sys-filesystem'
5
- spec.version = '1.1.6'
5
+ spec.version = '1.1.9'
6
6
  spec.author = 'Daniel J. Berger'
7
7
  spec.email = 'djberg96@gmail.com'
8
8
  spec.homepage = 'https://github.com/djberg96/sys-filesystem'
@@ -25,7 +25,7 @@ class TC_Sys_Filesystem_Unix < Test::Unit::TestCase
25
25
  end
26
26
 
27
27
  def test_version
28
- assert_equal('1.1.6', Filesystem::VERSION)
28
+ assert_equal('1.1.9', Filesystem::VERSION)
29
29
  end
30
30
 
31
31
  def test_stat_path
@@ -35,7 +35,7 @@ class TC_Sys_Filesystem_Unix < Test::Unit::TestCase
35
35
 
36
36
  def test_stat_block_size
37
37
  assert_respond_to(@stat, :block_size)
38
- assert_kind_of(Fixnum, @stat.block_size)
38
+ assert_kind_of(Numeric, @stat.block_size)
39
39
  end
40
40
 
41
41
  def test_block_size_is_a_plausible_value
@@ -45,27 +45,27 @@ class TC_Sys_Filesystem_Unix < Test::Unit::TestCase
45
45
 
46
46
  def test_stat_fragment_size
47
47
  assert_respond_to(@stat, :fragment_size)
48
- assert_kind_of(Fixnum, @stat.fragment_size)
48
+ assert_kind_of(Numeric, @stat.fragment_size)
49
49
  end
50
50
 
51
51
  def test_stat_blocks
52
52
  assert_respond_to(@stat, :blocks)
53
- assert_kind_of(Fixnum, @stat.blocks)
53
+ assert_kind_of(Numeric, @stat.blocks)
54
54
  end
55
55
 
56
56
  def test_stat_blocks_free
57
57
  assert_respond_to(@stat, :blocks_free)
58
- assert_kind_of(Fixnum, @stat.blocks_free)
58
+ assert_kind_of(Numeric, @stat.blocks_free)
59
59
  end
60
60
 
61
61
  def test_stat_blocks_available
62
62
  assert_respond_to(@stat, :blocks_available)
63
- assert_kind_of(Fixnum, @stat.blocks_available)
63
+ assert_kind_of(Numeric, @stat.blocks_available)
64
64
  end
65
65
 
66
66
  def test_stat_files
67
67
  assert_respond_to(@stat, :files)
68
- assert_kind_of(Fixnum, @stat.files)
68
+ assert_kind_of(Numeric, @stat.files)
69
69
  end
70
70
 
71
71
  def test_inodes_alias
@@ -75,7 +75,7 @@ class TC_Sys_Filesystem_Unix < Test::Unit::TestCase
75
75
 
76
76
  def test_stat_files_free
77
77
  assert_respond_to(@stat, :files_free)
78
- assert_kind_of(Fixnum, @stat.files_free)
78
+ assert_kind_of(Numeric, @stat.files_free)
79
79
  end
80
80
 
81
81
  def test_stat_inodes_free_alias
@@ -85,7 +85,7 @@ class TC_Sys_Filesystem_Unix < Test::Unit::TestCase
85
85
 
86
86
  def test_stat_files_available
87
87
  assert_respond_to(@stat, :files_available)
88
- assert_kind_of(Fixnum, @stat.files_available)
88
+ assert_kind_of(Numeric, @stat.files_available)
89
89
  end
90
90
 
91
91
  def test_stat_inodes_available_alias
@@ -100,12 +100,12 @@ class TC_Sys_Filesystem_Unix < Test::Unit::TestCase
100
100
 
101
101
  def test_stat_flags
102
102
  assert_respond_to(@stat, :flags)
103
- assert_kind_of(Fixnum, @stat.flags)
103
+ assert_kind_of(Numeric, @stat.flags)
104
104
  end
105
105
 
106
106
  def test_stat_name_max
107
107
  assert_respond_to(@stat, :name_max)
108
- assert_kind_of(Fixnum, @stat.name_max)
108
+ assert_kind_of(Numeric, @stat.name_max)
109
109
  end
110
110
 
111
111
  def test_stat_base_type
@@ -232,7 +232,7 @@ class TC_Sys_Filesystem_Unix < Test::Unit::TestCase
232
232
  msg = 'dump_frequency test skipped on this platform'
233
233
  omit_if(@@solaris || @@freebsd || @@darwin, msg)
234
234
  assert_respond_to(@mnt, :dump_frequency)
235
- assert_kind_of(Fixnum, @mnt.dump_frequency)
235
+ assert_kind_of(Numeric, @mnt.dump_frequency)
236
236
  end
237
237
 
238
238
  def test_freq_alias
@@ -244,7 +244,7 @@ class TC_Sys_Filesystem_Unix < Test::Unit::TestCase
244
244
  msg = 'pass_number test skipped on this platform'
245
245
  omit_if(@@solaris || @@freebsd || @@darwin, msg)
246
246
  assert_respond_to(@mnt, :pass_number)
247
- assert_kind_of(Fixnum, @mnt.pass_number)
247
+ assert_kind_of(Numeric, @mnt.pass_number)
248
248
  end
249
249
 
250
250
  def test_passno_alias
@@ -7,6 +7,7 @@
7
7
  require 'test-unit'
8
8
  require 'sys/filesystem'
9
9
  require 'rbconfig'
10
+ require 'pathname'
10
11
  include Sys
11
12
 
12
13
  class TC_Sys_Filesystem_Windows < Test::Unit::TestCase
@@ -19,7 +20,7 @@ class TC_Sys_Filesystem_Windows < Test::Unit::TestCase
19
20
  end
20
21
 
21
22
  test "version number is set to the expected value" do
22
- assert_equal('1.1.6', Filesystem::VERSION)
23
+ assert_equal('1.1.9', Filesystem::VERSION)
23
24
  end
24
25
 
25
26
  test "stat path works as expected" do
@@ -52,6 +53,11 @@ class TC_Sys_Filesystem_Windows < Test::Unit::TestCase
52
53
  assert_kind_of(Fixnum, @stat.blocks_available)
53
54
  end
54
55
 
56
+ test "block stats return expected relative values" do
57
+ assert_true(@stat.blocks >= @stat.blocks_free)
58
+ assert_true(@stat.blocks_free >= @stat.blocks_available)
59
+ end
60
+
55
61
  test "stat files works as expected" do
56
62
  assert_respond_to(@stat, :files)
57
63
  assert_nil(@stat.files)
@@ -130,6 +136,12 @@ class TC_Sys_Filesystem_Windows < Test::Unit::TestCase
130
136
  assert_equal("\\\\foo\\bar", Filesystem.mount_point("//foo/bar/baz"))
131
137
  end
132
138
 
139
+ test "mount_point works with Pathname object" do
140
+ assert_nothing_raised{ Filesystem.mount_point(Pathname.new("C:/Users/foo")) }
141
+ assert_equal("C:\\", Filesystem.mount_point("C:\\Users\\foo"))
142
+ assert_equal("\\\\foo\\bar", Filesystem.mount_point("//foo/bar/baz"))
143
+ end
144
+
133
145
  test "filesystem constants are defined" do
134
146
  assert_not_nil(Filesystem::CASE_SENSITIVE_SEARCH)
135
147
  assert_not_nil(Filesystem::CASE_PRESERVED_NAMES)
@@ -151,6 +163,10 @@ class TC_Sys_Filesystem_Windows < Test::Unit::TestCase
151
163
  assert_nothing_raised{ Filesystem.stat("C://Program Files") }
152
164
  end
153
165
 
166
+ test "stat singleton method accepts a Pathname object" do
167
+ assert_nothing_raised{ Filesystem.stat(Pathname.new("C://Program Files")) }
168
+ end
169
+
154
170
  test "stat singleton method requires a single argument" do
155
171
  assert_raise(ArgumentError){ Filesystem.stat }
156
172
  assert_raise(ArgumentError){ Filesystem.stat(Dir.pwd, Dir.pwd) }
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.1.6
4
+ version: 1.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel J. Berger
@@ -12,25 +12,25 @@ cert_chain:
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIDcDCCAligAwIBAgIBATANBgkqhkiG9w0BAQUFADA/MREwDwYDVQQDDAhkamJl
14
14
  cmc5NjEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYDY29t
15
- MB4XDTE1MDkwMjIwNDkxOFoXDTE2MDkwMTIwNDkxOFowPzERMA8GA1UEAwwIZGpi
15
+ MB4XDTE3MDkwMzE1MjMxM1oXDTE4MDkwMzE1MjMxM1owPzERMA8GA1UEAwwIZGpi
16
16
  ZXJnOTYxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkWA2Nv
17
- bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMyTkvXqRp6hLs9eoJOS
18
- Hmi8kRYbq9Vkf15/hMxJpotYMgJVHHWrmDcC5Dye2PbnXjTkKf266Zw0PtT9h+lI
19
- S3ts9HO+vaCFSMwFFZmnWJSpQ3CNw2RcHxjWkk9yF7imEM8Kz9ojhiDXzBetdV6M
20
- gr0lV/alUr7TNVBDngbXEfTWscyXh1qd7xZ4EcOdsDktCe5G45N/o3662tPQvJsi
21
- FOF0CM/KuBsa/HL1/eoEmF4B3EKIRfTHrQ3hu20Kv3RJ88QM4ec2+0dd97uX693O
22
- zv6981fyEg+aXLkxrkViM/tz2qR2ZE0jPhHTREPYeMEgptRkTmWSKAuLVWrJEfgl
23
- DtkCAwEAAaN3MHUwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFEwe
24
- nn6bfJADmuIDiMSOzedOrL+xMB0GA1UdEQQWMBSBEmRqYmVyZzk2QGdtYWlsLmNv
17
+ bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ8y4kEssxNpAdPhNNw2
18
+ p4zkERFndPAnmOKDdErczFYYUA9uYpA7/iTjkLlNyRwvsNHpnMXdSF7vy++YIU+F
19
+ Ux3AGTmspupbdSzqBNUhSEJ9TmpjMer1dMYMR9fRw3r3qQreiO2u/O/tV4VpzrDj
20
+ 28JC0b1PcKtfobxbnk+hporZqTH6ClOxDsRx+trlkr7q7FLZwTZn0ywjAV8WMVTO
21
+ SMmkzXQ37s2Nnrq6r+dDZI0voBxyQkAUzmdBOQTrvOFAo3tuWcnJNR/RRdFhJ9nK
22
+ mYMPmEd1z0s+cU0SUEeTvhGv/9LCmbSyZqKezDLYNR4Gb0FOA9D50+4OOi2+3G1o
23
+ 1U0CAwEAAaN3MHUwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFJCx
24
+ ukSSioTiLtwQCdML0IyEZAJ/MB0GA1UdEQQWMBSBEmRqYmVyZzk2QGdtYWlsLmNv
25
25
  bTAdBgNVHRIEFjAUgRJkamJlcmc5NkBnbWFpbC5jb20wDQYJKoZIhvcNAQEFBQAD
26
- ggEBAHmNOCWoDVD75zHFueY0viwGDVP1BNGFC+yXcb7u2GlK+nEMCORqzURbYPf7
27
- tL+/hzmePIRz7i30UM//64GI1NLv9jl7nIwjhPpXpf7/lu2I9hOTsvwSumb5UiKC
28
- /sqBxI3sfj9pr79Wpv4MuikX1XPik7Ncb7NPsJPw06Lvyc3Hkg5X2XpPtLtS+Gr2
29
- wKJnmzb5rIPS1cmsqv0M9LPWflzfwoZ/SpnmhagP+g05p8bRNKjZSA2iImM/GyYZ
30
- EJYzxdPOrx2n6NYR3Hk+vHP0U7UBSveI6+qx+ndQYaeyCn+GRX2PKS9h66YF/Q1V
31
- tGSHgAmcLlkdGgan182qsE/4kKM=
26
+ ggEBAJh/dmRaTpJAUeJ2x9CEyy9gSP6SZjMeAwWgPNdowPDyw0JzlpBIrYiTnCYK
27
+ 2OqxvIi8L38+rHw3KYL0fEyNqP3RbMl6+SljRwiU0JwEqj9e1pqIx99RTLKeI9PM
28
+ F8LxxmDHreGOaY4R8JBOMxys1wBkF/Iilx4qoT4LBn+DzraAlmYjr6O6itIxGten
29
+ NFJFS/tFBTTeNW6SJLdDnGd2b7vBBEd/ZpIhuZNxriU6FKWC5FJeBdAiuw6lqHun
30
+ QLLepVJthIvwmfc8AU5TJGMawtVAUHIWiuQPoBBVVKOkeEhioO0cV8UabKsKMbE8
31
+ VpiARrgH+4lYiRFJ+gKpIbSEJvk=
32
32
  -----END CERTIFICATE-----
33
- date: 2016-05-17 00:00:00.000000000 Z
33
+ date: 2018-01-26 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: ffi
@@ -85,37 +85,37 @@ extra_rdoc_files:
85
85
  - README
86
86
  - MANIFEST
87
87
  files:
88
+ - test
89
+ - test/test_sys_filesystem_windows.rb
90
+ - test/test_sys_filesystem_unix.rb
91
+ - test/test_sys_filesystem.rb
92
+ - CHANGES
93
+ - MANIFEST
94
+ - README
95
+ - Rakefile
96
+ - sys-filesystem.gemspec
88
97
  - certs
89
98
  - certs/djberg96_pub.pem
90
- - CHANGES
91
99
  - examples
92
100
  - examples/example_stat.rb
93
101
  - lib
102
+ - lib/sys-filesystem.rb
94
103
  - lib/sys
95
- - lib/sys/filesystem.rb
96
104
  - lib/sys/unix
97
105
  - lib/sys/unix/sys
98
106
  - lib/sys/unix/sys/filesystem
107
+ - lib/sys/unix/sys/filesystem/structs.rb
99
108
  - lib/sys/unix/sys/filesystem/constants.rb
100
109
  - lib/sys/unix/sys/filesystem/functions.rb
101
- - lib/sys/unix/sys/filesystem/structs.rb
102
110
  - lib/sys/unix/sys/filesystem.rb
111
+ - lib/sys/filesystem.rb
103
112
  - lib/sys/windows
104
113
  - lib/sys/windows/sys
105
114
  - lib/sys/windows/sys/filesystem
115
+ - lib/sys/windows/sys/filesystem/helper.rb
106
116
  - lib/sys/windows/sys/filesystem/constants.rb
107
117
  - lib/sys/windows/sys/filesystem/functions.rb
108
- - lib/sys/windows/sys/filesystem/helper.rb
109
118
  - lib/sys/windows/sys/filesystem.rb
110
- - lib/sys-filesystem.rb
111
- - MANIFEST
112
- - Rakefile
113
- - README
114
- - sys-filesystem.gemspec
115
- - test
116
- - test/test_sys_filesystem.rb
117
- - test/test_sys_filesystem_unix.rb
118
- - test/test_sys_filesystem_windows.rb
119
119
  homepage: https://github.com/djberg96/sys-filesystem
120
120
  licenses:
121
121
  - Artistic 2.0
@@ -136,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
136
136
  version: '0'
137
137
  requirements: []
138
138
  rubyforge_project:
139
- rubygems_version: 2.6.4
139
+ rubygems_version: 2.7.2
140
140
  signing_key:
141
141
  specification_version: 4
142
142
  summary: A Ruby interface for getting file system information.
metadata.gz.sig CHANGED
Binary file