eac_tools 0.117.0 → 0.117.1

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.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +37 -19
  3. data/eac_tools.gemspec +3 -3
  4. data/lib/eac_tools/version.rb +1 -1
  5. data/lib/eac_tools.rb +20 -23
  6. data/sub/avm/avm.gemspec +2 -2
  7. data/sub/avm/lib/avm/version.rb +1 -1
  8. data/sub/avm/lib/avm.rb +7 -14
  9. data/sub/avm-eac_ruby_base1/avm-eac_ruby_base1.gemspec +2 -2
  10. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/version.rb +1 -1
  11. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1.rb +7 -12
  12. data/sub/eac_ruby_base1/.gitignore +2 -0
  13. data/sub/eac_ruby_base1/.rspec +1 -0
  14. data/sub/eac_ruby_base1/.rubocop.yml +3 -0
  15. data/sub/eac_ruby_base1/Gemfile +8 -0
  16. data/sub/eac_ruby_base1/eac_ruby_base1.gemspec +21 -0
  17. data/sub/eac_ruby_base1/lib/eac_ruby_base1/root_module_setup/ignore.rb +57 -0
  18. data/sub/eac_ruby_base1/lib/eac_ruby_base1/root_module_setup/patches.rb +19 -0
  19. data/sub/eac_ruby_base1/lib/eac_ruby_base1/root_module_setup/paths.rb +38 -0
  20. data/sub/eac_ruby_base1/lib/eac_ruby_base1/root_module_setup/require_patch.rb +44 -0
  21. data/sub/eac_ruby_base1/lib/eac_ruby_base1/root_module_setup/requires.rb +25 -0
  22. data/sub/eac_ruby_base1/lib/eac_ruby_base1/root_module_setup/zeitwerk.rb +35 -0
  23. data/sub/eac_ruby_base1/lib/eac_ruby_base1/root_module_setup.rb +68 -0
  24. data/sub/eac_ruby_base1/lib/eac_ruby_base1/version.rb +5 -0
  25. data/sub/eac_ruby_base1/lib/eac_ruby_base1.rb +5 -0
  26. data/sub/eac_ruby_base1/spec/lib/eac_ruby_base1/root_module_setup_spec.rb +43 -0
  27. data/sub/eac_ruby_base1/spec/meta/rubocop_spec.rb +3 -0
  28. data/sub/eac_ruby_base1/spec/spec_helper.rb +5 -0
  29. metadata +34 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b9d602c2d1834e92b6a22f3ccdae155d42a281ad51c5689baa7a2c444742573e
4
- data.tar.gz: b4f40cfeab8da22ba922c11b5f4d55f0a0e22c4d478cd92b76d3223f7520c714
3
+ metadata.gz: ed17f64b0390b9d8c245956b52c46118f6af9eb3a03230a9dfd83bb7f3d8740e
4
+ data.tar.gz: 50c8ba6842151ffcd3a6d64325aac04fcaf35efa6b9cda2d20f7ee144c9e462a
5
5
  SHA512:
6
- metadata.gz: 50f81a0b8c5e24d53e9a34cce2d6e98592df12f70749e8ee98430b9a258541310dc6c2800981d919847d4e3bf9542924bf9f01630ae57985822aad93f87684e2
7
- data.tar.gz: 4088c021ae1979c991a8fd48c66fa177f965cae11b4267f722fcf3363404c4cce15ca465b4193dfee125542cebedd25414079a2cd374bdbbef5e77ba131fc160
6
+ metadata.gz: a0829dfb5a330f68c17f681e0aa7186e1aa52887dae57598d4cb88ebb498a9d782e41b46e7ee333a79edfdc6b8f17cf512633f05833d3dd8e6ac89c103878881
7
+ data.tar.gz: e161ff0140a23d28e511575329ea51555ded491c7c39a46f48fd01eb155527dcb47c612d525a4a5677f993174443ff9ec942d9ad9208d41c2b9318ee52343081
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- eac_tools (0.117.0)
5
- avm (~> 0.102)
4
+ eac_tools (0.117.1)
5
+ avm (~> 0.102, >= 0.102.1)
6
6
  avm-eac_asciidoctor_base0 (~> 0.27)
7
7
  avm-eac_generic_base0 (~> 0.15, >= 0.15.3)
8
8
  avm-eac_github_base0 (~> 0.4, >= 0.4.1)
@@ -16,44 +16,57 @@ PATH
16
16
  avm-eac_redmine_base0 (~> 0.26)
17
17
  avm-eac_redmine_plugin_base0 (~> 0.5)
18
18
  avm-eac_ruby_base0 (~> 0.2, >= 0.2.1)
19
- avm-eac_ruby_base1 (~> 0.42)
19
+ avm-eac_ruby_base1 (~> 0.42, >= 0.42.1)
20
20
  avm-eac_webapp_base0 (~> 0.22, >= 0.22.2)
21
21
  avm-eac_wordpress_base0 (~> 0.3, >= 0.3.2)
22
22
  avm-git (~> 0.21, >= 0.21.2)
23
23
  avm-tools (~> 0.164)
24
- eac_ruby_utils (~> 0.131)
24
+ eac_ruby_base1 (~> 0.1)
25
25
 
26
26
  PATH
27
27
  remote: sub/avm-eac_ruby_base1
28
28
  specs:
29
- avm-eac_ruby_base1 (0.42.0)
29
+ avm-eac_ruby_base1 (0.42.1)
30
30
  aranha-parsers (~> 0.29)
31
- avm (~> 0.101)
31
+ avm (~> 0.102, >= 0.102.1)
32
32
  avm-eac_generic_base0 (~> 0.15, >= 0.15.3)
33
33
  eac_envs-http (~> 0.7, >= 0.7.1)
34
- eac_ruby_utils (~> 0.131)
34
+ eac_ruby_base1 (~> 0.1)
35
35
 
36
36
  PATH
37
37
  remote: sub/avm
38
38
  specs:
39
- avm (0.102.0)
39
+ avm (0.102.1)
40
40
  eac_cli (~> 0.47)
41
41
  eac_config (~> 0.15)
42
42
  eac_docker (~> 0.8)
43
43
  eac_fs (~> 0.20, >= 0.20.2)
44
- eac_ruby_utils (~> 0.131)
44
+ eac_ruby_base1 (~> 0.1)
45
45
  eac_templates (~> 0.8, >= 0.8.3)
46
46
  minitar (~> 0.12, >= 0.12.1)
47
47
 
48
+ PATH
49
+ remote: sub/eac_ruby_base1
50
+ specs:
51
+ eac_ruby_base1 (0.1.0)
52
+ eac_ruby_utils (~> 0.131, >= 0.131.1)
53
+
48
54
  GEM
49
55
  remote: https://rubygems.org/
50
56
  specs:
51
- activesupport (6.1.7.10)
52
- concurrent-ruby (~> 1.0, >= 1.0.2)
57
+ activesupport (8.1.3)
58
+ base64
59
+ bigdecimal
60
+ concurrent-ruby (~> 1.0, >= 1.3.1)
61
+ connection_pool (>= 2.2.5)
62
+ drb
53
63
  i18n (>= 1.6, < 2)
64
+ json
65
+ logger (>= 1.4.2)
54
66
  minitest (>= 5.1)
55
- tzinfo (~> 2.0)
56
- zeitwerk (~> 2.3)
67
+ securerandom (>= 0.3)
68
+ tzinfo (~> 2.0, >= 2.0.5)
69
+ uri (>= 0.13.1)
57
70
  addressable (2.9.0)
58
71
  public_suffix (>= 2.0.2, < 8.0)
59
72
  aranha (0.20.0)
@@ -146,9 +159,12 @@ GEM
146
159
  avm-tools (0.164.0)
147
160
  avm (~> 0.98, >= 0.98.5)
148
161
  eac_ruby_base0 (~> 0.19, >= 0.19.3)
162
+ base64 (0.3.0)
163
+ bigdecimal (4.1.2)
149
164
  clipboard (2.0.0)
150
165
  colorize (0.8.1)
151
166
  concurrent-ruby (1.3.7)
167
+ connection_pool (3.0.2)
152
168
  content-type (0.0.2)
153
169
  parslet (~> 2.0)
154
170
  diff-lcs (1.6.2)
@@ -199,8 +215,8 @@ GEM
199
215
  rubocop-rails (~> 2.34, >= 2.34.3)
200
216
  rubocop-rspec (~> 3.9)
201
217
  super_diff (~> 0.19)
202
- eac_ruby_utils (0.131.0)
203
- activesupport (>= 4, < 7)
218
+ eac_ruby_utils (0.131.1)
219
+ activesupport (>= 6.1.7.10)
204
220
  addressable (~> 2.9)
205
221
  bundler
206
222
  memoized (~> 1.1, >= 1.1.3)
@@ -231,7 +247,7 @@ GEM
231
247
  htmlbeautifier (1.4.3)
232
248
  i18n (1.15.2)
233
249
  concurrent-ruby (~> 1.0)
234
- json (2.20.0)
250
+ json (2.21.1)
235
251
  language_server-protocol (3.17.0.6)
236
252
  lint_roller (1.1.0)
237
253
  logger (1.7.0)
@@ -250,7 +266,7 @@ GEM
250
266
  os (1.1.4)
251
267
  parallel (1.28.0)
252
268
  parseconfig (1.1.2)
253
- parser (3.3.11.1)
269
+ parser (3.3.12.0)
254
270
  ast (~> 2.4.1)
255
271
  racc
256
272
  parslet (2.0.0)
@@ -281,7 +297,7 @@ GEM
281
297
  diff-lcs (>= 1.2.0, < 2.0)
282
298
  rspec-support (~> 3.13.0)
283
299
  rspec-support (3.13.7)
284
- rubocop (1.88.1)
300
+ rubocop (1.88.2)
285
301
  json (~> 2.3)
286
302
  language_server-protocol (~> 3.17.0.2)
287
303
  lint_roller (~> 1.1.0)
@@ -295,7 +311,7 @@ GEM
295
311
  rubocop-ast (1.50.0)
296
312
  parser (>= 3.3.7.2)
297
313
  prism (~> 1.7)
298
- rubocop-rails (2.35.5)
314
+ rubocop-rails (2.36.0)
299
315
  activesupport (>= 4.2.0)
300
316
  lint_roller (~> 1.1)
301
317
  rack (>= 1.1)
@@ -307,6 +323,7 @@ GEM
307
323
  rubocop (~> 1.86, >= 1.86.2)
308
324
  ruby-filemagic (0.7.3)
309
325
  ruby-progressbar (1.13.0)
326
+ securerandom (0.4.1)
310
327
  strings (0.2.1)
311
328
  strings-ansi (~> 0.2)
312
329
  unicode-display_width (>= 1.5, < 3.0)
@@ -338,6 +355,7 @@ PLATFORMS
338
355
  DEPENDENCIES
339
356
  avm!
340
357
  avm-eac_ruby_base1!
358
+ eac_ruby_base1!
341
359
  eac_ruby_gem_support (~> 0.13)
342
360
  eac_tools!
343
361
 
data/eac_tools.gemspec CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
18
18
 
19
19
  s.required_ruby_version = '>= 3.2'
20
20
 
21
- s.add_dependency 'avm', '~> 0.102'
21
+ s.add_dependency 'avm', '~> 0.102', '>= 0.102.1'
22
22
  s.add_dependency 'avm-eac_asciidoctor_base0', '~> 0.27'
23
23
  s.add_dependency 'avm-eac_generic_base0', '~> 0.15', '>= 0.15.3'
24
24
  s.add_dependency 'avm-eac_github_base0', '~> 0.4', '>= 0.4.1'
@@ -32,12 +32,12 @@ Gem::Specification.new do |s|
32
32
  s.add_dependency 'avm-eac_redmine_base0', '~> 0.26'
33
33
  s.add_dependency 'avm-eac_redmine_plugin_base0', '~> 0.5'
34
34
  s.add_dependency 'avm-eac_ruby_base0', '~> 0.2', '>= 0.2.1'
35
- s.add_dependency 'avm-eac_ruby_base1', '~> 0.42'
35
+ s.add_dependency 'avm-eac_ruby_base1', '~> 0.42', '>= 0.42.1'
36
36
  s.add_dependency 'avm-eac_webapp_base0', '~> 0.22', '>= 0.22.2'
37
37
  s.add_dependency 'avm-eac_wordpress_base0', '~> 0.3', '>= 0.3.2'
38
38
  s.add_dependency 'avm-git', '~> 0.21', '>= 0.21.2'
39
39
  s.add_dependency 'avm-tools', '~> 0.164'
40
- s.add_dependency 'eac_ruby_utils', '~> 0.131'
40
+ s.add_dependency 'eac_ruby_base1', '~> 0.1'
41
41
 
42
42
  s.add_development_dependency 'eac_ruby_gem_support', '~> 0.13'
43
43
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacTools
4
- VERSION = '0.117.0'
4
+ VERSION = '0.117.1'
5
5
  end
data/lib/eac_tools.rb CHANGED
@@ -1,26 +1,23 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils'
4
- EacRubyUtils::RootModuleSetup.perform __FILE__
5
-
6
- require 'avm/eac_asciidoctor_base0'
7
- require 'avm/eac_generic_base0'
8
- require 'avm/eac_github_base0'
9
- require 'avm/eac_gitlab_base0'
10
- require 'avm/eac_latex_base0'
11
- require 'avm/eac_php_base0'
12
- require 'avm/eac_postgresql_base0'
13
- require 'avm/eac_python_base0'
14
- require 'avm/eac_rails_base0'
15
- require 'avm/eac_rails_base1'
16
- require 'avm/eac_redmine_base0'
17
- require 'avm/eac_redmine_plugin_base0'
18
- require 'avm/eac_ruby_base0'
19
- require 'avm/eac_ruby_base1'
20
- require 'avm/eac_webapp_base0'
21
- require 'avm/eac_wordpress_base0'
22
- require 'avm/git'
23
- require 'avm/tools'
24
-
25
- module EacTools
3
+ require 'eac_ruby_base1'
4
+ EacRubyBase1::RootModuleSetup.perform __FILE__ do
5
+ require 'avm/eac_asciidoctor_base0'
6
+ require 'avm/eac_generic_base0'
7
+ require 'avm/eac_github_base0'
8
+ require 'avm/eac_gitlab_base0'
9
+ require 'avm/eac_latex_base0'
10
+ require 'avm/eac_php_base0'
11
+ require 'avm/eac_postgresql_base0'
12
+ require 'avm/eac_python_base0'
13
+ require 'avm/eac_rails_base0'
14
+ require 'avm/eac_rails_base1'
15
+ require 'avm/eac_redmine_base0'
16
+ require 'avm/eac_redmine_plugin_base0'
17
+ require 'avm/eac_ruby_base0'
18
+ require 'avm/eac_ruby_base1'
19
+ require 'avm/eac_webapp_base0'
20
+ require 'avm/eac_wordpress_base0'
21
+ require 'avm/git'
22
+ require 'avm/tools'
26
23
  end
data/sub/avm/avm.gemspec CHANGED
@@ -18,11 +18,11 @@ Gem::Specification.new do |s|
18
18
  s.add_dependency 'eac_config', '~> 0.15'
19
19
  s.add_dependency 'eac_docker', '~> 0.8'
20
20
  s.add_dependency 'eac_fs', '~> 0.20', '>= 0.20.2'
21
- s.add_dependency 'eac_ruby_utils', '~> 0.131'
21
+ s.add_dependency 'eac_ruby_base1', '~> 0.1'
22
22
  s.add_dependency 'eac_templates', '~> 0.8', '>= 0.8.3'
23
23
  s.add_dependency 'minitar', '~> 0.12', '>= 0.12.1'
24
24
 
25
- s.add_development_dependency 'avm-eac_ruby_base1', '~> 0.41', '>= 0.41.1'
25
+ s.add_development_dependency 'avm-eac_ruby_base1', '~> 0.42'
26
26
  s.add_development_dependency 'avm-git', '~> 0.21', '>= 0.21.2'
27
27
  s.add_development_dependency 'eac_ruby_gem_support', '~> 0.13'
28
28
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Avm
4
- VERSION = '0.102.0'
4
+ VERSION = '0.102.1'
5
5
  end
data/sub/avm/lib/avm.rb CHANGED
@@ -1,18 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils'
4
- EacRubyUtils::RootModuleSetup.perform __FILE__ do
5
- ignore 'patches/eac_config/entry_path'
3
+ require 'eac_ruby_base1'
4
+ EacRubyBase1::RootModuleSetup.perform __FILE__ do
6
5
  ignore 'rspec/shared_examples/*'
6
+ require 'eac_docker'
7
+ require 'eac_fs'
8
+ require 'eac_cli'
9
+ require 'eac_config'
10
+ require 'rspec'
7
11
  end
8
-
9
- module Avm
10
- end
11
-
12
- require 'eac_docker'
13
- require 'eac_fs'
14
- require 'eac_cli'
15
- require 'eac_config'
16
- require 'rspec'
17
-
18
- require 'avm/patches/eac_config/entry_path'
@@ -16,10 +16,10 @@ Gem::Specification.new do |s|
16
16
  .reject { |f| ['.', '..'].include?(File.basename(f)) }
17
17
  s.required_ruby_version = '>= 3.2'
18
18
 
19
- s.add_dependency 'avm', '~> 0.101'
19
+ s.add_dependency 'avm', '~> 0.102', '>= 0.102.1'
20
20
  s.add_dependency 'avm-eac_generic_base0', '~> 0.15', '>= 0.15.3'
21
21
  s.add_dependency 'eac_envs-http', '~> 0.7', '>= 0.7.1'
22
- s.add_dependency 'eac_ruby_utils', '~> 0.131'
22
+ s.add_dependency 'eac_ruby_base1', '~> 0.1'
23
23
 
24
24
  s.add_development_dependency 'eac_ruby_gem_support', '~> 0.13'
25
25
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacRubyBase1
5
- VERSION = '0.42.0'
5
+ VERSION = '0.42.1'
6
6
  end
7
7
  end
@@ -1,15 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils'
4
- EacRubyUtils::RootModuleSetup.perform __FILE__
5
-
6
- module Avm
7
- module EacRubyBase1
8
- end
3
+ require 'eac_ruby_base1'
4
+ EacRubyBase1::RootModuleSetup.perform __FILE__ do
5
+ require 'aranha/parsers'
6
+ require 'avm'
7
+ require 'avm/eac_generic_base0'
8
+ require 'eac_templates'
9
+ require 'eac_envs/http'
9
10
  end
10
-
11
- require 'aranha/parsers'
12
- require 'avm'
13
- require 'avm/eac_generic_base0'
14
- require 'eac_templates'
15
- require 'eac_envs/http'
@@ -0,0 +1,2 @@
1
+ /Gemfile.local
2
+ /Gemfile.lock
@@ -0,0 +1 @@
1
+ --require spec_helper
@@ -0,0 +1,3 @@
1
+ ---
2
+ inherit_gem:
3
+ eac_ruby_gem_support: ".rubocop.yml"
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ gemspec
6
+
7
+ local_gemfile = File.join(File.dirname(__FILE__), 'Gemfile.local')
8
+ eval_gemfile local_gemfile if File.exist?(local_gemfile)
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ $LOAD_PATH.push File.expand_path('lib', __dir__)
4
+
5
+ require 'eac_ruby_base1/version'
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = 'eac_ruby_base1'
9
+ s.version = EacRubyBase1::VERSION
10
+ s.authors = ['Put here the authors']
11
+ s.summary = 'Put here de description.'
12
+
13
+ s.files = Dir.glob('{lib}/**/*', File::FNM_DOTMATCH)
14
+ .reject { |f| ['.', '..'].include?(File.basename(f)) }
15
+ s.required_ruby_version = '>= 3.2'
16
+
17
+ s.add_dependency 'eac_ruby_utils', '~> 0.131', '>= 0.131.1'
18
+
19
+ s.add_development_dependency 'avm-eac_ruby_base1', '~> 0.42'
20
+ s.add_development_dependency 'eac_ruby_gem_support', '~> 0.13'
21
+ end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/patches/module/acts_as_instance_method'
4
+ require 'eac_ruby_utils/patches/object/to_pathname'
5
+ require 'eac_ruby_utils/patches/pathname/basename_sub'
6
+ require 'memoized'
7
+
8
+ module EacRubyBase1
9
+ class RootModuleSetup
10
+ class Ignore
11
+ include ::Memoized
12
+
13
+ acts_as_instance_method
14
+ common_constructor :setup, :path do
15
+ self.path = path.to_pathname
16
+ end
17
+ delegate :loader, :root_module_directory, to: :setup
18
+
19
+ # @return [Set]
20
+ def result
21
+ target_paths.each do |target_path|
22
+ expect_count_increment { loader.ignore target_path }
23
+ end
24
+ end
25
+
26
+ protected
27
+
28
+ # @return [Pathname]
29
+ memoize def absolute_path
30
+ path.expand_path(root_module_directory)
31
+ end
32
+
33
+ # @return [Set]
34
+ def expect_count_increment
35
+ count_before = loader.send(:ignored_paths).count
36
+ result = yield
37
+ return result if result.count > count_before
38
+
39
+ raise ::ArgumentError, [
40
+ "Trying to ignore path \"#{path}\" did not increase the ignored paths.",
41
+ "Argument path: \"#{path}\"", "Target path: \"#{target_paths}\"",
42
+ "Ignored paths: #{result}"
43
+ ].join("\n")
44
+ end
45
+
46
+ # @return [Pathname]
47
+ memoize def target_paths
48
+ return [absolute_path] if %w[* ?].any? { |e| absolute_path.to_path.include?(e) } # rubocop:disable Style/ArrayIntersect
49
+
50
+ r = []
51
+ r << absolute_path if absolute_path.directory?
52
+ r << [absolute_path.basename_sub { |b| "#{b.basename('.*')}.rb" }]
53
+ r
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacRubyBase1
4
+ class RootModuleSetup
5
+ module Patches
6
+ # @return [Enumerable<Pathname>]
7
+ def patches_files
8
+ root_module_directory.join('patches').glob('**/*.rb')
9
+ end
10
+
11
+ # @return [void]
12
+ def require_patches
13
+ patches_files.each do |absolute_path|
14
+ require_patch(absolute_path)
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacRubyBase1
4
+ class RootModuleSetup
5
+ module Paths
6
+ # @!attribute [r] root_module_file
7
+ # @return [Pathname] Absolute path to the gem's module root file.
8
+
9
+ attr_reader :root_module_file
10
+
11
+ # @return [Pathname]
12
+ def relative_root_module_file
13
+ count = 0
14
+ current = root_module_file.basename('.*')
15
+ dirname = root_module_file.dirname
16
+ loop do
17
+ ibr if dirname.root?
18
+
19
+ break current if dirname.basename.to_path == LIB_DIRECTORY_BASENAME
20
+
21
+ current = dirname.basename.join(current)
22
+ dirname = dirname.dirname
23
+
24
+ count += 1
25
+ end
26
+ end
27
+
28
+ # @return [Pathname]
29
+ def root_module_directory
30
+ root_module_file.basename('.*').expand_path(root_module_file.dirname)
31
+ end
32
+
33
+ protected
34
+
35
+ attr_writer :root_module_file
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/patches/module/acts_as_instance_method'
4
+ require 'eac_ruby_utils/patches/object/to_pathname'
5
+ require 'eac_ruby_utils/patches/pathname/basename_sub'
6
+ require 'memoized'
7
+
8
+ module EacRubyBase1
9
+ class RootModuleSetup
10
+ class RequirePatch
11
+ acts_as_instance_method
12
+ common_constructor :setup, :absolute_path do
13
+ self.absolute_path = absolute_path.to_pathname
14
+ end
15
+
16
+ # @return [void]
17
+ def result
18
+ perform_require
19
+ perform_ignore
20
+ end
21
+
22
+ # @return [Pathname]
23
+ def ignore_path
24
+ absolute_path.relative_path_from(setup.root_module_directory)
25
+ .basename_sub { |b| b.basename('.*') }
26
+ end
27
+
28
+ # @return [void]
29
+ def perform_require
30
+ ::Kernel.require require_path
31
+ end
32
+
33
+ # @return [void]
34
+ def perform_ignore
35
+ setup.ignore ignore_path
36
+ end
37
+
38
+ # @return [Pathname]
39
+ def require_path
40
+ setup.relative_root_module_file.join(ignore_path)
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacRubyBase1
4
+ class RootModuleSetup
5
+ module Requires
6
+ # @param require [String]
7
+ # @return [void]
8
+ def require(name)
9
+ requires << name
10
+ end
11
+
12
+ # @return [void]
13
+ def perform_requires
14
+ requires.each { |name| ::Kernel.require(name) }
15
+ end
16
+
17
+ protected
18
+
19
+ # @return [Array<String>]
20
+ def requires
21
+ @requires ||= []
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacRubyBase1
4
+ class RootModuleSetup
5
+ module Zeitwerk
6
+ # @return [Zeitwerk::GemLoader]
7
+ def loader
8
+ @loader ||= ::Zeitwerk::Registry.loader_for_gem(
9
+ root_module_file,
10
+ namespace: namespace,
11
+ warn_on_extra_files: true
12
+ )
13
+ end
14
+
15
+ # @param enable [Boolean] `true` to enable, `false` (default) to disable.
16
+ # @return
17
+ def logging(enable)
18
+ @logging = enable
19
+ end
20
+
21
+ # @return [Boolean]
22
+ def logging?
23
+ @logging ? true : false
24
+ end
25
+
26
+ protected
27
+
28
+ # @return [void]
29
+ def perform_zeitwerk
30
+ loader.log! if logging?
31
+ loader.setup
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,68 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_support/inflector'
4
+ require 'eac_ruby_utils/patches/module/require_sub'
5
+ require 'zeitwerk'
6
+
7
+ module EacRubyBase1
8
+ class RootModuleSetup
9
+ require_sub __FILE__, require_mode: :kernel, include_modules: true
10
+
11
+ DEFAULT_NAMESPACE = ::Object
12
+ LIB_DIRECTORY_BASENAME = 'lib'
13
+
14
+ class << self
15
+ # @param root_module_file [Pathname]
16
+ def perform(root_module_file, &)
17
+ new(root_module_file, &).perform
18
+ end
19
+ end
20
+
21
+ attr_reader :block
22
+ attr_writer :logging
23
+
24
+ # @param root_module_file [Pathname]
25
+ def initialize(root_module_file, &block)
26
+ self.root_module_file = root_module_file.to_pathname
27
+ self.block = block
28
+ end
29
+
30
+ # @return [Module, nil]
31
+ def extension_for
32
+ dirname = ::File.dirname(relative_root_module_file)
33
+ return nil if ['.', '/', ''].include?(dirname)
34
+
35
+ require dirname
36
+ ::ActiveSupport::Inflector.constantize(dirname.camelize)
37
+ end
38
+
39
+ # @return [Module]
40
+ def namespace
41
+ extension_for || DEFAULT_NAMESPACE
42
+ end
43
+
44
+ # @return [void]
45
+ def perform
46
+ perform_block
47
+ perform_zeitwerk
48
+ root_module
49
+ perform_requires
50
+ require_patches
51
+ end
52
+
53
+ # @return [void]
54
+ def root_module
55
+ relative_root_module_file.each_filename.inject(DEFAULT_NAMESPACE) do |a, e|
56
+ a.const_get(e.camelize)
57
+ end
58
+ end
59
+
60
+ protected
61
+
62
+ attr_writer :block
63
+
64
+ def perform_block
65
+ instance_eval(&block) if block
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacRubyBase1
4
+ VERSION = '0.1.0'
5
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils'
4
+ require 'eac_ruby_base1/root_module_setup'
5
+ EacRubyBase1::RootModuleSetup.perform __FILE__
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe(EacRubyBase1::RootModuleSetup) do
4
+ {
5
+ 'avm-eac_ruby_base1' => [
6
+ 'lib/avm/eac_ruby_base1.rb',
7
+ 'Avm',
8
+ 'avm/eac_ruby_base1',
9
+ 'Avm::EacRubyBase1'
10
+ ],
11
+ 'eac_ruby_utils' => [
12
+ 'lib/eac_ruby_utils.rb',
13
+ 'Object',
14
+ 'eac_ruby_utils',
15
+ 'EacRubyUtils'
16
+ ]
17
+ }.each do |gem_name, values|
18
+ context "when gem is \"#{gem_name}\"" do
19
+ let(:root_module_file_subpath) { values[0] }
20
+ let(:namespace_name) { values[1] }
21
+ let(:relative_root_module_file) { Pathname.new(values[2]) }
22
+ let(:root_module_name) { values[3] }
23
+
24
+ let(:root_module_file) do
25
+ Gem.loaded_specs[gem_name].full_gem_path.to_pathname
26
+ .join(root_module_file_subpath)
27
+ end
28
+ let(:instance) { described_class.new(root_module_file) }
29
+
30
+ it do
31
+ expect(instance.namespace).to eq(namespace_name.constantize)
32
+ end
33
+
34
+ it do
35
+ expect(instance.relative_root_module_file).to eq(relative_root_module_file)
36
+ end
37
+
38
+ it do
39
+ expect(instance.root_module.name).to eq(root_module_name)
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ EacRubyUtils::Rspec.default_setup.describe_rubocop
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_base1'
4
+ require 'eac_ruby_gem_support'
5
+ EacRubyUtils::Rspec.default_setup_create(File.expand_path('..', __dir__))
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eac_tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.117.0
4
+ version: 0.117.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Put here the authors
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-07-15 00:00:00.000000000 Z
11
+ date: 2026-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avm
@@ -17,6 +17,9 @@ dependencies:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0.102'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.102.1
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -24,6 +27,9 @@ dependencies:
24
27
  - - "~>"
25
28
  - !ruby/object:Gem::Version
26
29
  version: '0.102'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 0.102.1
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: avm-eac_asciidoctor_base0
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -249,6 +255,9 @@ dependencies:
249
255
  - - "~>"
250
256
  - !ruby/object:Gem::Version
251
257
  version: '0.42'
258
+ - - ">="
259
+ - !ruby/object:Gem::Version
260
+ version: 0.42.1
252
261
  type: :runtime
253
262
  prerelease: false
254
263
  version_requirements: !ruby/object:Gem::Requirement
@@ -256,6 +265,9 @@ dependencies:
256
265
  - - "~>"
257
266
  - !ruby/object:Gem::Version
258
267
  version: '0.42'
268
+ - - ">="
269
+ - !ruby/object:Gem::Version
270
+ version: 0.42.1
259
271
  - !ruby/object:Gem::Dependency
260
272
  name: avm-eac_webapp_base0
261
273
  requirement: !ruby/object:Gem::Requirement
@@ -331,19 +343,19 @@ dependencies:
331
343
  - !ruby/object:Gem::Version
332
344
  version: '0.164'
333
345
  - !ruby/object:Gem::Dependency
334
- name: eac_ruby_utils
346
+ name: eac_ruby_base1
335
347
  requirement: !ruby/object:Gem::Requirement
336
348
  requirements:
337
349
  - - "~>"
338
350
  - !ruby/object:Gem::Version
339
- version: '0.131'
351
+ version: '0.1'
340
352
  type: :runtime
341
353
  prerelease: false
342
354
  version_requirements: !ruby/object:Gem::Requirement
343
355
  requirements:
344
356
  - - "~>"
345
357
  - !ruby/object:Gem::Version
346
- version: '0.131'
358
+ version: '0.1'
347
359
  - !ruby/object:Gem::Dependency
348
360
  name: eac_ruby_gem_support
349
361
  requirement: !ruby/object:Gem::Requirement
@@ -791,6 +803,23 @@ files:
791
803
  - sub/avm/template/avm/rspec/launcher_controller/settings.yml
792
804
  - sub/avm/template/avm/self/docker_image/Dockerfile
793
805
  - sub/avm/template/avm/self/docker_image/entrypoint.sh
806
+ - sub/eac_ruby_base1/.gitignore
807
+ - sub/eac_ruby_base1/.rspec
808
+ - sub/eac_ruby_base1/.rubocop.yml
809
+ - sub/eac_ruby_base1/Gemfile
810
+ - sub/eac_ruby_base1/eac_ruby_base1.gemspec
811
+ - sub/eac_ruby_base1/lib/eac_ruby_base1.rb
812
+ - sub/eac_ruby_base1/lib/eac_ruby_base1/root_module_setup.rb
813
+ - sub/eac_ruby_base1/lib/eac_ruby_base1/root_module_setup/ignore.rb
814
+ - sub/eac_ruby_base1/lib/eac_ruby_base1/root_module_setup/patches.rb
815
+ - sub/eac_ruby_base1/lib/eac_ruby_base1/root_module_setup/paths.rb
816
+ - sub/eac_ruby_base1/lib/eac_ruby_base1/root_module_setup/require_patch.rb
817
+ - sub/eac_ruby_base1/lib/eac_ruby_base1/root_module_setup/requires.rb
818
+ - sub/eac_ruby_base1/lib/eac_ruby_base1/root_module_setup/zeitwerk.rb
819
+ - sub/eac_ruby_base1/lib/eac_ruby_base1/version.rb
820
+ - sub/eac_ruby_base1/spec/lib/eac_ruby_base1/root_module_setup_spec.rb
821
+ - sub/eac_ruby_base1/spec/meta/rubocop_spec.rb
822
+ - sub/eac_ruby_base1/spec/spec_helper.rb
794
823
  homepage:
795
824
  licenses: []
796
825
  metadata: {}