automatic_namespaces 0.1.2 → 0.3.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: 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: []