eac_ruby_utils 0.21.0 → 0.22.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.
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