fedux_org-stdlib 0.3.0 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,12 @@
1
1
  require 'pathname'
2
2
 
3
+ begin
4
+ require 'active_support/core_ext/object/blank'
5
+ rescue LoadError
6
+ $stderr.puts 'You need to install the "activesupport"-gem to make that rake task work.'
7
+ exit 1
8
+ end
9
+
3
10
  module FeduxOrg
4
11
  module Stdlib
5
12
  module Command
@@ -17,13 +24,28 @@ module FeduxOrg
17
24
  #
18
25
  # @return [String]
19
26
  # path to command
20
- def which(cmd, paths=ENV['PATH'].split(File::PATH_SEPARATOR), pathexts=ENV['PATHEXT'].to_s.split( /;/ ) )
21
- cmd = Pathname.new( cmd.to_s )
27
+ def which(cmd, options={})
28
+ options = {
29
+ paths: ENV['PATH'].split(File::PATH_SEPARATOR),
30
+ pathexts: ENV['PATHEXT'].to_s.split( /;/ ),
31
+ raise_error_on_not_executable: false,
32
+ raise_error_on_not_found: false,
33
+ }.merge options
34
+
35
+ cmd = Pathname.new(cmd)
36
+
37
+ paths = options[:paths]
38
+ pathexts = options[:pathexts]
39
+ raise_error_on_not_executable = options[:raise_error_on_not_executable]
40
+ raise_error_on_not_found = options[:raise_error_on_not_found]
22
41
 
42
+ raise Exceptions::CommandNotFound if cmd.to_s.empty?
23
43
  return nil if cmd.to_s.empty?
24
44
 
25
45
  if cmd.absolute?
26
46
  return cmd.to_s if cmd.executable?
47
+ raise Exceptions::CommandNotFound if raise_error_on_not_found and not cmd.exist?
48
+ raise Exceptions::CommandNotExecutable if raise_error_on_not_executable and not cmd.executable?
27
49
  return nil
28
50
  end
29
51
 
@@ -33,8 +55,10 @@ module FeduxOrg
33
55
  Array( pathexts ).each do |ext|
34
56
  file = Pathname.new( File.join(path, "#{cmd.to_s}#{ext.to_s}") )
35
57
  return file.to_s if file.executable?
58
+ raise Exceptions::CommandNotExecutable if raise_error_on_not_executable and not cmd.executable?
36
59
  end
37
60
  end
61
+ raise Exceptions::CommandNotFound if raise_error_on_not_found
38
62
  nil
39
63
  end
40
64
  end
@@ -44,6 +44,7 @@ module FeduxOrg
44
44
  def switch_to_working_directory(&block)
45
45
  Dir.chdir(working_directory, &block)
46
46
  end
47
+ alias_method :in_working_directory, :switch_to_working_directory
47
48
 
48
49
  # Create directory(ies)
49
50
  #
@@ -204,7 +205,7 @@ module FeduxOrg
204
205
  strings = []
205
206
  regex = %r[\.\.]
206
207
 
207
- raise FileSystem::Exceptions::InvalidPath , "Sorry, but you cannot use paths matching \"#{strings.join(', ')}\" or \"#{regex.to_s}\" here!" if path_matches?(strings, regex, flattend_paths)
208
+ raise FileSystem::Exceptions::InvalidPath , "Sorry, but you cannot use paths matching \"#{strings.join(', ')}\" or \"#{regex.inspect}\" here!" if path_matches?(strings, regex, flattend_paths)
208
209
  end
209
210
 
210
211
  # Check if path is forbidden for delete operation
@@ -101,12 +101,12 @@ module FeduxOrg
101
101
  end
102
102
 
103
103
  #finds a single instance
104
- def find( criteria={} )
105
- find_all( criteria ).first
104
+ def find(criteria = {})
105
+ find_all(criteria).first
106
106
  end
107
107
 
108
108
  #finds all instances
109
- def find_all( criteria={} )
109
+ def find_all(criteria = {})
110
110
  FeduxOrg::Stdlib.logger.debug(self) { "Criteria for search: #{ criteria }" }
111
111
  criteria = { name: criteria.to_sym } if criteria.kind_of? Symbol or criteria.kind_of? String
112
112
 
@@ -21,35 +21,42 @@ unless ENV.to_hash.has_key? 'CI'
21
21
  namespace :version do
22
22
  @logger = FeduxOrg::Stdlib::Logging::Logger.new
23
23
 
24
- def bump_version( type )
24
+ def add_to_repo(file, version)
25
+ @logger.info('Adding new version file to repository.')
26
+ sh "git add #{file}"
27
+ sh "git commit -m 'version bump to #{version}'"
28
+ end
29
+
30
+ def bump_version(type)
25
31
  version_update do |file|
26
- file.bump( type )
32
+ file.bump(type)
27
33
  end
28
34
  end
29
35
 
30
- def version_update( &block )
31
- file = FeduxOrg::Stdlib::VersionManagement::RubygemVersionFile.read( version_file )
36
+ def version_update(&block)
37
+ file = FeduxOrg::Stdlib::VersionManagement::RubygemVersionFile.read(version_file)
32
38
  old_version = file.version
33
- block.call( file )
39
+ block.call(file)
34
40
  new_version = file.version
35
41
 
36
- file.write( version_file )
37
- @logger.info( "Updated version. It was \"#{old_version}\". It is now \"#{new_version}\"." )
42
+ file.write(version_file)
43
+ @logger.info("Updated version. It was \"#{old_version}\". It is now \"#{new_version}\".")
44
+ add_to_repo(version_file, file.version)
38
45
  end
39
46
 
40
47
  desc "Bump x.1.1"
41
48
  task :bump_major do
42
- bump_version( :major )
49
+ bump_version(:major)
43
50
  end
44
51
 
45
52
  desc "Bump 1.x.1"
46
53
  task :bump_minor do
47
- bump_version( :minor )
54
+ bump_version(:minor)
48
55
  end
49
56
 
50
57
  desc "Bump 1.1.x"
51
58
  task :bump_tiny do
52
- bump_version( :tiny )
59
+ bump_version(:tiny)
53
60
  end
54
61
 
55
62
  desc 'bump version of library to new version'
@@ -60,14 +67,11 @@ unless ENV.to_hash.has_key? 'CI'
60
67
  begin
61
68
  version_update do |file|
62
69
  file.version = new_version
63
- file.write( version_file )
64
-
65
- @logger.info( 'Adding new version file to repository.' )
66
- sh "git add #{version_file}"
67
- sh "git commit -m 'version bump to #{new_version}'"
70
+ file.write(version_file)
71
+ add_to_repo(version_file, new_version)
68
72
  end
69
73
  rescue
70
- @logger.fatal( 'Nothing has changed since your last commit or has been added to the index. Therefor nothing needs to be commited.' )
74
+ @logger.fatal('Nothing has changed since your last commit or has been added to the index. Therefor nothing needs to be commited.')
71
75
  end
72
76
  end
73
77
  end
@@ -1,6 +1,6 @@
1
1
  #main FeduxOrg
2
2
  module FeduxOrg
3
3
  module Stdlib
4
- VERSION = '0.3.0'
4
+ VERSION = '0.3.2'
5
5
  end
6
6
  end
@@ -10,35 +10,35 @@ describe Command::Which do
10
10
  end
11
11
 
12
12
  it 'returns full path for a valid command' do
13
- expect( klass.new.which( 'which' ) ).to eq( '/usr/bin/which' )
13
+ expect(klass.new.which( 'which' )).to eq( '/usr/bin/which' )
14
14
  end
15
15
 
16
16
  it 'returns full path for a valid command although a full path is given' do
17
- expect( klass.new.which( '/usr/bin/which' ) ).to eq( '/usr/bin/which' )
17
+ expect(klass.new.which( '/usr/bin/which' )).to eq( '/usr/bin/which' )
18
18
  end
19
19
 
20
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 )
21
+ expect(klass.new.which( '/usr/bin/which1' )).to eq( nil )
22
22
  end
23
23
 
24
24
  it 'returns nil if no executable can be found in path' do
25
- expect( klass.new.which( 'asdfasdf' ) ).to eq( nil )
25
+ expect(klass.new.which('asdfasdf')).to eq( nil )
26
26
  end
27
27
 
28
28
  it 'uses paths string to search for command' do
29
- expect( klass.new.which( 'which', '/usr/bin' ) ).to eq( '/usr/bin/which' )
29
+ expect(klass.new.which('which', paths: '/usr/bin')).to eq('/usr/bin/which')
30
30
  end
31
31
 
32
32
  it 'uses paths array to search for command' do
33
- expect( klass.new.which( 'which', [ '/usr/bin' ] ) ).to eq( '/usr/bin/which' )
33
+ expect(klass.new.which('which', paths: ['/usr/bin'])).to eq('/usr/bin/which')
34
34
  end
35
35
 
36
36
  it 'uses pathexts to search for command' do
37
- expect( klass.new.which( 'which', [ '/usr/bin' ], '' ) ).to eq( '/usr/bin/which' )
37
+ expect(klass.new.which('which', paths: ['/usr/bin'], pathexts: '')).to eq('/usr/bin/which')
38
38
  end
39
39
 
40
40
  it 'uses pathexts array to search for command' do
41
- expect( klass.new.which( 'which', [ '/usr/bin' ], [ '' ]) ).to eq( '/usr/bin/which' )
41
+ expect(klass.new.which( 'which', paths: ['/usr/bin'], pathexts: [''])).to eq('/usr/bin/which')
42
42
  end
43
43
  end
44
44
  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.3.0
4
+ version: 0.3.2
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-12-04 00:00:00.000000000 Z
12
+ date: 2014-01-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler