effective_resources 2.39.0 → 2.40.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: 0433da244dc650a7bc0a4e37d90f184b8ce7daced5e4a4852ca96238a8709e18
4
- data.tar.gz: f9f7a805fa45bba873878178906888f22c686c1474b00cab519c28adc8f40822
3
+ metadata.gz: d40e6af3f4462f8e86aab9914919598680c3c0ac550bb3dfd5aa6d041602edef
4
+ data.tar.gz: 6a1f999236e9dcd9f633612f2f2fbdac0844430023adb021fc9f83aa1c58e727
5
5
  SHA512:
6
- metadata.gz: b79295497301b6082314bd360b63c9b30ad931b76d10189f6b0dabd0897c94bd2a7f3db7269ae255601d8a2ff413567fbe803d476ee399605e38b57eda23f54f
7
- data.tar.gz: 5949cc03908b10e25a884b1834b175e1e87b8b7009bf710f4e6ea20f4c3c7ed82357b124e0376fd311a2c79983d7dff4dd88964ff813a0a87a1e33139166b9e3
6
+ metadata.gz: 20dbbb02219d7e360cd7c0d1d859233089394f330931be722c3c5894ef9545237d0cdb3f997dc217e3f48941f754c72a107a3f3b5e7ae78c5e4401d418f300bb
7
+ data.tar.gz: f5bd1ce1b2006c2e32b8c23f0366f50a4378b3ac13ee8b9c8a00bfec111c2818942af591f01dce1e90128c61b54c60155ab75770a2d26ed9d022d638fb4270c7
@@ -57,7 +57,14 @@ module EffectiveGem
57
57
  raise('expected key to be a symbol') unless key.kind_of?(Symbol)
58
58
 
59
59
  namespace = name.split('::').first.underscore.to_sym if name.include?('::')
60
- config(namespace)[(key.to_s.singularize + '_class_name').to_sym] || "Effective::#{key.to_s.singularize.classify}"
60
+ resolve_class_name(key, namespace: namespace)
61
+ end
62
+
63
+ def klass(key, fallback: nil)
64
+ raise('expected key to be a symbol') unless key.kind_of?(Symbol)
65
+
66
+ namespace = Tenant.current if defined?(Tenant)
67
+ resolve_class_name(key, namespace: namespace, fallback: fallback).constantize
61
68
  end
62
69
 
63
70
  # Mailer Settings
@@ -111,6 +118,22 @@ module EffectiveGem
111
118
  raise(e) unless Rails.env.production? || Rails.env.staging?
112
119
  end
113
120
  end
121
+
122
+ private
123
+
124
+ def resolve_class_name(key, namespace:, fallback: nil)
125
+ key = key.to_s.singularize
126
+ configured = config(namespace)["#{key}_class_name".to_sym]
127
+
128
+ return configured if configured.present?
129
+
130
+ if defined?(Tenant) && namespace.present? && namespace != :effective
131
+ tenant_class_name = "#{namespace.to_s.camelize}::#{key.classify}"
132
+ return tenant_class_name if tenant_class_name.safe_constantize
133
+ end
134
+
135
+ fallback || "Effective::#{key.classify}"
136
+ end
114
137
  end
115
138
 
116
139
  end
@@ -1,3 +1,3 @@
1
1
  module EffectiveResources
2
- VERSION = '2.39.0'.freeze
2
+ VERSION = '2.40.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.39.0
4
+ version: 2.40.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect