audited-serialize 1.0.3 → 1.0.5

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: 9831becf62c15330c967bfb39d7de664d35f927399d49d990588c5e84ae5db3c
4
- data.tar.gz: db7ef7657110c4c0af5460c4d9a548e72caea9eaefd56c717b35de623630b7fe
3
+ metadata.gz: 8487382f0275276e7aede757a8188cc26a01bbb927bde494f42834985046bd3f
4
+ data.tar.gz: 0ef1301e5ca9116ecb3f2fa4fddb80a2be8039648baec85e727582d10e06989e
5
5
  SHA512:
6
- metadata.gz: 6e933f808d43686f17615b55748f1d3fca883e7ec79caf74a480a0cda8d136dc9eba4cb865a430950b831a509ebe965ad648307b9f36605396fc0750cbffc0cc
7
- data.tar.gz: '0219e93533c1844bf0992a606bcbb99fa209f3803e59fb39be8644fda11e6213844b7f61796a6fa1514486fe39fe0cfc84390d930c8735db3cfe1a1788e55eab'
6
+ metadata.gz: c1a1d850fdd70988f50e68d288b3402104de067d48440b83ebb6a9b940cb300824230ae23207ad92e76b46eded6be26ac1cbc56b50a08977b6f3fc0318cb589c
7
+ data.tar.gz: 839cb0850677a2dbe20e8ed57fa79f7352aa0cd22062c314122c9517cdc619598237f6df681aec4e812b75300b973e887aaa6beca4d10c519b3dbf90c9825150
data/README.md CHANGED
@@ -51,6 +51,11 @@ audit.title
51
51
  rails g audited:translations
52
52
  ```
53
53
 
54
+ Для поиска моделей с недостающими переводами выполните:
55
+ ```bash
56
+ rake audited:find_missing_translations
57
+ ```
58
+
54
59
  ## Заголовки связанных записей
55
60
 
56
61
  При наличии в аудит-логах полей, содержащих ID связанных сущностей, по умолчанию будет отображено название (поле `name`) этой сущности. При отсутствии у сущности поля `name` или необходимости отображения значения другого поля можно задать название этого поля в модели
@@ -37,6 +37,16 @@ module Audited
37
37
  "#{operation} #{entity}"
38
38
  end
39
39
 
40
+ def self.models_list
41
+ Rails.application.eager_load!
42
+
43
+ ActiveRecord::Base.descendants.map do |model|
44
+ if model.respond_to?(:auditing_enabled)
45
+ model.to_s
46
+ end
47
+ end.compact.sort
48
+ end
49
+
40
50
  end
41
51
 
42
52
  @ignored_attributes = %w[
@@ -0,0 +1,33 @@
1
+ require 'rake'
2
+
3
+ namespace :audited do
4
+
5
+ desc 'Поиск недостающих переводов названий сущностей'
6
+ task find_missing_translations: :environment do
7
+ missing = []
8
+
9
+ # модели, на которых включены аудит-логи
10
+ audited_models = Audited::Audit.models_list
11
+
12
+ # содержимое файла с переводами
13
+ content = YAML.load_file('config/locales/audited_serialize.ru.yml')
14
+ types_in_file = content['ru']['audited_serialize']['auditable_types']
15
+
16
+ # модели с пустыми переводами
17
+ missing += types_in_file.map { |model, translation| model if translation.blank? }.compact
18
+
19
+ # недостающие модели
20
+ missing += audited_models - types_in_file.keys
21
+
22
+ if missing.empty?
23
+ abort('Все модели переведены')
24
+ else
25
+ $stdout.puts 'Недостающие переводы моделей:'
26
+ end
27
+
28
+ missing.sort.each do |model|
29
+ $stdout.puts %(#{model}: "")
30
+ end
31
+ end
32
+
33
+ end
@@ -5,7 +5,7 @@ module Audited
5
5
 
6
6
  def changes_list
7
7
  # проверка на наличие модели
8
- # в случае ее отсутствия, верятнее всего она была удалена
8
+ # в случае ее отсутствия, вероятнее всего она была удалена
9
9
  begin
10
10
  model = auditable_type.constantize
11
11
  rescue NameError
@@ -51,7 +51,12 @@ module Audited
51
51
  private
52
52
 
53
53
  def model_reflections(model)
54
- model.reflections.to_h { |_rel, reflection| [reflection.foreign_key, reflection.klass] }
54
+ model.reflections.map do |_rel, reflection|
55
+ # игнорирование полиморфных связей
56
+ unless reflection.options[:polymorphic]
57
+ [reflection.foreign_key, reflection.klass]
58
+ end
59
+ end.compact.to_h
55
60
  end
56
61
 
57
62
  def changes_from_to
@@ -1,5 +1,6 @@
1
1
  require 'audited_config'
2
2
  require 'audited/audit_extensions'
3
+ require 'audited/rake_tasks'
3
4
 
4
5
  I18n.load_path << File.expand_path('audited/locale/ru.yml', __dir__)
5
6
 
@@ -2,6 +2,6 @@ ru:
2
2
  audited_serialize:
3
3
  auditable_types:
4
4
  # в ед. числе, в родительном падеже c маленькой буквы
5
- <%- models.each do |model| -%>
5
+ <%- Audited::Audit.models_list.each do |model| -%>
6
6
  <%= model %>: ""
7
7
  <%- end -%>
@@ -8,18 +8,6 @@ module Audited
8
8
  template 'locale.rb', File.join('config/locales/audited_serialize.ru.yml')
9
9
  end
10
10
 
11
- private
12
-
13
- def models
14
- Rails.application.eager_load!
15
-
16
- ActiveRecord::Base.descendants.map do |model|
17
- if model.respond_to?(:auditing_enabled)
18
- model.to_s
19
- end
20
- end.compact.sort
21
- end
22
-
23
11
  end
24
12
  end
25
13
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: audited-serialize
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Павел Бабин
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-11 00:00:00.000000000 Z
11
+ date: 2024-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -48,6 +48,7 @@ files:
48
48
  - lib/audited-serialize.rb
49
49
  - lib/audited/audit_extensions.rb
50
50
  - lib/audited/locale/ru.yml
51
+ - lib/audited/rake_tasks.rb
51
52
  - lib/audited/serialization.rb
52
53
  - lib/audited/serialization_changes/array_module.rb
53
54
  - lib/audited/serialization_changes/boolean_module.rb