ptools 1.4.2-universal-mingw32 → 1.4.3-universal-mingw32

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.
data/spec/tail_spec.rb CHANGED
@@ -8,100 +8,100 @@ require 'rspec'
8
8
  require 'ptools'
9
9
 
10
10
  RSpec.describe File, :tail do
11
- let(:dirname) { File.dirname(__FILE__) }
12
- let(:test_file1) { File.join(dirname, 'test_file1.txt') }
13
- let(:test_file64) { File.join(dirname, 'test_file64.txt') }
14
- let(:test_file128) { File.join(dirname, 'test_file128.txt') }
15
- let(:test_file_trail) { File.join(dirname, 'test_file_trail.txt') }
16
- let(:test_file_trail_nl) { File.join(dirname, 'test_file_trail_nl.txt') }
11
+ let(:dirname) { described_class.dirname(__FILE__) }
12
+ let(:test_file1) { described_class.join(dirname, 'test_file1.txt') }
13
+ let(:test_file64) { described_class.join(dirname, 'test_file64.txt') }
14
+ let(:test_file128) { described_class.join(dirname, 'test_file128.txt') }
15
+ let(:test_file_trail) { described_class.join(dirname, 'test_file_trail.txt') }
16
+ let(:test_file_trail_nl) { described_class.join(dirname, 'test_file_trail_nl.txt') }
17
17
 
18
18
  before do
19
- File.open(test_file1, 'w'){ |fh| 25.times{ |n| fh.puts "line#{n+1}" } }
19
+ described_class.open(test_file1, 'w'){ |fh| 25.times{ |n| fh.puts "line#{n+1}" } }
20
20
 
21
21
  # Trailing newline test
22
- File.open(test_file_trail, 'w'){ |fh|
22
+ described_class.open(test_file_trail, 'w') do |fh|
23
23
  2.times{ |n| fh.puts "trail#{n+1}" }
24
- fh.write "trail3"
25
- }
24
+ fh.write 'trail3'
25
+ end
26
26
 
27
- File.open(test_file_trail_nl, 'w'){ |fh|
27
+ described_class.open(test_file_trail_nl, 'w') do |fh|
28
28
  3.times{ |n| fh.puts "trail#{n+1}" }
29
- }
29
+ end
30
30
 
31
31
  # Larger files
32
- test_tail_fmt_str = "line data data data data data data data %5s"
32
+ test_tail_fmt_str = 'line data data data data data data data %5s'
33
33
 
34
- File.open(test_file64, 'w'){ |fh|
35
- 2000.times{ |n|
34
+ described_class.open(test_file64, 'w') do |fh|
35
+ 2000.times do |n|
36
36
  fh.puts test_tail_fmt_str % (n+1).to_s
37
- }
38
- }
37
+ end
38
+ end
39
39
 
40
- File.open(test_file128, 'w'){ |fh|
41
- 4500.times{ |n|
40
+ described_class.open(test_file128, 'w') do |fh|
41
+ 4500.times do |n|
42
42
  fh.puts test_tail_fmt_str % (n+1).to_s
43
- }
44
- }
43
+ end
44
+ end
45
45
 
46
- @expected_tail1 = %w{
46
+ @expected_tail1 = %w[
47
47
  line16 line17 line18 line19 line20
48
48
  line21 line22 line23 line24 line25
49
- }
49
+ ]
50
50
 
51
- @expected_tail2 = ["line21","line22","line23","line24","line25"]
51
+ @expected_tail2 = %w[line21 line22 line23 line24 line25]
52
52
 
53
53
  @expected_tail_more = []
54
54
  25.times{ |n| @expected_tail_more.push "line#{n+1}" }
55
55
 
56
- @expected_tail_trail = %w{ trail2 trail3 }
56
+ @expected_tail_trail = %w[trail2 trail3]
57
57
 
58
- @test_tail_fmt_str = "line data data data data data data data %5s"
58
+ @test_tail_fmt_str = 'line data data data data data data data %5s'
59
59
  end
60
60
 
61
- example "tail basic functionality" do
62
- expect(File).to respond_to(:tail)
63
- expect{ File.tail(test_file1) }.not_to raise_error
64
- expect{ File.tail(test_file1, 5) }.not_to raise_error
65
- expect{ File.tail(test_file1){}.not_to raise_error }
61
+ after do
62
+ described_class.delete(test_file1) if described_class.exist?(test_file1)
63
+ described_class.delete(test_file64) if described_class.exist?(test_file64)
64
+ described_class.delete(test_file128) if described_class.exist?(test_file128)
65
+ described_class.delete(test_file_trail_nl) if described_class.exist?(test_file_trail_nl)
66
+ described_class.delete(test_file_trail) if described_class.exist?(test_file_trail)
67
+ end
68
+
69
+ example 'tail basic functionality' do
70
+ expect(described_class).to respond_to(:tail)
71
+ expect{ described_class.tail(test_file1) }.not_to raise_error
72
+ expect{ described_class.tail(test_file1, 5) }.not_to raise_error
73
+ expect{ described_class.tail(test_file1){} }.not_to raise_error
66
74
  end
67
75
 
68
- example "tail returns the expected values" do
69
- expect(File.tail(test_file1)).to be_kind_of(Array)
70
- expect(File.tail(test_file1)).to eq(@expected_tail1)
71
- expect(File.tail(test_file1, 5)).to eq(@expected_tail2)
76
+ example 'tail returns the expected values' do
77
+ expect(described_class.tail(test_file1)).to be_kind_of(Array)
78
+ expect(described_class.tail(test_file1)).to eq(@expected_tail1)
79
+ expect(described_class.tail(test_file1, 5)).to eq(@expected_tail2)
72
80
  end
73
81
 
74
- example "specifying a number greater than the actual number of lines works as expected" do
75
- expect(File.tail(test_file1, 30)).to eq(@expected_tail_more)
82
+ example 'specifying a number greater than the actual number of lines works as expected' do
83
+ expect(described_class.tail(test_file1, 30)).to eq(@expected_tail_more)
76
84
  end
77
85
 
78
- example "tail requires two arguments" do
79
- expect{ File.tail }.to raise_error(ArgumentError)
80
- expect{ File.tail(test_file1, 5, 5) }.to raise_error(ArgumentError)
86
+ example 'tail requires two arguments' do
87
+ expect{ described_class.tail }.to raise_error(ArgumentError)
88
+ expect{ described_class.tail(test_file1, 5, 5) }.to raise_error(ArgumentError)
81
89
  end
82
90
 
83
- example "tail works as expected when there is no trailing newline" do
84
- expect(File.tail(test_file_trail, 2)).to eq(@expected_tail_trail)
85
- expect(File.tail(test_file_trail_nl, 2)).to eq(@expected_tail_trail)
91
+ example 'tail works as expected when there is no trailing newline' do
92
+ expect(described_class.tail(test_file_trail, 2)).to eq(@expected_tail_trail)
93
+ expect(described_class.tail(test_file_trail_nl, 2)).to eq(@expected_tail_trail)
86
94
  end
87
95
 
88
- example "tail works as expected on a file larger than 64k" do
96
+ example 'tail works as expected on a file larger than 64k' do
89
97
  expected_tail_64k = []
90
98
  2000.times{ |n| expected_tail_64k.push(@test_tail_fmt_str % (n+1).to_s) }
91
- expect(File.tail(test_file64, 2000)).to eq(expected_tail_64k)
99
+ expect(described_class.tail(test_file64, 2000)).to eq(expected_tail_64k)
92
100
  end
93
101
 
94
- example "tail works as expected on a file larger than 128k" do
102
+ example 'tail works as expected on a file larger than 128k' do
95
103
  expected_tail_128k = []
96
104
  4500.times{ |n| expected_tail_128k.push(@test_tail_fmt_str % (n+1).to_s) }
97
- expect(File.tail(test_file128, 4500)).to eq(expected_tail_128k)
98
- end
99
-
100
- after do
101
- File.delete(test_file1) if File.exist?(test_file1)
102
- File.delete(test_file64) if File.exist?(test_file64)
103
- File.delete(test_file128) if File.exist?(test_file128)
104
- File.delete(test_file_trail_nl) if File.exist?(test_file_trail_nl)
105
- File.delete(test_file_trail) if File.exist?(test_file_trail)
105
+ expect(described_class.tail(test_file128, 4500)).to eq(expected_tail_128k)
106
106
  end
107
107
  end
data/spec/touch_spec.rb CHANGED
@@ -8,40 +8,40 @@ require 'rspec'
8
8
  require 'ptools'
9
9
 
10
10
  RSpec.describe File, :touch do
11
- let(:dirname) { File.dirname(__FILE__) }
11
+ let(:dirname) { described_class.dirname(__FILE__) }
12
12
  let(:filename) { 'test_file_touch.txt' }
13
- let(:xfile) { File.join(dirname, filename) }
13
+ let(:xfile) { described_class.join(dirname, filename) }
14
14
 
15
15
  before do
16
- File.open(xfile, 'w'){ |fh| 10.times{ |n| fh.puts "line #{n}" } }
17
- @test_file = File.join(dirname, 'delete.this')
16
+ described_class.open(xfile, 'w'){ |fh| 10.times{ |n| fh.puts "line #{n}" } }
17
+ @test_file = described_class.join(dirname, 'delete.this')
18
18
  end
19
19
 
20
- example "touch basic functionality" do
21
- expect(File).to respond_to(:touch)
22
- expect{ File.touch(@test_file) }.not_to raise_error
20
+ after do
21
+ described_class.delete(@test_file) if described_class.exist?(@test_file)
22
+ described_class.delete(xfile) if described_class.exist?(xfile)
23
23
  end
24
24
 
25
- example "touch a new file returns expected results" do
26
- expect(File.touch(@test_file)).to eq(File)
27
- expect(File.exist?(@test_file)).to be true
28
- expect(File.size(@test_file)).to eq(0)
25
+ example 'touch basic functionality' do
26
+ expect(described_class).to respond_to(:touch)
27
+ expect{ described_class.touch(@test_file) }.not_to raise_error
29
28
  end
30
29
 
31
- example "touch an existing file returns expected results" do
32
- stat = File.stat(xfile)
33
- sleep 1
34
- expect{ File.touch(xfile) }.not_to raise_error
35
- expect(File.size(xfile) == stat.size).to be true
36
- expect(File.mtime(xfile) == stat.mtime).to be false
30
+ example 'touch a new file returns expected results' do
31
+ expect(described_class.touch(@test_file)).to eq(described_class)
32
+ expect(described_class.exist?(@test_file)).to be true
33
+ expect(described_class.size(@test_file)).to eq(0)
37
34
  end
38
35
 
39
- example "touch requires an argument" do
40
- expect{ File.touch }.to raise_error(ArgumentError)
36
+ example 'touch an existing file returns expected results' do
37
+ stat = described_class.stat(xfile)
38
+ sleep 1
39
+ expect{ described_class.touch(xfile) }.not_to raise_error
40
+ expect(described_class.size(xfile) == stat.size).to be true
41
+ expect(described_class.mtime(xfile) == stat.mtime).to be false
41
42
  end
42
43
 
43
- after do
44
- File.delete(@test_file) if File.exist?(@test_file)
45
- File.delete(xfile) if File.exist?(xfile)
44
+ example 'touch requires an argument' do
45
+ expect{ described_class.touch }.to raise_error(ArgumentError)
46
46
  end
47
47
  end
data/spec/wc_spec.rb CHANGED
@@ -11,55 +11,55 @@ RSpec.describe File, :wc do
11
11
  let(:test_file) { 'test_file_wc.txt' }
12
12
 
13
13
  before do
14
- File.open(test_file, 'w'){ |fh| 25.times{ |n| fh.puts "line#{n+1}" } }
14
+ described_class.open(test_file, 'w'){ |fh| 25.times{ |n| fh.puts "line#{n+1}" } }
15
15
  end
16
16
 
17
- example "wc method basic functionality" do
18
- expect(File).to respond_to(:wc)
19
- expect{ File.wc(test_file) }.not_to raise_error
17
+ after do
18
+ described_class.delete(test_file) if described_class.exist?(test_file)
20
19
  end
21
20
 
22
- example "wc accepts specific optional arguments" do
23
- expect{ File.wc(test_file, 'bytes') }.not_to raise_error
24
- expect{ File.wc(test_file, 'chars') }.not_to raise_error
25
- expect{ File.wc(test_file, 'words') }.not_to raise_error
26
- expect{ File.wc(test_file, 'lines') }.not_to raise_error
21
+ example 'wc method basic functionality' do
22
+ expect(described_class).to respond_to(:wc)
23
+ expect{ described_class.wc(test_file) }.not_to raise_error
27
24
  end
28
25
 
29
- example "argument to wc ignores the case of the option argument" do
30
- expect{ File.wc(test_file, 'LINES') }.not_to raise_error
26
+ example 'wc accepts specific optional arguments' do
27
+ expect{ described_class.wc(test_file, 'bytes') }.not_to raise_error
28
+ expect{ described_class.wc(test_file, 'chars') }.not_to raise_error
29
+ expect{ described_class.wc(test_file, 'words') }.not_to raise_error
30
+ expect{ described_class.wc(test_file, 'lines') }.not_to raise_error
31
31
  end
32
32
 
33
- example "wc with no option returns expected results" do
34
- expect(File.wc(test_file)).to be_kind_of(Array)
35
- expect(File.wc(test_file)).to eq([166, 166, 25, 25])
33
+ example 'argument to wc ignores the case of the option argument' do
34
+ expect{ described_class.wc(test_file, 'LINES') }.not_to raise_error
36
35
  end
37
36
 
38
- example "wc with bytes option returns the expected result" do
39
- expect(File.wc(test_file, 'bytes')).to eq(166)
37
+ example 'wc with no option returns expected results' do
38
+ expect(described_class.wc(test_file)).to be_kind_of(Array)
39
+ expect(described_class.wc(test_file)).to eq([166, 166, 25, 25])
40
40
  end
41
41
 
42
- example "wc with chars option returns the expected result" do
43
- expect(File.wc(test_file, 'chars')).to eq(166)
42
+ example 'wc with bytes option returns the expected result' do
43
+ expect(described_class.wc(test_file, 'bytes')).to eq(166)
44
44
  end
45
45
 
46
- example "wc with words option returns the expected result" do
47
- expect(File.wc(test_file, 'words')).to eq(25)
46
+ example 'wc with chars option returns the expected result' do
47
+ expect(described_class.wc(test_file, 'chars')).to eq(166)
48
48
  end
49
49
 
50
- example "wc with lines option returns the expected result" do
51
- expect(File.wc(test_file, 'lines')).to eq(25)
50
+ example 'wc with words option returns the expected result' do
51
+ expect(described_class.wc(test_file, 'words')).to eq(25)
52
52
  end
53
53
 
54
- example "wc requires at least on argument" do
55
- expect{ File.wc }.to raise_error(ArgumentError)
54
+ example 'wc with lines option returns the expected result' do
55
+ expect(described_class.wc(test_file, 'lines')).to eq(25)
56
56
  end
57
57
 
58
- example "an invalid option raises an error" do
59
- expect{ File.wc(test_file, 'bogus') }.to raise_error(ArgumentError)
58
+ example 'wc requires at least on argument' do
59
+ expect{ described_class.wc }.to raise_error(ArgumentError)
60
60
  end
61
61
 
62
- after do
63
- File.delete(test_file) if File.exists?(test_file)
62
+ example 'an invalid option raises an error' do
63
+ expect{ described_class.wc(test_file, 'bogus') }.to raise_error(ArgumentError)
64
64
  end
65
65
  end
data/spec/whereis_spec.rb CHANGED
@@ -14,11 +14,11 @@ RSpec.describe File, :whereis do
14
14
  let(:bin_dir) { RbConfig::CONFIG['bindir'] }
15
15
 
16
16
  before do
17
- @expected_locs = [File.join(bin_dir, ruby)]
17
+ @expected_locs = [described_class.join(bin_dir, ruby)]
18
18
 
19
19
  if windows
20
20
  @expected_locs[0] << '.exe'
21
- @expected_locs[0].tr!("/", "\\")
21
+ @expected_locs[0].tr!('/', '\\')
22
22
  end
23
23
 
24
24
  unless windows
@@ -31,57 +31,56 @@ RSpec.describe File, :whereis do
31
31
  @actual_locs = nil
32
32
  end
33
33
 
34
- example "whereis basic functionality" do
35
- expect(File).to respond_to(:whereis)
36
- expect{ File.whereis('ruby') }.not_to raise_error
37
- expect(File.whereis('ruby')).to be_kind_of(Array).or be_nil
34
+ example 'whereis basic functionality' do
35
+ expect(described_class).to respond_to(:whereis)
36
+ expect{ described_class.whereis('ruby') }.not_to raise_error
37
+ expect(described_class.whereis('ruby')).to be_kind_of(Array).or be_nil
38
38
  end
39
39
 
40
- example "whereis accepts an optional second argument" do
41
- expect{ File.whereis('ruby', '/usr/bin:/usr/local/bin') }.not_to raise_error
40
+ example 'whereis accepts an optional second argument' do
41
+ expect{ described_class.whereis('ruby', '/usr/bin:/usr/local/bin') }.not_to raise_error
42
42
  end
43
43
 
44
- example "whereis returns expected values" do
45
- expect{ @actual_locs = File.whereis(ruby) }.not_to raise_error
44
+ example 'whereis returns expected values' do
45
+ expect{ @actual_locs = described_class.whereis(ruby) }.not_to raise_error
46
46
  expect(@actual_locs).to be_kind_of(Array)
47
47
  expect((@expected_locs & @actual_locs).size > 0).to be true
48
48
  end
49
49
 
50
- example "whereis returns nil if program not found" do
51
- expect(File.whereis('xxxyyy')).to be_nil
50
+ example 'whereis returns nil if program not found' do
51
+ expect(described_class.whereis('xxxyyy')).to be_nil
52
52
  end
53
53
 
54
- example "whereis returns nil if program cannot be found in provided path" do
55
- expect(File.whereis(ruby, '/foo/bar')).to be_nil
54
+ example 'whereis returns nil if program cannot be found in provided path' do
55
+ expect(described_class.whereis(ruby, '/foo/bar')).to be_nil
56
56
  end
57
57
 
58
- example "whereis returns single element array or nil if absolute path is provided" do
59
- absolute = File.join(bin_dir, ruby)
58
+ example 'whereis returns single element array or nil if absolute path is provided' do
59
+ absolute = described_class.join(bin_dir, ruby)
60
60
  absolute << '.exe' if windows
61
61
 
62
- expect(File.whereis(absolute)).to eq([absolute])
63
- expect(File.whereis("/foo/bar/baz/#{ruby}")).to be_nil
62
+ expect(described_class.whereis(absolute)).to eq([absolute])
63
+ expect(described_class.whereis("/foo/bar/baz/#{ruby}")).to be_nil
64
64
  end
65
65
 
66
- example "whereis works with an explicit extension on ms windows" do
67
- skip "skipped unless MS Windows" unless windows
68
- expect(File.whereis(ruby + '.exe')).not_to be_nil
66
+ example 'whereis works with an explicit extension on ms windows', :windows_only => true do
67
+ expect(described_class.whereis("#{ruby}.exe")).not_to be_nil
69
68
  end
70
69
 
71
- example "whereis requires at least one argument" do
72
- expect{ File.whereis }.to raise_error(ArgumentError)
70
+ example 'whereis requires at least one argument' do
71
+ expect{ described_class.whereis }.to raise_error(ArgumentError)
73
72
  end
74
73
 
75
- example "whereis returns unique paths only" do
76
- expect(File.whereis(ruby) == File.whereis(ruby).uniq).to be true
74
+ example 'whereis returns unique paths only' do
75
+ expect(described_class.whereis(ruby) == described_class.whereis(ruby).uniq).to be true
77
76
  end
78
77
 
79
- example "whereis accepts a maximum of two arguments" do
80
- expect{ File.whereis(ruby, 'foo', 'bar') }.to raise_error(ArgumentError)
78
+ example 'whereis accepts a maximum of two arguments' do
79
+ expect{ described_class.whereis(ruby, 'foo', 'bar') }.to raise_error(ArgumentError)
81
80
  end
82
81
 
83
- example "the second argument to whereis cannot be nil or empty" do
84
- expect{ File.whereis(ruby, nil) }.to raise_error(ArgumentError)
85
- expect{ File.whereis(ruby, '') }.to raise_error(ArgumentError)
82
+ example 'the second argument to whereis cannot be nil or empty' do
83
+ expect{ described_class.whereis(ruby, nil) }.to raise_error(ArgumentError)
84
+ expect{ described_class.whereis(ruby, '') }.to raise_error(ArgumentError)
86
85
  end
87
86
  end
data/spec/which_spec.rb CHANGED
@@ -12,101 +12,93 @@ require 'tempfile'
12
12
 
13
13
  describe File, :which do
14
14
  before(:context) do
15
- @windows = File::ALT_SEPARATOR
16
- @dir = File.join(Dir.pwd, 'tempdir')
17
- @non_exe = File.join(Dir.pwd, 'tempfile')
18
- @ruby = RUBY_PLATFORM.match('java') ? 'jruby' : 'ruby'
19
- @ruby = 'rbx' if defined?(Rubinius)
15
+ @dir = described_class.join(Dir.pwd, 'tempdir')
16
+ @non_exe = described_class.join(Dir.pwd, 'tempfile')
17
+ @ruby = RbConfig::CONFIG['RUBY_INSTALL_NAME']
20
18
 
21
- Dir.mkdir(@dir) unless File.exist?(@dir)
19
+ Dir.mkdir(@dir) unless described_class.exist?(@dir)
22
20
  FileUtils.touch(@non_exe)
23
- File.chmod(775, @dir)
24
- File.chmod(644, @non_exe)
21
+ described_class.chmod(775, @dir)
22
+ described_class.chmod(644, @non_exe)
25
23
 
26
- @exe = File.join(
24
+ @exe = described_class.join(
27
25
  RbConfig::CONFIG['bindir'],
28
26
  RbConfig::CONFIG['ruby_install_name']
29
27
  )
30
28
 
31
- if @windows
32
- @exe.tr!('/','\\')
33
- @exe << ".exe"
29
+ if File::ALT_SEPARATOR
30
+ @exe.tr!('/', '\\')
31
+ @exe << '.exe'
34
32
  end
35
33
  end
36
34
 
37
- example "which method basic functionality" do
38
- expect(File).to respond_to(:which)
39
- expect{ File.which(@ruby) }.not_to raise_error
40
- expect(File.which(@ruby)).to be_kind_of(String)
35
+ after(:context) do
36
+ FileUtils.rm(@non_exe)
37
+ FileUtils.rm_rf(@dir)
41
38
  end
42
39
 
43
- example "which accepts an optional path to search" do
44
- expect{ File.which(@ruby, "/usr/bin:/usr/local/bin") }.not_to raise_error
40
+ example 'which method basic functionality' do
41
+ expect(described_class).to respond_to(:which)
42
+ expect{ described_class.which(@ruby) }.not_to raise_error
43
+ expect(described_class.which(@ruby)).to be_kind_of(String)
45
44
  end
46
45
 
47
- example "which returns nil if not found" do
48
- expect(File.which(@ruby, '/bogus/path')).to be_nil
49
- expect(File.which('blahblahblah')).to be_nil
46
+ example 'which accepts an optional path to search' do
47
+ expect{ described_class.which(@ruby, '/usr/bin:/usr/local/bin') }.not_to raise_error
50
48
  end
51
49
 
52
- example "which handles executables without extensions on windows" do
53
- skip "skipped unless MS Windows" unless @windows
54
- expect(File.which('ruby')).not_to be_nil
55
- expect(File.which('notepad')).not_to be_nil
50
+ example 'which returns nil if not found' do
51
+ expect(described_class.which(@ruby, '/bogus/path')).to be_nil
52
+ expect(described_class.which('blahblahblah')).to be_nil
56
53
  end
57
54
 
58
- example "which handles executables that already contain extensions on windows" do
59
- skip "skipped unless MS Windows" unless @windows
60
- expect(File.which('ruby.exe')).not_to be_nil
61
- expect(File.which('notepad.exe')).not_to be_nil
55
+ example 'which handles executables without extensions on windows', :windows_only => true do
56
+ expect(described_class.which('ruby')).not_to be_nil
57
+ expect(described_class.which('notepad')).not_to be_nil
62
58
  end
63
59
 
64
- example "which returns argument if an existent absolute path is provided" do
65
- expect(File.which(@ruby)).to eq(@exe), "May fail on a symlink"
60
+ example 'which handles executables that already contain extensions on windows', :windows_only => true do
61
+ expect(described_class.which('ruby.exe')).not_to be_nil
62
+ expect(described_class.which('notepad.exe')).not_to be_nil
66
63
  end
67
64
 
68
- example "which returns nil if a non-existent absolute path is provided" do
69
- expect(File.which('/foo/bar/baz/ruby')).to be_nil
65
+ example 'which returns argument if an existent absolute path is provided' do
66
+ expect(described_class.which(@ruby)).to eq(@exe), 'May fail on a symlink'
70
67
  end
71
68
 
72
- example "which does not pickup files that are not executable" do
73
- expect(File.which(@non_exe)).to be_nil
69
+ example 'which returns nil if a non-existent absolute path is provided' do
70
+ expect(described_class.which('/foo/bar/baz/ruby')).to be_nil
74
71
  end
75
72
 
76
- example "which does not pickup executable directories" do
77
- expect(File.which(@dir)).to be_nil
73
+ example 'which does not pickup files that are not executable' do
74
+ expect(described_class.which(@non_exe)).to be_nil
78
75
  end
79
76
 
80
- example "which accepts a minimum of one argument" do
81
- expect{ File.which }.to raise_error(ArgumentError)
77
+ example 'which does not pickup executable directories' do
78
+ expect(described_class.which(@dir)).to be_nil
82
79
  end
83
80
 
84
- example "which accepts a maximum of two arguments" do
85
- expect{ File.which(@ruby, "foo", "bar") }.to raise_error(ArgumentError)
81
+ example 'which accepts a minimum of one argument' do
82
+ expect{ described_class.which }.to raise_error(ArgumentError)
86
83
  end
87
84
 
88
- example "the second argument cannot be nil or empty" do
89
- expect{ File.which(@ruby, nil) }.to raise_error(ArgumentError)
90
- expect{ File.which(@ruby, '') }.to raise_error(ArgumentError)
85
+ example 'which accepts a maximum of two arguments' do
86
+ expect{ described_class.which(@ruby, 'foo', 'bar') }.to raise_error(ArgumentError)
91
87
  end
92
88
 
93
- example "resolves with with ~" do
94
- skip "skipped on MS Windows" if @windows
95
- begin
96
- old_home = ENV['HOME']
97
-
98
- ENV['HOME'] = Dir::Tmpname.tmpdir
99
- program = Tempfile.new(['program', '.sh'])
100
- File.chmod(755, program.path)
101
-
102
- expect(File.which(File.basename(program.path), '~/')).not_to be_nil
103
- ensure
104
- ENV['HOME'] = old_home
105
- end
89
+ example 'the second argument cannot be nil or empty' do
90
+ expect{ described_class.which(@ruby, nil) }.to raise_error(ArgumentError)
91
+ expect{ described_class.which(@ruby, '') }.to raise_error(ArgumentError)
106
92
  end
107
93
 
108
- after(:context) do
109
- FileUtils.rm(@non_exe)
110
- FileUtils.rm_rf(@dir)
94
+ example 'resolves with with ~', :unix_only => true do
95
+ old_home = ENV['HOME']
96
+ ENV['HOME'] = Dir::Tmpname.tmpdir
97
+ program = Tempfile.new(['program', '.sh'])
98
+ described_class.chmod(755, program.path)
99
+
100
+ expect(described_class.which(described_class.basename(program.path), '~/')).not_to be_nil
101
+ ensure
102
+ ENV['HOME'] = old_home
111
103
  end
112
104
  end
data.tar.gz.sig CHANGED
Binary file