fedux_org-stdlib 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,5 @@
1
+ require 'pathname'
2
+
1
3
  module FeduxOrg
2
4
  module Stdlib
3
5
  module Command
@@ -16,15 +18,21 @@ module FeduxOrg
16
18
  # @return [String]
17
19
  # path to command
18
20
  def which(cmd, paths=ENV['PATH'].split(File::PATH_SEPARATOR), pathexts=ENV['PATHEXT'].to_s.split( /;/ ) )
19
- return nil if cmd.blank?
21
+ cmd = Pathname.new( cmd.to_s )
22
+
23
+ return nil if cmd.to_s.empty?
24
+
25
+ if cmd.absolute?
26
+ return cmd.to_s if cmd.executable?
27
+ return nil
28
+ end
20
29
 
21
- cmd = File.basename( cmd )
22
30
  pathexts = [''] if pathexts.blank?
23
31
 
24
32
  Array( paths ).each do |path|
25
33
  Array( pathexts ).each do |ext|
26
- exe = File.join(path, "#{cmd}#{ext.to_s}")
27
- return exe if File.executable? exe
34
+ file = Pathname.new( File.join(path, "#{cmd.to_s}#{ext.to_s}") )
35
+ return file.to_s if file.executable?
28
36
  end
29
37
  end
30
38
  nil
@@ -1,6 +1,6 @@
1
1
  #main FeduxOrg
2
2
  module FeduxOrg
3
3
  module Stdlib
4
- VERSION = '0.2.1'
4
+ VERSION = '0.3.0'
5
5
  end
6
6
  end
@@ -17,6 +17,10 @@ describe Command::Which do
17
17
  expect( klass.new.which( '/usr/bin/which' ) ).to eq( '/usr/bin/which' )
18
18
  end
19
19
 
20
+ it 'returns nil for a invalid command if a full path is given' do
21
+ expect( klass.new.which( '/usr/bin/which1' ) ).to eq( nil )
22
+ end
23
+
20
24
  it 'returns nil if no executable can be found in path' do
21
25
  expect( klass.new.which( 'asdfasdf' ) ).to eq( nil )
22
26
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fedux_org-stdlib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-11-23 00:00:00.000000000 Z
12
+ date: 2013-12-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -190,18 +190,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
190
190
  - - ! '>='
191
191
  - !ruby/object:Gem::Version
192
192
  version: '0'
193
- segments:
194
- - 0
195
- hash: 2589077551573371235
196
193
  required_rubygems_version: !ruby/object:Gem::Requirement
197
194
  none: false
198
195
  requirements:
199
196
  - - ! '>='
200
197
  - !ruby/object:Gem::Version
201
198
  version: '0'
202
- segments:
203
- - 0
204
- hash: 2589077551573371235
205
199
  requirements: []
206
200
  rubyforge_project:
207
201
  rubygems_version: 1.8.23