effective_resources 1.9.2 → 1.9.3

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: 010a64ad908bb27807756924d3f05112c7910568615678bcc8c99b04c7c69f93
4
- data.tar.gz: cee9d5812ee210d09a8481c3261b625db6f7cf9b86d36fb261623d5e4fda2145
3
+ metadata.gz: 598341ec405c5f865bd47dd20eb3ac0260243a753bebc3ebe6c113364be41c20
4
+ data.tar.gz: 17fdbbf3cd41afa8342b6443c646d7082c052706e3995c4a0a0279ed8e063ae9
5
5
  SHA512:
6
- metadata.gz: 72c9617fedc1420ec4b520328d66e92d765691d943c4ed0d0f6b642e876a74d9d2a11f3a9be16003a1fa8540dc20b43617b9f8dec740625010b7cacf37b1f63b
7
- data.tar.gz: 7a9e7735119fc14caf02d6cee1e0fe1e9558888fc6ca7df4d33c95f073d28b7422adbb0fd93092391067b8ccd06dcb8eb8708a2017dafac5e5375103aa055d92
6
+ metadata.gz: f1b7daf92008549871a27f404f56f6c24554d49f5d8a33659fe5428af05544cc051b5824e682bce143ad459755b317d39866e2a770c916c0ca9e882d23a9349a
7
+ data.tar.gz: 4f1815a0e2f563687c78422623c20bef18143b33e01e2fa49d61681583233f8fb40884f5fba98261fb3c7b32dfb4d810f2ffab95d2f241b614ca24d50c1a6180
@@ -14,7 +14,7 @@ module Effective
14
14
  include Effective::Resources::Paths
15
15
  include Effective::Resources::Relation
16
16
  include Effective::Resources::Sql
17
-
17
+ include Effective::Resources::Tenants
18
18
 
19
19
  # In practice, this is initialized two ways
20
20
  # With a klass and a namespace from effective_datatables
@@ -30,19 +30,19 @@ module Effective
30
30
 
31
31
  # Tenants
32
32
  def tenant_controller_path
33
- (Tenant.module_name.downcase + '/' + controller_path) if defined?(Tenant)
33
+ (Tenant.module_name.downcase + '/' + controller_path) if tenant?
34
34
  end
35
35
 
36
36
  def tenant_namespaced_class_name
37
- (Tenant.module_name + '::' + namespaced_class_name) if defined?(Tenant)
37
+ (Tenant.module_name + '::' + namespaced_class_name) if tenant?
38
38
  end
39
39
 
40
40
  def tenant_namespaced_module_name
41
- (Tenant.module_name + '::' + namespaced_module_name) if defined?(Tenant)
41
+ (Tenant.module_name + '::' + namespaced_module_name) if tenant?
42
42
  end
43
43
 
44
44
  def tenant_class_name
45
- (Tenant.module_name + '::' + class_name) if defined?(Tenant)
45
+ (Tenant.module_name + '::' + class_name) if tenant?
46
46
  end
47
47
 
48
48
  end
@@ -40,7 +40,7 @@ module Effective
40
40
  end
41
41
 
42
42
  def find_tenant_datatable_klass
43
- return unless defined?(Tenant)
43
+ return unless tenant?
44
44
 
45
45
  "::#{tenant_controller_path.classify.pluralize}Datatable".safe_constantize ||
46
46
  "::#{tenant_controller_path.classify}Datatable".safe_constantize ||
@@ -65,16 +65,6 @@ module Effective
65
65
  def human_plural_name
66
66
  name.pluralize.gsub('::', ' ').underscore.gsub('_', ' ')
67
67
  end
68
-
69
- def tenant
70
- return nil unless defined?(Tenant)
71
- return nil unless klass.present?
72
- return nil unless class_name.include?('::')
73
-
74
- name = class_name.split('::').first.downcase.to_sym
75
- name if Rails.application.config.tenants[name].present?
76
- end
77
-
78
68
  end
79
69
  end
80
70
  end
@@ -5,8 +5,7 @@ module Effective
5
5
  module Paths
6
6
 
7
7
  def tenant_path
8
- return unless tenant.present?
9
- Tenant.engine_path(tenant).sub("#{Rails.root}/", '')
8
+ Tenant.engine_path(tenant).sub("#{Rails.root}/", '') if tenant?
10
9
  end
11
10
 
12
11
  def model_file
@@ -0,0 +1,20 @@
1
+ module Effective
2
+ module Resources
3
+ module Tenants
4
+
5
+ def tenant?
6
+ defined?(::Tenant)
7
+ end
8
+
9
+ def tenant
10
+ return unless tenant?
11
+ return nil unless klass.present?
12
+ return nil unless class_name.include?('::')
13
+
14
+ name = class_name.split('::').first.downcase.to_sym
15
+ name if Rails.application.config.tenants[name].present?
16
+ end
17
+
18
+ end
19
+ end
20
+ end
@@ -1,3 +1,3 @@
1
1
  module EffectiveResources
2
- VERSION = '1.9.2'.freeze
2
+ VERSION = '1.9.3'.freeze
3
3
  end
@@ -33,6 +33,24 @@ module EffectiveResources
33
33
 
34
34
  # Utilities
35
35
 
36
+ # This looks up the best class give the name
37
+ # If the Tenant is present, use those classes first.
38
+ def self.best(name)
39
+ klass = if defined?(Tenant)
40
+ ('::' + Tenant.module_name + '::' + name).safe_constantize ||
41
+ ('::' + Tenant.module_name + '::Effective::' + name).safe_constantize
42
+ end
43
+
44
+ klass ||= begin
45
+ ('::' + name).safe_constantize ||
46
+ ('::Effective::' + name).safe_constantize
47
+ end
48
+
49
+ raise("unable to find best #{name}") if klass.blank?
50
+
51
+ klass
52
+ end
53
+
36
54
  def self.truthy?(value)
37
55
  if defined?(::ActiveRecord::ConnectionAdapters::Column::TRUE_VALUES) # Rails <5
38
56
  ::ActiveRecord::ConnectionAdapters::Column::TRUE_VALUES.include?(value)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.2
4
+ version: 1.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-04 00:00:00.000000000 Z
11
+ date: 2021-11-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -184,6 +184,7 @@ files:
184
184
  - app/models/effective/resources/paths.rb
185
185
  - app/models/effective/resources/relation.rb
186
186
  - app/models/effective/resources/sql.rb
187
+ - app/models/effective/resources/tenants.rb
187
188
  - app/views/application/_flash.html.haml
188
189
  - app/views/application/create.js.erb
189
190
  - app/views/application/destroy.js.erb