automatic_namespaces 0.2.0 → 0.3.1

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: 472b930f3c812dd6a1cb69710bd15741625eda0632f54f3c124c1a38ac325b1f
4
- data.tar.gz: c6cd88175022d998eb01bf7ef3194ce79d1f7ce030dee46478c1465503866738
3
+ metadata.gz: 4591f54c57c3df9887c0321b7105e03873f7f922576b9cbc6385dae4c40a1c11
4
+ data.tar.gz: 3f478d56630b968d7b22d4f3feac07eadd9ed22535667a34d824fa8e3067f929
5
5
  SHA512:
6
- metadata.gz: f16bfe436cfcd0fdaa4e11a9cb145815c940bfd60533ffc7f4b74f0da8c246a344727ee5b1495b4070ef7dd676c9ba19cb972cc450346391fb6f0cec37985d23
7
- data.tar.gz: 3d71f3d2938bb795796bc21bae3e6b02009728d325a167685afadeeb3e091236373c21ae65e176311357d0bbfdecba799d1946db14f557284358a10eb586f231
6
+ metadata.gz: 2c8c2b1df45d0a7e6273a7f2b01ad521d87bd5ede3ca5f2e47107981191f4949c9fb997fe93478f97daf256b3499271ddd9ab865940940d82196795a01e7a9ee
7
+ data.tar.gz: 7f6c638a11fc1c3ec1b70591f3f18e8d60f49c18f07e051281bd8c002da15b645ef9e34b9869b8eecebb398a72b4987652b48d01252541d974f8bde358c3a5bc
@@ -21,7 +21,7 @@ class AutomaticNamespaces::Autoloader
21
21
  end
22
22
 
23
23
  def pack_directories(pack_root_dir)
24
- Dir.glob("#{pack_root_dir}/app/*").reject { |dir| non_namspaced_directory(dir) }
24
+ Dir.glob("#{pack_root_dir}/**/app/*").reject { |dir| non_namspaced_directory(dir) }
25
25
  end
26
26
 
27
27
  def non_namspaced_directory(dir)
@@ -33,9 +33,18 @@ class AutomaticNamespaces::Autoloader
33
33
  end
34
34
 
35
35
  def define_namespace(pack, metadata)
36
- namespace = metadata['namespace_override'] || pack.last_name.camelize
37
- Object.const_set(namespace, Module.new)
38
- namespace.constantize
36
+ namespace_name = metadata['namespace_override'] || pack.last_name.camelize
37
+ namespace_object = Object
38
+ namespace_name.split('::').each do |module_name|
39
+ namespace_object = find_or_create_module(namespace_object, module_name)
40
+ end
41
+ namespace_object
42
+ end
43
+
44
+ def find_or_create_module(namespace_object, module_name)
45
+ namespace_object.const_defined?(module_name) ?
46
+ namespace_object.const_get(module_name) :
47
+ namespace_object.const_set(module_name, Module.new)
39
48
  end
40
49
 
41
50
  def namespaced_packages
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AutomaticNamespaces
4
- VERSION = "0.2.0"
4
+ VERSION = "0.3.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: automatic_namespaces
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gary Passero
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-29 00:00:00.000000000 Z
11
+ date: 2023-02-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport