fedux_org-stdlib 0.2.1 → 0.3.0

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.
@@ -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