sys-filesystem 1.4.3 → 1.4.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  ####################################################################
2
4
  # sys_filesystem_windows_spec.rb
3
5
  #
@@ -12,337 +14,447 @@ RSpec.describe Sys::Filesystem, :windows => true do
12
14
  let(:root) { 'C:/' }
13
15
 
14
16
  before do
15
- @stat = Sys::Filesystem.stat(root)
17
+ @stat = described_class.stat(root)
16
18
  @size = 58720256
17
19
  end
18
20
 
19
- example "version number is set to the expected value" do
20
- expect(Sys::Filesystem::VERSION).to eq('1.4.3')
21
- expect(Sys::Filesystem::VERSION).to be_frozen
22
- end
23
-
24
- example "you cannot instantiate an instance" do
25
- expect{ described_class.new }.to raise_error(NoMethodError)
26
- end
27
-
28
- example "stat path works as expected" do
21
+ example 'stat path works as expected' do
29
22
  expect(@stat).to respond_to(:path)
30
23
  expect(@stat.path).to eq(root)
31
24
  end
32
25
 
33
- example "stat block_size works as expected" do
26
+ example 'stat block_size works as expected' do
34
27
  expect(@stat).to respond_to(:block_size)
35
- expect(@stat.block_size).to be_kind_of(Numeric)
28
+ expect(@stat.block_size).to be_a(Numeric)
36
29
  end
37
30
 
38
- example "stat works with or without trailing slash on standard paths" do
39
- expect(Sys::Filesystem.stat("C:/").path).to eq("C:/")
40
- expect(Sys::Filesystem.stat("C:/Users").path).to eq("C:/Users")
41
- expect(Sys::Filesystem.stat("C:/Users/").path).to eq("C:/Users/")
42
- expect(Sys::Filesystem.stat("C:/Users/").path).to eq("C:/Users/")
31
+ example 'stat works with or without trailing slash on standard paths' do
32
+ expect(described_class.stat('C:/').path).to eq('C:/')
33
+ expect(described_class.stat('C:/Users').path).to eq('C:/Users')
34
+ expect(described_class.stat('C:/Users/').path).to eq('C:/Users/')
35
+ expect(described_class.stat('C:/Users/').path).to eq('C:/Users/')
43
36
  end
44
37
 
45
- example "stat works with or without trailing slash on UNC paths" do
46
- expect(Sys::Filesystem.stat("//127.0.0.1/C$").path).to eq("//127.0.0.1/C$")
47
- expect(Sys::Filesystem.stat("//127.0.0.1/C$/").path).to eq("//127.0.0.1/C$/")
48
- expect(Sys::Filesystem.stat("\\\\127.0.0.1\\C$").path).to eq("\\\\127.0.0.1\\C$")
49
- expect(Sys::Filesystem.stat("\\\\127.0.0.1\\C$\\").path).to eq("\\\\127.0.0.1\\C$\\")
38
+ example 'stat works with or without trailing slash on UNC paths' do
39
+ expect(described_class.stat('//127.0.0.1/C$').path).to eq('//127.0.0.1/C$')
40
+ expect(described_class.stat('//127.0.0.1/C$/').path).to eq('//127.0.0.1/C$/')
41
+ expect(described_class.stat('\\\\127.0.0.1\\C$').path).to eq('\\\\127.0.0.1\\C$')
42
+ expect(described_class.stat('\\\\127.0.0.1\\C$\\').path).to eq('\\\\127.0.0.1\\C$\\')
50
43
  end
51
44
 
52
- example "stat fragment_size works as expected" do
45
+ example 'stat fragment_size works as expected' do
53
46
  expect(@stat).to respond_to(:fragment_size)
54
47
  expect(@stat.fragment_size).to be_nil
55
48
  end
56
49
 
57
- example "stat blocks works as expected" do
50
+ example 'stat blocks works as expected' do
58
51
  expect(@stat).to respond_to(:blocks)
59
- expect(@stat.blocks).to be_kind_of(Numeric)
52
+ expect(@stat.blocks).to be_a(Numeric)
60
53
  end
61
54
 
62
- example "stat blocks_free works as expected" do
55
+ example 'stat blocks_free works as expected' do
63
56
  expect(@stat).to respond_to(:blocks_free)
64
- expect(@stat.blocks_free).to be_kind_of(Numeric)
57
+ expect(@stat.blocks_free).to be_a(Numeric)
65
58
  end
66
59
 
67
- example "stat blocks_available works as expected" do
60
+ example 'stat blocks_available works as expected' do
68
61
  expect(@stat).to respond_to(:blocks_available)
69
- expect(@stat.blocks_available).to be_kind_of(Numeric)
62
+ expect(@stat.blocks_available).to be_a(Numeric)
70
63
  end
71
64
 
72
- example "block stats return expected relative values" do
65
+ example 'block stats return expected relative values' do
73
66
  expect(@stat.blocks >= @stat.blocks_free).to be true
74
67
  expect(@stat.blocks_free >= @stat.blocks_available).to be true
75
68
  end
76
69
 
77
- example "stat files works as expected" do
70
+ example 'stat files works as expected' do
78
71
  expect(@stat).to respond_to(:files)
79
72
  expect(@stat.files).to be_nil
80
73
  end
81
74
 
82
- example "stat inodes is an alias for files" do
75
+ example 'stat inodes is an alias for files' do
83
76
  expect(@stat.method(:inodes)).to eq(@stat.method(:files))
84
77
  end
85
78
 
86
- example "stat files_free works as expected" do
79
+ example 'stat files_free works as expected' do
87
80
  expect(@stat).to respond_to(:files_free)
88
81
  expect(@stat.files_free).to be_nil
89
82
  end
90
83
 
91
- example "stat inodes_free is an alias for files_free" do
84
+ example 'stat inodes_free is an alias for files_free' do
92
85
  expect(@stat).to respond_to(:inodes_free)
93
86
  end
94
87
 
95
- example "stat files available works as expected" do
88
+ example 'stat files available works as expected' do
96
89
  expect(@stat).to respond_to(:files_available)
97
90
  expect(@stat.files_available).to be_nil
98
91
  end
99
92
 
100
- example "stat inodes_available is an alias for files_available" do
93
+ example 'stat inodes_available is an alias for files_available' do
101
94
  expect(@stat.method(:inodes_available)).to eq(@stat.method(:files_available))
102
95
  end
103
96
 
104
- example "stat filesystem_id works as expected" do
97
+ example 'stat filesystem_id works as expected' do
105
98
  expect(@stat).to respond_to(:filesystem_id)
106
- expect(@stat.filesystem_id).to be_kind_of(Integer)
99
+ expect(@stat.filesystem_id).to be_a(Integer)
107
100
  end
108
101
 
109
- example "stat flags works as expected" do
102
+ example 'stat flags works as expected' do
110
103
  expect(@stat).to respond_to(:flags)
111
- expect(@stat.flags).to be_kind_of(Numeric)
104
+ expect(@stat.flags).to be_a(Numeric)
112
105
  end
113
106
 
114
- example "stat name_max works as expected" do
107
+ example 'stat name_max works as expected' do
115
108
  expect(@stat).to respond_to(:name_max)
116
- expect(@stat.name_max).to be_kind_of(Numeric)
109
+ expect(@stat.name_max).to be_a(Numeric)
117
110
  end
118
111
 
119
- example "stat base_type works as expected" do
112
+ example 'stat base_type works as expected' do
120
113
  expect(@stat).to respond_to(:base_type)
121
- expect(@stat.base_type).to be_kind_of(String)
114
+ expect(@stat.base_type).to be_a(String)
122
115
  end
123
116
 
124
- example "stat bytes_total basic functionality" do
117
+ example 'stat bytes_total basic functionality' do
125
118
  expect(@stat).to respond_to(:bytes_total)
126
- expect(@stat.bytes_total).to be_kind_of(Numeric)
119
+ expect(@stat.bytes_total).to be_a(Numeric)
127
120
  end
128
121
 
129
- example "stat bytes_free basic functionality" do
122
+ example 'stat bytes_free basic functionality' do
130
123
  expect(@stat).to respond_to(:bytes_free)
131
- expect(@stat.bytes_free).to be_kind_of(Numeric)
124
+ expect(@stat.bytes_free).to be_a(Numeric)
132
125
  expect(@stat.blocks_free * @stat.block_size).to eq(@stat.bytes_free)
133
126
  end
134
127
 
135
- example "stat bytes_available basic functionality" do
128
+ example 'stat bytes_available basic functionality' do
136
129
  expect(@stat).to respond_to(:bytes_available)
137
- expect(@stat.bytes_available).to be_kind_of(Numeric)
130
+ expect(@stat.bytes_available).to be_a(Numeric)
138
131
  expect(@stat.blocks_available * @stat.block_size).to eq(@stat.bytes_available)
139
132
  end
140
133
 
141
- example "stat bytes_used basic functionality" do
134
+ example 'stat bytes_used basic functionality' do
142
135
  expect(@stat).to respond_to(:bytes_used)
143
- expect(@stat.bytes_used).to be_kind_of(Numeric)
136
+ expect(@stat.bytes_used).to be_a(Numeric)
144
137
  end
145
138
 
146
- example "stat percent_used basic functionality" do
139
+ example 'stat percent_used basic functionality' do
147
140
  expect(@stat).to respond_to(:percent_used)
148
- expect(@stat.percent_used).to be_kind_of(Float)
141
+ expect(@stat.percent_used).to be_a(Float)
149
142
  end
150
143
 
151
- example "case_insensitive returns expected result" do
144
+ example 'case_insensitive returns expected result' do
152
145
  expect(@stat).to respond_to(:case_insensitive?)
153
- expect(@stat.case_insensitive?).to eq(true)
146
+ expect(@stat.case_insensitive?).to be(true)
154
147
  end
155
148
 
156
- context "Filesystem.stat(Pathname)" do
149
+ context 'Filesystem.stat(Pathname)' do
157
150
  before do
158
- @stat_pathname = Sys::Filesystem.stat(Pathname.new(root))
151
+ @stat_pathname = described_class.stat(Pathname.new(root))
159
152
  end
160
153
 
161
- example "stat with Pathname argument works as expected" do
154
+ example 'class returns expected value with pathname argument' do
162
155
  expect(@stat_pathname.class).to eq(@stat.class)
156
+ end
157
+
158
+ example 'path returns expected value with pathname argument' do
163
159
  expect(@stat_pathname.path).to eq(@stat.path)
160
+ end
161
+
162
+ example 'block_size returns expected value with pathname argument' do
164
163
  expect(@stat_pathname.block_size).to eq(@stat.block_size)
164
+ end
165
+
166
+ example 'fragment_size returns expected value with pathname argument' do
165
167
  expect(@stat_pathname.fragment_size).to eq(@stat.fragment_size)
168
+ end
169
+
170
+ example 'blocks returns expected value with pathname argument' do
166
171
  expect(@stat_pathname.blocks).to eq(@stat.blocks)
172
+ end
173
+
174
+ example 'blocks_free returns expected value with pathname argument' do
167
175
  expect(@stat_pathname.blocks_free).to eq(@stat.blocks_free)
176
+ end
177
+
178
+ example 'blocks_available returns expected value with pathname argument' do
168
179
  expect(@stat_pathname.blocks_available).to eq(@stat.blocks_available)
180
+ end
181
+
182
+ example 'files returns expected value with pathname argument' do
169
183
  expect(@stat_pathname.files).to eq(@stat.files)
184
+ end
185
+
186
+ example 'files_free returns expected value with pathname argument' do
170
187
  expect(@stat_pathname.files_free).to eq(@stat.files_free)
188
+ end
189
+
190
+ example 'files_available returns expected value with pathname argument' do
171
191
  expect(@stat_pathname.files_available).to eq(@stat.files_available)
192
+ end
193
+
194
+ example 'filesystem_id returns expected value with pathname argument' do
172
195
  expect(@stat_pathname.filesystem_id).to eq(@stat.filesystem_id)
196
+ end
197
+
198
+ example 'flags returns expected value with pathname argument' do
173
199
  expect(@stat_pathname.flags).to eq(@stat.flags)
200
+ end
201
+
202
+ example 'name_max returns expected value with pathname argument' do
174
203
  expect(@stat_pathname.name_max).to eq(@stat.name_max)
204
+ end
205
+
206
+ example 'base_type returns expected value with pathname argument' do
175
207
  expect(@stat_pathname.base_type).to eq(@stat.base_type)
176
208
  end
177
209
  end
178
210
 
179
- context "Filesystem.stat(Dir)" do
211
+ context 'Filesystem.stat(Dir)' do
180
212
  before do
181
- @stat_dir = Dir.open(root){ |dir| Sys::Filesystem.stat(dir) }
213
+ @stat_dir = Dir.open(root){ |dir| described_class.stat(dir) }
214
+ end
215
+
216
+ example 'stat class with Dir argument works as expected' do
217
+ expect(@stat_dir.class).to eq(@stat.class)
218
+ end
219
+
220
+ example 'stat path with Dir argument works as expected' do
221
+ expect(@stat_dir.path).to eq(@stat.path)
222
+ end
223
+
224
+ example 'stat block_size with Dir argument works as expected' do
225
+ expect(@stat_dir.block_size).to eq(@stat.block_size)
226
+ end
227
+
228
+ example 'stat fragment_size with Dir argument works as expected' do
229
+ expect(@stat_dir.fragment_size).to eq(@stat.fragment_size)
230
+ end
231
+
232
+ example 'stat blocks with Dir argument works as expected' do
233
+ expect(@stat_dir.blocks).to eq(@stat.blocks)
234
+ end
235
+
236
+ example 'stat blocks_free with Dir argument works as expected' do
237
+ expect(@stat_dir.blocks_free).to eq(@stat.blocks_free)
238
+ end
239
+
240
+ example 'stat blocks_available with Dir argument works as expected' do
241
+ expect(@stat_dir.blocks_available).to eq(@stat.blocks_available)
242
+ end
243
+
244
+ example 'stat files with Dir argument works as expected' do
245
+ expect(@stat_dir.files).to eq(@stat.files)
246
+ end
247
+
248
+ example 'stat files_free with Dir argument works as expected' do
249
+ expect(@stat_dir.files_free).to eq(@stat.files_free)
250
+ end
251
+
252
+ example 'stat files_available with Dir argument works as expected' do
253
+ expect(@stat_dir.files_available).to eq(@stat.files_available)
254
+ end
255
+
256
+ example 'stat filesystem_id with Dir argument works as expected' do
257
+ expect(@stat_dir.filesystem_id).to eq(@stat.filesystem_id)
182
258
  end
183
259
 
184
- example "stat with Dir argument works as expected" do
185
- expect( @stat_dir.class).to eq(@stat.class)
186
- expect( @stat_dir.path).to eq(@stat.path)
187
- expect( @stat_dir.block_size).to eq(@stat.block_size)
188
- expect( @stat_dir.fragment_size).to eq(@stat.fragment_size)
189
- expect( @stat_dir.blocks).to eq(@stat.blocks)
190
- expect( @stat_dir.blocks_free).to eq(@stat.blocks_free)
191
- expect( @stat_dir.blocks_available).to eq(@stat.blocks_available)
192
- expect( @stat_dir.files).to eq(@stat.files)
193
- expect( @stat_dir.files_free).to eq(@stat.files_free)
194
- expect( @stat_dir.files_available).to eq(@stat.files_available)
195
- expect( @stat_dir.filesystem_id).to eq(@stat.filesystem_id)
196
- expect( @stat_dir.flags).to eq(@stat.flags)
197
- expect( @stat_dir.name_max).to eq(@stat.name_max)
198
- expect( @stat_dir.base_type).to eq(@stat.base_type)
260
+ example 'stat flags with Dir argument works as expected' do
261
+ expect(@stat_dir.flags).to eq(@stat.flags)
262
+ end
263
+
264
+ example 'stat name_max with Dir argument works as expected' do
265
+ expect(@stat_dir.name_max).to eq(@stat.name_max)
266
+ end
267
+
268
+ example 'stat base_type with Dir argument works as expected' do
269
+ expect(@stat_dir.base_type).to eq(@stat.base_type)
199
270
  end
200
271
  end
201
272
 
202
- context "mount_point" do
203
- example "mount_point singleton method basic functionality" do
204
- expect(Sys::Filesystem).to respond_to(:mount_point)
205
- expect{ Sys::Filesystem.mount_point(Dir.pwd) }.not_to raise_error
206
- expect(Sys::Filesystem.mount_point(Dir.pwd)).to be_kind_of(String)
273
+ context 'mount_point' do
274
+ example 'mount_point singleton method basic functionality' do
275
+ expect(described_class).to respond_to(:mount_point)
276
+ expect{ described_class.mount_point(Dir.pwd) }.not_to raise_error
277
+ expect(described_class.mount_point(Dir.pwd)).to be_a(String)
207
278
  end
208
279
 
209
- example "mount_point singleton method returns expected value" do
210
- expect(Sys::Filesystem.mount_point("C:\\Users\\foo")).to eq("C:\\")
211
- expect(Sys::Filesystem.mount_point("//foo/bar/baz")).to eq("\\\\foo\\bar")
280
+ example 'mount_point singleton method returns expected value' do
281
+ expect(described_class.mount_point('C:\\Users\\foo')).to eq('C:\\')
282
+ expect(described_class.mount_point('//foo/bar/baz')).to eq('\\\\foo\\bar')
212
283
  end
213
284
 
214
- example "mount_point works with Pathname object" do
215
- expect{ Sys::Filesystem.mount_point(Pathname.new("C:/Users/foo")) }.not_to raise_error
216
- expect(Sys::Filesystem.mount_point("C:\\Users\\foo")).to eq("C:\\")
217
- expect(Sys::Filesystem.mount_point("//foo/bar/baz")).to eq("\\\\foo\\bar")
285
+ example 'mount_point works with Pathname object' do
286
+ expect{ described_class.mount_point(Pathname.new('C:/Users/foo')) }.not_to raise_error
287
+ expect(described_class.mount_point('C:\\Users\\foo')).to eq('C:\\')
288
+ expect(described_class.mount_point('//foo/bar/baz')).to eq('\\\\foo\\bar')
218
289
  end
219
290
  end
220
291
 
221
- example "filesystem constants are defined" do
222
- expect(Sys::Filesystem::CASE_SENSITIVE_SEARCH).not_to be_nil
223
- expect(Sys::Filesystem::CASE_PRESERVED_NAMES).not_to be_nil
224
- expect(Sys::Filesystem::UNICODE_ON_DISK).not_to be_nil
225
- expect(Sys::Filesystem::PERSISTENT_ACLS).not_to be_nil
226
- expect(Sys::Filesystem::FILE_COMPRESSION).not_to be_nil
227
- expect(Sys::Filesystem::VOLUME_QUOTAS).not_to be_nil
228
- expect(Sys::Filesystem::SUPPORTS_SPARSE_FILES).not_to be_nil
229
- expect(Sys::Filesystem::SUPPORTS_REPARSE_POINTS).not_to be_nil
230
- expect(Sys::Filesystem::SUPPORTS_REMOTE_STORAGE).not_to be_nil
231
- expect(Sys::Filesystem::VOLUME_IS_COMPRESSED).not_to be_nil
232
- expect(Sys::Filesystem::SUPPORTS_OBJECT_IDS).not_to be_nil
233
- expect(Sys::Filesystem::SUPPORTS_ENCRYPTION).not_to be_nil
234
- expect(Sys::Filesystem::NAMED_STREAMS).not_to be_nil
235
- expect(Sys::Filesystem::READ_ONLY_VOLUME).not_to be_nil
292
+ context 'filesystem constants are defined' do
293
+ example 'CASE_SENSITIVE_SEARCH' do
294
+ expect(Sys::Filesystem::CASE_SENSITIVE_SEARCH).not_to be_nil
295
+ end
296
+
297
+ example 'CASE_PRESERVED_NAMES' do
298
+ expect(Sys::Filesystem::CASE_PRESERVED_NAMES).not_to be_nil
299
+ end
300
+
301
+ example 'UNICODE_ON_DISK' do
302
+ expect(Sys::Filesystem::UNICODE_ON_DISK).not_to be_nil
303
+ end
304
+
305
+ example 'PERSISTENT_ACLS' do
306
+ expect(Sys::Filesystem::PERSISTENT_ACLS).not_to be_nil
307
+ end
308
+
309
+ example 'FILE_COMPRESSION' do
310
+ expect(Sys::Filesystem::FILE_COMPRESSION).not_to be_nil
311
+ end
312
+
313
+ example 'VOLUME_QUOTAS' do
314
+ expect(Sys::Filesystem::VOLUME_QUOTAS).not_to be_nil
315
+ end
316
+
317
+ example 'SUPPORTS_SPARSE_FILES' do
318
+ expect(Sys::Filesystem::SUPPORTS_SPARSE_FILES).not_to be_nil
319
+ end
320
+
321
+ example 'SUPPORTS_REPARSE_POINTS' do
322
+ expect(Sys::Filesystem::SUPPORTS_REPARSE_POINTS).not_to be_nil
323
+ end
324
+
325
+ example 'SUPPORTS_REMOTE_STORAGE' do
326
+ expect(Sys::Filesystem::SUPPORTS_REMOTE_STORAGE).not_to be_nil
327
+ end
328
+
329
+ example 'VOLUME_IS_COMPRESSED' do
330
+ expect(Sys::Filesystem::VOLUME_IS_COMPRESSED).not_to be_nil
331
+ end
332
+
333
+ example 'SUPPORTS_OBJECT_IDS' do
334
+ expect(Sys::Filesystem::SUPPORTS_OBJECT_IDS).not_to be_nil
335
+ end
336
+
337
+ example 'SUPPORTS_ENCRYPTION' do
338
+ expect(Sys::Filesystem::SUPPORTS_ENCRYPTION).not_to be_nil
339
+ end
340
+
341
+ example 'NAMED_STREAMS' do
342
+ expect(Sys::Filesystem::NAMED_STREAMS).not_to be_nil
343
+ end
344
+
345
+ example 'READ_ONLY_VOLUME' do
346
+ expect(Sys::Filesystem::READ_ONLY_VOLUME).not_to be_nil
347
+ end
236
348
  end
237
349
 
238
- example "stat singleton method defaults to root path if proviced" do
239
- expect{ Sys::Filesystem.stat("C://Program Files") }.not_to raise_error
350
+ example 'stat singleton method defaults to root path if proviced' do
351
+ expect{ described_class.stat('C://Program Files') }.not_to raise_error
240
352
  end
241
353
 
242
- example "stat singleton method accepts a Pathname object" do
243
- expect{ Sys::Filesystem.stat(Pathname.new("C://Program Files")) }.not_to raise_error
354
+ example 'stat singleton method accepts a Pathname object' do
355
+ expect{ described_class.stat(Pathname.new('C://Program Files')) }.not_to raise_error
244
356
  end
245
357
 
246
- example "stat singleton method requires a single argument" do
247
- expect{ Sys::Filesystem.stat }.to raise_error(ArgumentError)
248
- expect{ Sys::Filesystem.stat(Dir.pwd, Dir.pwd) }.to raise_error(ArgumentError)
358
+ example 'stat singleton method requires a single argument' do
359
+ expect{ described_class.stat }.to raise_error(ArgumentError)
360
+ expect{ described_class.stat(Dir.pwd, Dir.pwd) }.to raise_error(ArgumentError)
249
361
  end
250
362
 
251
- example "stat singleton method raises an error if path is not found" do
252
- expect{ Sys::Filesystem.stat("C://Bogus//Dir") }.to raise_error(Errno::ESRCH)
363
+ example 'stat singleton method raises an error if path is not found' do
364
+ expect{ described_class.stat('C://Bogus//Dir') }.to raise_error(Errno::ESRCH)
253
365
  end
254
366
 
255
- context "Filesystem::Mount" do
256
- let(:mount){ Sys::Filesystem.mounts[0] }
367
+ context 'Filesystem::Mount' do
368
+ let(:mount){ described_class.mounts[0] }
257
369
 
258
370
  before do
259
371
  @array = []
260
372
  end
261
373
 
262
- example "mount singleton method exists" do
263
- expect(Sys::Filesystem).to respond_to(:mount)
374
+ example 'mount singleton method exists' do
375
+ expect(described_class).to respond_to(:mount)
264
376
  end
265
377
 
266
- example "umount singleton method exists" do
267
- expect(Sys::Filesystem).to respond_to(:umount)
378
+ example 'umount singleton method exists' do
379
+ expect(described_class).to respond_to(:umount)
268
380
  end
269
381
 
270
- example "mounts singleton method basic functionality" do
271
- expect(Sys::Filesystem).to respond_to(:mounts)
272
- expect{ Sys::Filesystem.mounts }.not_to raise_error
273
- expect{ Sys::Filesystem.mounts{}.not_to raise_error }
382
+ example 'mounts singleton method basic functionality' do
383
+ expect(described_class).to respond_to(:mounts)
384
+ expect{ described_class.mounts }.not_to raise_error
385
+ expect{ described_class.mounts{} }.not_to raise_error
274
386
  end
275
387
 
276
- example "mounts singleton method returns the expected value" do
277
- expect(Sys::Filesystem.mounts).to be_kind_of(Array)
278
- expect(Sys::Filesystem.mounts[0]).to be_kind_of(Sys::Filesystem::Mount)
388
+ example 'mounts singleton method returns the expected value' do
389
+ expect(described_class.mounts).to be_a(Array)
390
+ expect(described_class.mounts[0]).to be_a(Sys::Filesystem::Mount)
279
391
  end
280
392
 
281
- example "mounts singleton method works as expected when a block is provided" do
282
- expect(Sys::Filesystem.mounts{}).to be_nil
283
- expect{ Sys::Filesystem.mounts{ |mt| @array << mt } }.not_to raise_error
284
- expect(@array[0]).to be_kind_of(Sys::Filesystem::Mount)
393
+ example 'mounts singleton method works as expected when a block is provided' do
394
+ expect(described_class.mounts{}).to be_nil
395
+ expect{ described_class.mounts{ |mt| @array << mt } }.not_to raise_error
396
+ expect(@array[0]).to be_a(Sys::Filesystem::Mount)
285
397
  end
286
398
 
287
- example "mount name works as expected" do
399
+ example 'mount name works as expected' do
288
400
  expect(mount).to respond_to(:name)
289
- expect(mount.name).to be_kind_of(String)
401
+ expect(mount.name).to be_a(String)
290
402
  end
291
403
 
292
- example "mount_time works as expected" do
404
+ example 'mount_time works as expected' do
293
405
  expect(mount).to respond_to(:mount_time)
294
- expect(mount.mount_time).to be_kind_of(Time)
406
+ expect(mount.mount_time).to be_a(Time)
295
407
  end
296
408
 
297
- example "mount type works as expected" do
409
+ example 'mount type works as expected' do
298
410
  expect(mount).to respond_to(:mount_type)
299
- expect(mount.mount_type).to be_kind_of(String)
411
+ expect(mount.mount_type).to be_a(String)
300
412
  end
301
413
 
302
- example "mount point works as expected" do
414
+ example 'mount point works as expected' do
303
415
  expect(mount).to respond_to(:mount_point)
304
- expect(mount.mount_point).to be_kind_of(String)
416
+ expect(mount.mount_point).to be_a(String)
305
417
  end
306
418
 
307
- example "mount options works as expected" do
419
+ example 'mount options works as expected' do
308
420
  expect(mount).to respond_to(:options)
309
- expect(mount.options).to be_kind_of(String)
421
+ expect(mount.options).to be_a(String)
310
422
  end
311
423
 
312
- example "mount pass_number works as expected" do
424
+ example 'mount pass_number works as expected' do
313
425
  expect(mount).to respond_to(:pass_number)
314
426
  expect(mount.pass_number).to be_nil
315
427
  end
316
428
 
317
- example "mount frequency works as expected" do
429
+ example 'mount frequency works as expected' do
318
430
  expect(mount).to respond_to(:frequency)
319
431
  expect(mount.frequency).to be_nil
320
432
  end
321
433
 
322
- example "mounts singleton method does not accept any arguments" do
323
- expect{ Sys::Filesystem.mounts("C:\\") }.to raise_error(ArgumentError)
434
+ example 'mounts singleton method does not accept any arguments' do
435
+ expect{ described_class.mounts('C:\\') }.to raise_error(ArgumentError)
324
436
  end
325
437
  end
326
438
 
327
- example "custom Numeric#to_kb method works as expected" do
439
+ example 'custom Numeric#to_kb method works as expected' do
328
440
  expect(@size).to respond_to(:to_kb)
329
441
  expect(@size.to_kb).to eq(57344)
330
442
  end
331
443
 
332
- example "custom Numeric#to_mb method works as expected" do
444
+ example 'custom Numeric#to_mb method works as expected' do
333
445
  expect(@size).to respond_to(:to_mb)
334
446
  expect(@size.to_mb).to eq(56)
335
447
  end
336
448
 
337
- example "custom Numeric#to_gb method works as expected" do
449
+ example 'custom Numeric#to_gb method works as expected' do
338
450
  expect(@size).to respond_to(:to_gb)
339
451
  expect(@size.to_gb).to eq(0)
340
452
  end
341
453
 
342
- context "FFI" do
343
- example "internal ffi functions are not public" do
344
- expect(Sys::Filesystem.methods.include?(:GetVolumeInformationA)).to eq(false)
345
- expect(Sys::Filesystem.instance_methods.include?(:GetVolumeInformationA)).to eq(false)
454
+ context 'FFI' do
455
+ example 'internal ffi functions are not public' do
456
+ expect(described_class.methods.include?(:GetVolumeInformationA)).to be(false)
457
+ expect(described_class.instance_methods.include?(:GetVolumeInformationA)).to be(false)
346
458
  end
347
459
  end
348
460
  end
@@ -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.4.3'
5
+ spec.version = '1.4.4'
6
6
  spec.author = 'Daniel J. Berger'
7
7
  spec.email = 'djberg96@gmail.com'
8
8
  spec.homepage = 'https://github.com/djberg96/sys-filesystem'
@@ -16,14 +16,22 @@ Gem::Specification.new do |spec|
16
16
  spec.add_development_dependency('mkmf-lite', '~> 0.5') unless Gem.win_platform?
17
17
  spec.add_development_dependency('rake')
18
18
  spec.add_development_dependency('rspec', '~> 3.9')
19
+ spec.add_development_dependency('rubocop')
20
+ spec.add_development_dependency('rubocop-rspec')
21
+
22
+ if RUBY_PLATFORM == 'java' && Gem.win_platform?
23
+ spec.add_dependency('jruby-win32ole')
24
+ end
19
25
 
20
26
  spec.metadata = {
21
- 'homepage_uri' => 'https://github.com/djberg96/sys-filesystem',
22
- 'bug_tracker_uri' => 'https://github.com/djberg96/sys-filesystem/issues',
23
- 'changelog_uri' => 'https://github.com/djberg96/sys-filesystem/blob/main/CHANGES.md',
24
- 'documentation_uri' => 'https://github.com/djberg96/sys-filesystem/wiki',
25
- 'source_code_uri' => 'https://github.com/djberg96/sys-filesystem',
26
- 'wiki_uri' => 'https://github.com/djberg96/sys-filesystem/wiki'
27
+ 'homepage_uri' => 'https://github.com/djberg96/sys-filesystem',
28
+ 'bug_tracker_uri' => 'https://github.com/djberg96/sys-filesystem/issues',
29
+ 'changelog_uri' => 'https://github.com/djberg96/sys-filesystem/blob/main/CHANGES.md',
30
+ 'documentation_uri' => 'https://github.com/djberg96/sys-filesystem/wiki',
31
+ 'source_code_uri' => 'https://github.com/djberg96/sys-filesystem',
32
+ 'wiki_uri' => 'https://github.com/djberg96/sys-filesystem/wiki',
33
+ 'rubygems_mfa_required' => 'true',
34
+ 'github_repo' => 'https://github.com/djberg96/sys-filesystem'
27
35
  }
28
36
 
29
37
  spec.description = <<-EOF
data.tar.gz.sig CHANGED
Binary file