effective_resources 2.2.12 → 2.3.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: a2e1045a3f584c05b66281ec3239905cd43100ee124bf9c0fdcfeff7d289fd6f
4
- data.tar.gz: 6276115c7a5104f3f51ce56c54681c0ab775fb63c8ff2f362e3f6fd51fcfebde
3
+ metadata.gz: 0acfffc4958a2a571f0776a9f4e159c88ac9763df2309ed9b18e1a34c9b67fd1
4
+ data.tar.gz: f38964444f684fbf6d4a57291b24f8fcaac909f64ee88ef5120a6a1cc4109d5f
5
5
  SHA512:
6
- metadata.gz: b5dfd7efe2f70a7b9b5aa337cfbe915700fa211006e95d5d754e631565a1301367e7690b650394c19681bf3a47f2645ecdc1a02fef850abc3931d65c36893228
7
- data.tar.gz: 768dbb29366b8ad1df0cc5e9deed4f3e2c216df6de6175c60384033524f12a49c5425b900e16f6c71cd5fa0cf7e4c537aab28f4b824955ec0ee95e651422bd2f
6
+ metadata.gz: 66181b2e24aefa2ea7117a1feb0fb044c5b70a745276b9f0b39d28a9849cb1a0c772e5370742f3ed82e6f5d8886da9635398236076dd6fd8a3997aee52a49ea1
7
+ data.tar.gz: cd024fafd913cf073b390e07e4f85298315e55efd1bc8a7fc813bb17472acee7a1a7c33942c4951448c98bff7e3e43bdc57be8e6006656025585329b4d40619d
@@ -6,7 +6,7 @@ module Effective
6
6
  Rails.logger.info 'Processed by Effective::CrudController#index'
7
7
 
8
8
  EffectiveResources.authorize!(self, :index, resource_klass)
9
- @page_title ||= resource_plural_name.titleize
9
+ @page_title ||= resource_human_plural_name
10
10
 
11
11
  self.resources ||= resource_scope.all if resource_scope.respond_to?(:all)
12
12
  @datatable = resource_datatable()
@@ -42,12 +42,12 @@ module Effective
42
42
 
43
43
  if (message = flash[:success].to_s).present?
44
44
  flash.delete(:success)
45
- flash.now[:success] = "#{message.chomp('.')}. Adding another #{resource_name.titleize} based on previous."
45
+ flash.now[:success] = "#{message.chomp('.')}. Adding another #{resource_human_name} based on previous."
46
46
  end
47
47
  end
48
48
 
49
49
  EffectiveResources.authorize!(self, :new, resource)
50
- @page_title ||= "New #{resource_name.titleize}"
50
+ @page_title ||= "New #{resource_human_name}"
51
51
 
52
52
  run_callbacks(:resource_render)
53
53
 
@@ -74,7 +74,7 @@ module Effective
74
74
  resource.assign_attributes(send(resource_params_method_name))
75
75
 
76
76
  EffectiveResources.authorize!(self, action, resource)
77
- @page_title ||= "New #{resource_name.titleize}"
77
+ @page_title ||= "New #{resource_human_name}"
78
78
 
79
79
  if save_resource(resource, action)
80
80
  respond_with_success(resource, action)
@@ -211,7 +211,7 @@ module Effective
211
211
  self.resources ||= resource_scope.all
212
212
 
213
213
  EffectiveResources.authorize!(self, action, resource_klass)
214
- @page_title ||= "#{action.to_s.titleize} #{resource_plural_name.titleize}"
214
+ @page_title ||= "#{action.to_s.titleize} #{resource_human_name}"
215
215
 
216
216
  if request.get?
217
217
  @datatable = resource_datatable()
@@ -238,7 +238,7 @@ module Effective
238
238
  end.length
239
239
  end
240
240
 
241
- render json: { status: 200, message: "Successfully #{action_verb(action)} #{successes} / #{resources.length} selected #{resource_plural_name}" }
241
+ render json: { status: 200, message: "Successfully #{action_verb(action)} #{successes} / #{resources.length} selected #{resource_human_plural_name.downcase}" }
242
242
  end
243
243
  end
244
244
 
@@ -21,7 +21,17 @@ module Effective
21
21
  # This is used for the buttons/submits/ons
22
22
  # It doesn't really work with the resource_scope correctly but the routes are important here
23
23
  def effective_resource
24
- @_effective_resource ||= Effective::Resource.new(controller_path)
24
+ @_effective_resource ||= begin
25
+ controller = new()
26
+ klass = (controller.resource_scope_relation.call().try(:klass) rescue false) if controller.respond_to?(:resource_scope_relation)
27
+
28
+ if klass.present?
29
+ namespace = controller_path.split('/')[0...-1].join('/').presence
30
+ Effective::Resource.new(klass, namespace: namespace)
31
+ else
32
+ Effective::Resource.new(controller_path)
33
+ end
34
+ end
25
35
  end
26
36
  end
27
37
 
@@ -84,6 +94,10 @@ module Effective
84
94
  effective_resource.relation
85
95
  end
86
96
 
97
+ def resource_klass # Thing
98
+ effective_resource.klass
99
+ end
100
+
87
101
  def resource_name # 'thing'
88
102
  effective_resource.name
89
103
  end
@@ -92,16 +106,16 @@ module Effective
92
106
  (effective_resource.name + '_id').to_sym
93
107
  end
94
108
 
95
- def resource_klass # Thing
96
- effective_resource.klass
109
+ def resource_plural_name # 'things'
110
+ effective_resource.plural_name
97
111
  end
98
112
 
99
- def resource_human_name
113
+ def resource_human_name # I18n
100
114
  effective_resource.human_name
101
115
  end
102
116
 
103
- def resource_plural_name # 'things'
104
- effective_resource.plural_name
117
+ def resource_human_plural_name # I18n
118
+ effective_resource.human_plural_name
105
119
  end
106
120
 
107
121
  def resource_datatable_attributes
@@ -301,4 +301,23 @@ module EffectiveResourcesHelper
301
301
  path || '/'
302
302
  end
303
303
 
304
+ def effective_translate(resource, attribute = nil)
305
+ return translate(resource) unless resource.respond_to?(:model_name)
306
+
307
+ if attribute.blank?
308
+ resource.model_name.human
309
+ elsif resource.respond_to?(:human_attribute_name)
310
+ resource.human_attribute_name(attribute)
311
+ else
312
+ resource.class.human_attribute_name(attribute)
313
+ end
314
+ end
315
+
316
+ def effective_translates(resource, attribute = nil)
317
+ effective_translate(resource, attribute).pluralize
318
+ end
319
+
320
+ alias_method :et, :effective_translate
321
+ alias_method :ets, :effective_translates
322
+
304
323
  end
@@ -8,6 +8,7 @@ module Effective
8
8
  include Effective::Resources::Instance
9
9
  include Effective::Resources::Forms
10
10
  include Effective::Resources::Generator
11
+ include Effective::Resources::I18n
11
12
  include Effective::Resources::Klass
12
13
  include Effective::Resources::Model
13
14
  include Effective::Resources::Naming
@@ -31,7 +32,7 @@ module Effective
31
32
  end
32
33
 
33
34
  def to_s
34
- name
35
+ human_name
35
36
  end
36
37
 
37
38
  end
@@ -7,11 +7,11 @@ module Effective
7
7
  # This is the attributes as defined by ActiveRecord table
8
8
  # { :name => [:string], ... }
9
9
  def attributes
10
- (klass_attributes.presence || model_attributes.presence)
10
+ klass_attributes.presence || model_attributes.presence
11
11
  end
12
12
 
13
13
  def primary_key_attribute
14
- {klass.primary_key.to_sym => [:integer]}
14
+ { klass.primary_key.to_sym => [:integer] }
15
15
  end
16
16
 
17
17
  # The attributes for each belongs_to
@@ -54,11 +54,11 @@ module Effective
54
54
  end
55
55
 
56
56
  if collection_get_actions.find { |a| a == :index }
57
- buttons["All #{human_plural_name}".titleize] = { action: :index, default: true }
57
+ buttons["All #{human_plural_name}"] = { action: :index, default: true }
58
58
  end
59
59
 
60
60
  if collection_get_actions.find { |a| a == :new }
61
- buttons["New #{human_name}".titleize] = { action: :new, default: true }
61
+ buttons["New #{human_name}"] = { action: :new, default: true }
62
62
  end
63
63
 
64
64
  (collection_get_actions - crud_actions).each do |action|
@@ -122,11 +122,11 @@ module Effective
122
122
  def resource_klass_actions
123
123
  {}.tap do |buttons|
124
124
  if collection_get_actions.find { |a| a == :index }
125
- buttons["All #{human_plural_name}".titleize] = { action: :index, default: true }
125
+ buttons["All #{human_plural_name}"] = { action: :index, default: true }
126
126
  end
127
127
 
128
128
  if collection_get_actions.find { |a| a == :new }
129
- buttons["New #{human_name}".titleize] = { action: :new, default: true }
129
+ buttons["New #{human_name}"] = { action: :new, default: true }
130
130
  end
131
131
 
132
132
  (collection_get_actions - crud_actions).each do |action|
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Effective
4
+ module Resources
5
+ module I18n
6
+
7
+ def human_name
8
+ if klass.respond_to?(:model_name)
9
+ klass.model_name.human
10
+ else
11
+ name.gsub('::', ' ').underscore.gsub('_', ' ')
12
+ end
13
+ end
14
+
15
+ def human_plural_name
16
+ if klass.respond_to?(:model_name)
17
+ klass.model_name.human.pluralize
18
+ else
19
+ name.pluralize.gsub('::', ' ').underscore.gsub('_', ' ')
20
+ end
21
+ end
22
+
23
+ end
24
+ end
25
+ end
@@ -10,7 +10,7 @@ module Effective
10
10
  @model.read(&block)
11
11
 
12
12
  # If effective_developer is in live mode, this will cause it to refresh the class
13
- ActiveSupport.run_load_hooks(:effective_resource, self)
13
+ # ActiveSupport.run_load_hooks(:effective_resource, self)
14
14
  end
15
15
 
16
16
  def model
@@ -63,13 +63,6 @@ module Effective
63
63
  @namespaces || []
64
64
  end
65
65
 
66
- def human_name
67
- name.gsub('::', ' ').underscore.gsub('_', ' ')
68
- end
69
-
70
- def human_plural_name
71
- name.pluralize.gsub('::', ' ').underscore.gsub('_', ' ')
72
- end
73
66
  end
74
67
  end
75
68
  end
@@ -1,3 +1,3 @@
1
1
  module EffectiveResources
2
- VERSION = '2.2.12'.freeze
2
+ VERSION = '2.3.0'.freeze
3
3
  end
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: 2.2.12
4
+ version: 2.3.0
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: 2023-02-01 00:00:00.000000000 Z
11
+ date: 2023-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -182,6 +182,7 @@ files:
182
182
  - app/models/effective/resources/controller.rb
183
183
  - app/models/effective/resources/forms.rb
184
184
  - app/models/effective/resources/generator.rb
185
+ - app/models/effective/resources/i18n.rb
185
186
  - app/models/effective/resources/init.rb
186
187
  - app/models/effective/resources/instance.rb
187
188
  - app/models/effective/resources/klass.rb