eac_ruby_utils 0.21.0 → 0.22.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 36de192ccd40bc5d05d57d2c466042e0efcc6a57dec7bbd35d7fb0df05e2ff84
4
- data.tar.gz: db5a334469a76fed656d1f9a02869abb0bc26aedaed6641e621a984cbb1b3745
3
+ metadata.gz: b861a9c3b748b6aeb1e66d0ddbdecd38f5fecf08f14ca42a31a486ed7d7ae9b4
4
+ data.tar.gz: be84a8533d1a4fea360b9e250799724acc7f3ef3e5f4d99e9bd567dda73d5b11
5
5
  SHA512:
6
- metadata.gz: 7be9116caa7011ce58bd5096f735c1421caa2c6b42f67626c49a76732e237fe5bb18e7d2e4cc0fb235bdef7f83f176e99d0f6cf81d822315881d6ac42ce5ff04
7
- data.tar.gz: 0f3898a0b962f1cd103a7d6bb9964c99bd0fbee10051afc0cb015280a62a71395aed18792bcd69d55524a5570430aa622e9a09a8213953a7aed9c7987a3fd49a
6
+ metadata.gz: 29ab7e2c0c8d9aea6bf0ff222c1c0fad81fd077d5b06315186bf152e00d77b32ca121adb1c2542f8c26cb03803705caed99237046aea118ee4286e89de288bf6
7
+ data.tar.gz: 479e0d22d8ff085defebb333916ec103a681f5940a32df4ea42f892fe51b62a3bd6baac495a2ff6d6827f1e3707e846e69fd91a783c68cd13369c78e7bc25161
@@ -8,6 +8,7 @@ module EacRubyUtils
8
8
  require 'eac_ruby_utils/core_ext'
9
9
  require 'eac_ruby_utils/envs'
10
10
  require 'eac_ruby_utils/filesystem_cache'
11
+ require 'eac_ruby_utils/filesystem_traverser'
11
12
  require 'eac_ruby_utils/fs_cache'
12
13
  require 'eac_ruby_utils/listable'
13
14
  require 'eac_ruby_utils/options_consumer'
@@ -5,7 +5,7 @@ require 'active_support/core_ext/hash/slice'
5
5
  require 'docopt'
6
6
  require 'eac_ruby_utils/contextualizable'
7
7
  require 'eac_ruby_utils/patches/hash/sym_keys_hash'
8
- Dir["#{__dir__}/#{::File.basename(__FILE__, '.*')}/_*.rb"].each do |partial|
8
+ Dir["#{__dir__}/#{::File.basename(__FILE__, '.*')}/_*.rb"].sort.each do |partial|
9
9
  require partial
10
10
  end
11
11
 
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacRubyUtils
4
+ class FilesystemTraverser
5
+ attr_accessor :check_directory, :check_file, :recursive, :hidden_directories
6
+
7
+ def check_path(path)
8
+ path = ::Pathname.new(path.to_s) unless path.is_a?(::Pathname)
9
+ internal_check_path(path, 0)
10
+ end
11
+
12
+ def hidden_directories?
13
+ hidden_directories ? true : false
14
+ end
15
+
16
+ def recursive?
17
+ recursive ? true : false
18
+ end
19
+
20
+ private
21
+
22
+ def process_directory?(level)
23
+ level.zero? || recursive?
24
+ end
25
+
26
+ def inner_check_directory(dir, level)
27
+ return unless process_directory?(level)
28
+
29
+ user_check_directory(dir)
30
+ dir.each_entry do |e|
31
+ next if %(. ..).include?(e.basename.to_s)
32
+ next unless !e.basename.to_s.start_with?('.') || hidden_directories?
33
+
34
+ internal_check_path(dir.join(e), level + 1)
35
+ end
36
+ end
37
+
38
+ def internal_check_path(path, level)
39
+ if path.file?
40
+ user_check_file(path)
41
+ elsif path.directory?
42
+ inner_check_directory(path, level)
43
+ else
44
+ raise "Unknown filesystem object: #{path}"
45
+ end
46
+ end
47
+
48
+ def user_check_file(path)
49
+ check_file&.call(path)
50
+ end
51
+
52
+ def user_check_directory(path)
53
+ check_directory&.call(path)
54
+ end
55
+ end
56
+ end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'active_support/concern'
4
- Dir["#{__dir__}/#{::File.basename(__FILE__, '.*')}/*.rb"].each do |partial|
4
+ Dir["#{__dir__}/#{::File.basename(__FILE__, '.*')}/*.rb"].sort.each do |partial|
5
5
  require partial
6
6
  end
7
7
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- Dir["#{File.dirname(__FILE__)}/#{::File.basename(__FILE__, '.*')}/*.rb"].each do |path|
3
+ Dir["#{File.dirname(__FILE__)}/#{::File.basename(__FILE__, '.*')}/*.rb"].sort.each do |path|
4
4
  require path
5
5
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- Dir["#{File.dirname(__FILE__)}/#{::File.basename(__FILE__, '.*')}/*.rb"].each do |path|
3
+ Dir["#{File.dirname(__FILE__)}/#{::File.basename(__FILE__, '.*')}/*.rb"].sort.each do |path|
4
4
  require path
5
5
  end
@@ -3,7 +3,7 @@
3
3
  module EacRubyUtils
4
4
  class << self
5
5
  def require_sub(file)
6
- Dir["#{File.dirname(file)}/#{::File.basename(file, '.*')}/*.rb"].each do |path|
6
+ Dir["#{File.dirname(file)}/#{::File.basename(file, '.*')}/*.rb"].sort.each do |path|
7
7
  require path
8
8
  end
9
9
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacRubyUtils
4
- VERSION = '0.21.0'
4
+ VERSION = '0.22.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eac_ruby_utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.0
4
+ version: 0.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esquilo Azul Company
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-28 00:00:00.000000000 Z
11
+ date: 2020-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 0.74.0
103
+ version: 0.80.1
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 0.74.0
110
+ version: 0.80.1
111
111
  description:
112
112
  email:
113
113
  executables: []
@@ -143,6 +143,7 @@ files:
143
143
  - lib/eac_ruby_utils/envs/process.rb
144
144
  - lib/eac_ruby_utils/envs/ssh_env.rb
145
145
  - lib/eac_ruby_utils/filesystem_cache.rb
146
+ - lib/eac_ruby_utils/filesystem_traverser.rb
146
147
  - lib/eac_ruby_utils/fs_cache.rb
147
148
  - lib/eac_ruby_utils/listable.rb
148
149
  - lib/eac_ruby_utils/listable/class_methods.rb