automatic_namespaces 0.1.2 → 0.3.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: 206745a00b122b9b520cbfb277340490160d9f0de83c62c63096c8c3acaaed3d
4
- data.tar.gz: 5df21869e3ee72c714d7186eb1535375ab5a250c019e8c9abc2e7b4786959d70
3
+ metadata.gz: b98197aef26bbea5b268b32ade2377e646d65eb5ced3e1d89c0c15930d0cede3
4
+ data.tar.gz: 0bf0c76a057ebf5a9e9dec1e7e4ef6583efdef60f84325aaa4cc8a683d073a18
5
5
  SHA512:
6
- metadata.gz: 42ebf97afd78d759ee65c36ef565c30552116f36e6904cab7b890e5b6c1bf1b50030c3cf063ed1d8e4bec72861c8b2891ce978bae6b1ec99023c50597f1f0725
7
- data.tar.gz: 3363196f0f07238cb7267820322d1156c105ecbc1a79e622beb33bb555d020d63c445447e872fb1a2fb4dfd4080337e83ca4d6a5bc3b3a466dadc253a36d73df
6
+ metadata.gz: 59f1594f6822e1f3d6eac4f2571423edd2ff079a13ec0748b39f63e55d720b8bf63a4139151778e6863a1e82e1848740b72687dd2a127b2cdab898b0b766a3fd
7
+ data.tar.gz: b38559506c30a6e40f72751692a2540bde040faea2dbee8c5c063d7dadbda14c5db963e35d4b99b3936eba93f4446ac95a58c3e3a79e69c4389099bf6ad7d3ac
@@ -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,15 +33,24 @@ class AutomaticNamespaces::Autoloader
33
33
  end
34
34
 
35
35
  def define_namespace(pack, metadata)
36
- namespace = metadata['namespace_override'] || pack.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
42
- Stimpack::Packs.all
43
- .map {|pack| [pack, package_metadata(pack)] }
44
- .select {|pack, metadata| metadata && metadata["automatic_pack_namespace"] }
51
+ Packs.all
52
+ .map {|pack| [pack, package_metadata(pack)] }
53
+ .select {|_pack, metadata| metadata && metadata["automatic_pack_namespace"] }
45
54
  end
46
55
 
47
56
  def package_metadata(pack)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AutomaticNamespaces
4
- VERSION = "0.1.2"
4
+ VERSION = "0.3.0"
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.1.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gary Passero
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-09 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
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: stimpack
28
+ name: packs-rails
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -94,7 +94,7 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
- description:
97
+ description:
98
98
  email:
99
99
  - gpassero@gmail.com
100
100
  executables: []
@@ -114,7 +114,7 @@ metadata:
114
114
  source_code_uri: https://github.com/gap777/automatic_namespaces
115
115
  changelog_uri: https://github.com/gap777/automatic_namespaces/releases
116
116
  allowed_push_host: https://rubygems.org
117
- post_install_message:
117
+ post_install_message:
118
118
  rdoc_options: []
119
119
  require_paths:
120
120
  - lib
@@ -129,8 +129,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
129
  - !ruby/object:Gem::Version
130
130
  version: '0'
131
131
  requirements: []
132
- rubygems_version: 3.1.6
133
- signing_key:
132
+ rubygems_version: 3.2.15
133
+ signing_key:
134
134
  specification_version: 4
135
135
  summary: Modify autoloading to assume all files within a directory belong in a namespace
136
136
  test_files: []