automatic_namespaces 0.5.2 → 0.5.3

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: 748dacb562a8622a1288a39b7036364a09cb0a8a5e19b2862a3e1145bd7f5549
4
- data.tar.gz: abe1ffc72d71e4bd1f49bab3ea60066a43e3ab8e61ee7304f9fbe400bedc206f
3
+ metadata.gz: 376744f1eec7a16bf39c8ddde12cb59d02aed6cf895544b77f562b43a102c873
4
+ data.tar.gz: 19b70861709bd30b9f3b530ba51c00d5608df1502c9b8bc934f386c7cb352aeb
5
5
  SHA512:
6
- metadata.gz: 2b2b6df942abf3c07bb88d3c2338e6614bc799d926adfac6271c70df6484ae58ae2d0cdd5cbfc861c7a364442bd84fefb9b93462b677923b506641426f4cb750
7
- data.tar.gz: a68100758eda2db63a1c917e567c2a5d33591f47c9b09b14848d00bd4abc22f37ecaf70575e8c562d491dcd7de0fb439f2fa025e39323267160a1b7d07fc513b
6
+ metadata.gz: 32c49acbf1ed5631dae92e124c1302529741112681252a053c18ef5ba46e08ccf6e266a83efae708b48b12f869133f09fae07cc6e4ff6be8ed4a5d85e545c6c6
7
+ data.tar.gz: 1d5a1121f91a15ce37fdee94111e59a92ebf740969a52e91c9d0e18de037a47b705fdea7397591453f8104928a2a83436b3d0bfc604ff5c0d606d12901b97f69
@@ -1,8 +1,13 @@
1
1
  require 'yaml'
2
2
 
3
3
  class AutomaticNamespaces::Autoloader
4
- DEFAULT_EXCLUDED_DIRS = %w[/app/helpers /app/inputs /app/javascript /app/views].freeze
4
+ ROOT_KEY = "automatic_pack_namespace".freeze
5
5
  PACKAGE_EXCLUDED_DIRS_KEY = "automatic_pack_namespace_exclusions".freeze
6
+ PACKAGE_AUTOLOAD_GLOB_KEY_OLD = "autoload_glob".freeze
7
+ PACKAGE_AUTOLOAD_GLOB_KEY = "automatic_pack_namespace_autoload_glob".freeze
8
+ PACKAGE_NAMESPACE_OVERRIDE_KEY_OLD = "namespace_override".freeze
9
+
10
+ DEFAULT_EXCLUDED_DIRS = %w[/app/helpers /app/inputs /app/javascript /app/views].freeze
6
11
 
7
12
  def enable_automatic_namespaces
8
13
  namespaced_packages.each do |pack, metadata|
@@ -27,7 +32,7 @@ class AutomaticNamespaces::Autoloader
27
32
  end
28
33
 
29
34
  def pack_directories(pack_root_dir, metadata)
30
- glob = metadata['autoload_glob'] || "/**/app/*"
35
+ glob = metadata[PACKAGE_AUTOLOAD_GLOB_KEY] || metadata[PACKAGE_AUTOLOAD_GLOB_KEY_OLD] || "/**/app/*"
31
36
  Dir.glob("#{pack_root_dir}#{glob}").select { |dir| namespaced_directory?(dir, metadata) }
32
37
  end
33
38
 
@@ -40,14 +45,21 @@ class AutomaticNamespaces::Autoloader
40
45
  end
41
46
 
42
47
  def define_namespace(pack, metadata)
43
- namespace_name = metadata['namespace_override'] || pack.last_name.camelize
44
48
  namespace_object = Object
45
- namespace_name.split('::').each do |module_name|
49
+ namespace_name(pack, metadata).split('::').each do |module_name|
46
50
  namespace_object = find_or_create_module(namespace_object, module_name)
47
51
  end
48
52
  namespace_object
49
53
  end
50
54
 
55
+ def namespace_name(pack, metadata)
56
+ if [true, false, "true", "false"].exclude?(metadata[ROOT_KEY])
57
+ metadata[ROOT_KEY]
58
+ else
59
+ metadata[PACKAGE_NAMESPACE_OVERRIDE_KEY_OLD] || pack.last_name.camelize
60
+ end
61
+ end
62
+
51
63
  def find_or_create_module(namespace_object, module_name)
52
64
  namespace_object.const_defined?(module_name) ?
53
65
  namespace_object.const_get(module_name) :
@@ -57,7 +69,7 @@ class AutomaticNamespaces::Autoloader
57
69
  def namespaced_packages
58
70
  Packs.all
59
71
  .map {|pack| [pack, package_metadata(pack)] }
60
- .select {|_pack, metadata| metadata && metadata["automatic_pack_namespace"] }
72
+ .select {|_pack, metadata| metadata && metadata[ROOT_KEY] }
61
73
  end
62
74
 
63
75
  def package_metadata(pack)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AutomaticNamespaces
4
- VERSION = "0.5.2"
4
+ VERSION = "0.5.3"
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: automatic_namespaces
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gary Passero
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-01-15 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: activesupport
@@ -126,7 +126,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
126
126
  - !ruby/object:Gem::Version
127
127
  version: '0'
128
128
  requirements: []
129
- rubygems_version: 3.6.2
129
+ rubygems_version: 3.6.9
130
130
  specification_version: 4
131
131
  summary: Modify autoloading to assume all files within a directory belong in a namespace
132
132
  test_files: []