effective_resources 1.8.0 → 1.8.1
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 +4 -4
- data/app/controllers/concerns/effective/flash_messages.rb +2 -2
- data/app/helpers/effective_resources_helper.rb +1 -0
- data/app/models/concerns/effective_devise_user.rb +1 -2
- data/app/models/effective/resource.rb +1 -0
- data/app/models/effective/resources/generator.rb +31 -0
- data/app/models/effective/resources/init.rb +1 -2
- data/app/models/effective/resources/naming.rb +9 -8
- data/app/models/effective/resources/paths.rb +32 -5
- data/lib/effective_resources/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba1ab3c1064882ff12132711f5b5e52baffd2448ca53097739f6fc5da17ded8e
|
4
|
+
data.tar.gz: 0444d91c34c0e2bccae26dbd042d80d491d829e19f6f0dccf720ad975eb0ee14
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1bed68ed75113db85e5a10372dd148847464855f7bee2d4699366efdb3df2046a1e8ca001c9c6fadee838b6f67b5f900ca7429a9888b286c66db1db17d2e7996
|
7
|
+
data.tar.gz: 0caf48a95cb7600b104fe0ca679c9780552fc99f61e1f8ce005b5e24f241a93cd340c6222ee3ce43a6ab85e93380511d1b5184c25795a5138423fb35b2cbd78c
|
@@ -36,8 +36,8 @@ module Effective
|
|
36
36
|
raise 'expected an ActiveRecord resource' unless resource.respond_to?(:errors)
|
37
37
|
|
38
38
|
messages = resource.errors.map do |error|
|
39
|
-
attribute = error.respond_to?(:attribute) ? error.attribute : error
|
40
|
-
message = error.respond_to?(:message) ? error.message :
|
39
|
+
attribute = error.respond_to?(:attribute) ? error.attribute : error
|
40
|
+
message = error.respond_to?(:message) ? error.message : resource.errors[attribute].to_sentence
|
41
41
|
|
42
42
|
if message[0] == message[0].upcase # If the error begins with a capital letter
|
43
43
|
message
|
@@ -196,6 +196,7 @@ module EffectiveResourcesHelper
|
|
196
196
|
|
197
197
|
render(resource, atts) # Will raise the regular error
|
198
198
|
end
|
199
|
+
alias_method :render_resource, :render_resource_partial
|
199
200
|
|
200
201
|
# Tableize attributes
|
201
202
|
# This is used by effective_orders, effective_logging, effective_trash and effective_mergery
|
@@ -66,6 +66,7 @@ module EffectiveDeviseUser
|
|
66
66
|
|
67
67
|
module ClassMethods
|
68
68
|
def permitted_sign_up_params # Should contain all fields as per views/users/_sign_up_fields
|
69
|
+
raise('please define a self.permitted_sign_up_params')
|
69
70
|
[:email, :password, :password_confirmation, :first_name, :last_name, :name, :login]
|
70
71
|
end
|
71
72
|
|
@@ -152,8 +153,6 @@ module EffectiveDeviseUser
|
|
152
153
|
def send_devise_notification(notification, *args)
|
153
154
|
raise('expected args Hash') unless args.respond_to?(:last) && args.last.kind_of?(Hash)
|
154
155
|
|
155
|
-
|
156
|
-
|
157
156
|
if defined?(Tenant)
|
158
157
|
tenant = Tenant.current || raise('expected a current tenant')
|
159
158
|
args.last[:tenant] ||= tenant
|
@@ -7,6 +7,7 @@ module Effective
|
|
7
7
|
include Effective::Resources::Init
|
8
8
|
include Effective::Resources::Instance
|
9
9
|
include Effective::Resources::Forms
|
10
|
+
include Effective::Resources::Generator
|
10
11
|
include Effective::Resources::Klass
|
11
12
|
include Effective::Resources::Model
|
12
13
|
include Effective::Resources::Naming
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Effective
|
2
|
+
module Resources
|
3
|
+
module Generator
|
4
|
+
|
5
|
+
def module_name
|
6
|
+
return nil unless class_name.split('::').length > 1
|
7
|
+
class_name.split('::').first
|
8
|
+
end
|
9
|
+
|
10
|
+
# Acpa
|
11
|
+
def module_namespace
|
12
|
+
return nil unless namespaces.present?
|
13
|
+
Array(namespaces + [nil]).map { |name| name.to_s.classify } * '::'
|
14
|
+
end
|
15
|
+
|
16
|
+
# Admin::Courses
|
17
|
+
def module_namespaced
|
18
|
+
(Array(namespaces).map { |name| name.to_s.classify } + [plural_name.classify.pluralize]) * '::'
|
19
|
+
end
|
20
|
+
|
21
|
+
def namespaced_class_name # 'Admin::Effective::Post'
|
22
|
+
(Array(namespaces).map { |name| name.to_s.classify } + [class_name]) * '::'
|
23
|
+
end
|
24
|
+
|
25
|
+
def namespaced_module_name # 'Admin::EffectivePosts'
|
26
|
+
Array(namespaces).map { |name| name.to_s.classify }.join('::') + '::' + class_name.gsub('::', '')
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -50,14 +50,6 @@ module Effective
|
|
50
50
|
class_name.split('::')[0...-1].map { |name| name.underscore } * '/'
|
51
51
|
end
|
52
52
|
|
53
|
-
def namespaced_class_name # 'Admin::Effective::Post'
|
54
|
-
(Array(namespaces).map { |name| name.to_s.classify } + [class_name]) * '::'
|
55
|
-
end
|
56
|
-
|
57
|
-
def namespaced_module_name # 'Admin::EffectivePosts'
|
58
|
-
Array(namespaces).map { |name| name.to_s.classify }.join('::') + '::' + class_name.gsub('::', '')
|
59
|
-
end
|
60
|
-
|
61
53
|
def namespace # 'admin/things'
|
62
54
|
(namespaces.join('/') if namespaces.present?)
|
63
55
|
end
|
@@ -74,6 +66,15 @@ module Effective
|
|
74
66
|
name.pluralize.gsub('::', ' ').underscore.gsub('_', ' ')
|
75
67
|
end
|
76
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
|
+
|
77
78
|
end
|
78
79
|
end
|
79
80
|
end
|
@@ -1,25 +1,52 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Effective
|
2
4
|
module Resources
|
3
5
|
module Paths
|
4
6
|
|
7
|
+
def tenant_path
|
8
|
+
return unless tenant.present?
|
9
|
+
Tenant.engine_path(tenant).sub("#{Rails.root}/", '')
|
10
|
+
end
|
11
|
+
|
5
12
|
def model_file
|
6
|
-
File.join('app/models', class_path
|
13
|
+
File.join(*[tenant_path, 'app/models', class_path, "#{name}.rb"].compact)
|
7
14
|
end
|
8
15
|
|
9
16
|
def controller_file
|
10
|
-
File.join('app/controllers', namespace
|
17
|
+
File.join(*[tenant_path, 'app/controllers', class_path, namespace, "#{plural_name}_controller.rb"].compact)
|
11
18
|
end
|
12
19
|
|
13
20
|
def datatable_file
|
14
|
-
File.join('app/datatables', namespace
|
21
|
+
File.join(*[tenant_path, 'app/datatables', class_path, namespace, "#{plural_name}_datatable.rb"].compact)
|
15
22
|
end
|
16
23
|
|
17
24
|
def view_file(action = :index, partial: false)
|
18
|
-
File.join('app/views',
|
25
|
+
File.join(*[tenant_path, 'app/views', class_path, namespace, plural_name, "#{'_' if partial}#{action}.html.haml"].compact)
|
26
|
+
end
|
27
|
+
|
28
|
+
def view_file_path(action = :index)
|
29
|
+
File.join(*[class_path, namespace, plural_name, action].compact)
|
19
30
|
end
|
20
31
|
|
21
32
|
def flat_view_file(action = :index, partial: false)
|
22
|
-
File.join('app/views', plural_name, "#{'_' if partial}#{action}.html.haml")
|
33
|
+
File.join(*[tenant_path, 'app/views', class_path, plural_name, "#{'_' if partial}#{action}.html.haml"].compact)
|
34
|
+
end
|
35
|
+
|
36
|
+
def routes_file
|
37
|
+
File.join(*[tenant_path, 'config/routes.rb'].compact)
|
38
|
+
end
|
39
|
+
|
40
|
+
def abilities_file
|
41
|
+
File.join(*[tenant_path, 'app/models/', class_path, 'ability.rb'].compact)
|
42
|
+
end
|
43
|
+
|
44
|
+
def menu_file
|
45
|
+
File.join(*[tenant_path, 'app/views/layouts', class_path, '_navbar.html.haml'].compact)
|
46
|
+
end
|
47
|
+
|
48
|
+
def admin_menu_file
|
49
|
+
File.join(*[tenant_path, 'app/views/layouts', class_path, '_navbar_admin.html.haml'].compact)
|
23
50
|
end
|
24
51
|
|
25
52
|
# Used by render_resource_partial and render_resource_form to guess the view path
|
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.8.
|
4
|
+
version: 1.8.1
|
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-02
|
11
|
+
date: 2021-03-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -155,6 +155,7 @@ files:
|
|
155
155
|
- app/models/effective/resources/attributes.rb
|
156
156
|
- app/models/effective/resources/controller.rb
|
157
157
|
- app/models/effective/resources/forms.rb
|
158
|
+
- app/models/effective/resources/generator.rb
|
158
159
|
- app/models/effective/resources/init.rb
|
159
160
|
- app/models/effective/resources/instance.rb
|
160
161
|
- app/models/effective/resources/klass.rb
|